ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ACID
    DB 2024. 11. 17. 17:25

     

    ACID는 관계형 데이터베이스 내에서 일어나는

    하나의 트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질이다

     

    트랜잭션이란 여러 개의 작업(operation)을 하나로 묶은 실행 유닛을 말한다.

    데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다.

     

    1. 원자성 (Atomicity)

    하나의 트랜잭션 내에서의 operation(작업)은 하나의 단위로서 완료되거나 취소되어야 함. 둘 중 하나임

     

    2. 일관성 (Consistency)

    트랜잭션 전후에 데이터베이스의 상태는 일관성을 유지해야 함

    트랜잭션이 일어난 이후의 데이터베이스는 데이터베이스의 제약이나 규칙을 만족해야 한다

     

    예를 들어 ‘모든 고객은 반드시 이름을 가지고 있어야 한다’는 데이터베이스의 제약이 있다고 가정한다.

    다음과 같은 트랜잭션은 Consistency(일관성)를 위반한다.

    이름 없는 새로운 고객을 추가하는 쿼리

    기존 고객의 이름을 삭제하는 쿼리

    데이터베이스의 유효한 상태는 다를수 있지만, 데이터의 상태에 대한 일관성은 변하지 않아야 한다.

    이 예시는 ‘이름이 있어야 한다’ 라는 제약을 위반한다.

    따라서 예시 트랜잭션이 일어난 이후의 데이터베이스는 일관되지 않는 상태를 가지게 된다.

     

    3. 격리성 (Isolation)

    트랜잭션들은 타 트랜잭션에 영향을 미치지 않는다

    동시 실행되는 트랜잭션은 서로를 인식하지 못함

    처리 중인 트랜잭션이 완료되지 않으면 다른 동시 트랜잭션이 해당 데이터를 변경할 수 없음

     

    4. 지속성 (Durability)

    트랜잭션이 완료(커밋)되면 그 결과는 영구적으로 저장된다

    'DB' 카테고리의 다른 글

    인덱스  (0) 2024.11.22
    [DB] Transaction Conflict Serializability  (0) 2024.11.17
    정규화 역정규화  (0) 2024.06.07
    스케일인 스케일아웃  (0) 2024.03.29
    옵티마이저  (0) 2024.03.27