본문 바로가기
카테고리 없음

Transaction의 의미와 ACID 규칙 / Primary Key와 Foreign Key

by abccoco 2022. 9. 16.

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 값이 가능하다.

댓글