Transaction의 의미와 ACID 규칙에 대해서 설명해주세요.
Transaction
트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다.
데이터베이스의 상태를 변화시킨다는 것은 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미한다.
- SELECT
- UPDATE
- INSERT
- DELETE
ACID
ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 Transaction(트랜잭션)이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다.
- 원자성
- 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않거나를 뜻한다.
All or Nothing을 생각하면 된다.
- 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
- 일관성
- 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다를 뜻한다.
즉, 데이터 타입이 반환 후와 전이 항상 동일해야 한다.- 거래 이전: A + B = 150. ( A = 100, B = 50).
- 거래 후: A + B = 150. ( A = 50, B = 100).
- 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다를 뜻한다.
- 독립성
- 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미한다.
즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다.
- 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미한다.
- 지속성
- 지속성은 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함을 뜻한다.
보통 commit 이 된다면 지속성은 만족할 수 있다.
- 지속성은 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함을 뜻한다.
Primary Key와 Foreign Key에 대해 각각 설명해주세요.
기본 키 (Primary Key)
- Data-Table에 저장된 각각의 데이터를 유일하게 구분하는 키를 기본키(Primary Key)라 부른다.
- Primary Key는 유일한 값이기 때문에 중복된 값을 가질 수 없다.
- Primary Key는 Null 값을 허락하지 않는다.
외래 키 (Foreign Key)
- 한 Table과 참조되는 다른 Table 간의 연결되는 Primary Key Column을 Foreign Key라 합니다.
- Foreign Key는 다른 Primary Key를 참조하는 속성 또는 속성들의 집합을 의미한다.
- Foreign Key는 참조관계의 기본 키와 같은 속성을 가진다.
- Foreign Key는 Null 값이 가능하다.
댓글