본문 바로가기

Database

(6)
[Database] ORM ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP ( Object Oriented Programming ) 에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB ( Relational DataBase ) 에서 쓰이는 데이터인 테이블 자동으로 매핑(연결)하는 것을 의미한다. 그러나 클래스의 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결한다. 따라서 ORM을 이용하면 따로 SQL 문을 짤 필요 없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 된다. ORM의 장단점 장점 완벽한..
트랜잭션과 ACID 트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛을 말한다. 데이터베이스 트랜잭션은 ACID 라는 특성을 가지고 있다. ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안정성을 보장하기 위해 필요한 성질이다. 트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛을 말한다. - 각 트랜잭션은 하나의 특정 작업으로 시작을 해서 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료한다. - 만약 하나의 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면, 이 트랜잭션에 속한 모든 작업을 실패한 것으로 판단한다. - 작업이 하나라도 실패를 하게 되면 트랜잭션도 실패이고, 모든 작업이 성공적이면 트랜잭션 또한 성공이다. - 성공 또는 실패 라는 두 개의 결과만 ..
MVCC - 다중 버전 동시성 제어 1. 동시성 제어 ( Concurrency Control ) 1.1 동시성 제어 ( Concurrency Control ) 이란 ? 동시성 제어란 DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 Database를 보호 하는 것을 의미한다. 일반적으로 동시성을 허용하면 일관성이 낮아지게 되며 이를 그래프로 나타내면 아래와 같다. 다수 사용자의 동시 접속을 위해 DBMS는 동시성 제어를 할 수 있도록 Lock 기능과 SET TRANSACTION 명령어를 이용해 트랜잭션의 격리성 수준을 조정할 수 있는 기능도 제공한다. 이렇게 동시성을 제어하는 방법에는 비관적 동시성 제어와 낙관적 동시성 제어가 있다. 1.2 비관적 동시성 제어 ( Pessimistic Concurrency..
쿼리 및 DB 작업 정리 # 실행문 다시 실행하기 INSERT INTO record_set VALUES(0, 2, 24, '2022-01-07 15:37:38'); SELECT LAST_INSERT_ID(); # AUTO_INCREMENT 초기화하기 ALTER TABLE table_name AUTO_INCREMENT = {value}; # 랜덤 값 입력 FLOOR(RAND()*(5)+1) # Null 체크 IFNULL(True값, False값), Where [column] is null - null 만, Where [column] # join 문 left join arm_record AS b ON (a.record_seq = b.seq AND a.exercise_type = 0) - ON 안에서 조건을 걸어 쿼리를 만들 때
[MSSQL] 외래키(Foreign Key) 지정 테이블 디자인 창에서 관계/Relationships 클릭 Add를 눌러 관계를 만든 후, Tables And Columns Specific(테이블 및 열) 우측에 ... 란 클릭 매칭시킬 속성값을 지정 후 OK 하면 완료! 테이블 및 열 사양에서 자세히보기 버튼(아래화살표, 혹은 + ) 을 클릭하여 잘 들어갔는지 확인가능
[MSSQL] 테이블 생성 후 저장 거부, is not permitted - 테이블을 생성 후 수정하는 작업 후 저장을 다시 하려할 때 라는 오류가 뜨면서 저장이 안될때가 있다. 그럴땐 상단에 툴(Tool)바 로 가서 Options를 클릭 후 Designers 란에 Prevent saving changs 란 (테이블을 다시 만들어야 하는 변경 내용 저장 안함) 부분 체크박스 선택란을 꺼준다. ( default로 체크되어지는것 같다 테이블 생성 시 )