ACID
"Atomicity, Consistency, Isolation, Durability"의 약자입니다. ACID라는 약어는 데이터 무결성을 보장하기 위해 데이터베이스가 갖추어야 하는 네 가지 특성을 정의합니다. 구체적으로 이러한 특성은 데이터베이스에 데이터를 쓰는 데이터베이스 작업에 적용됩니다. 예로는 레코드 삽입, 업데이트, 삭제가 있습니다.
ACID의 네 가지 요소는 다음과 같습니다:
1. 원자성
원자성은 각 트랜잭션이 "전부 아니면 전무" 방식으로 처리되도록 보장합니다. 즉, 완전히 성공하거나 완전히 실패합니다. 원자적 작업은 부분적으로 처리된 트랜잭션을 허용하지 않아 데이터 손상을 방지합니다. 작업을 완료할 수 없으면 아무 일도 발생하지 않은 것처럼 이전 상태로 "롤백"됩니다.
2. 일관성
일관성은 유효한 데이터만 데이터베이스에 기록되도록 보장합니다. 예를 들어 데이터베이스는 유효하지 않은 트랜잭션이나 인식할 수 없는 데이터를 허용하지 않습니다. 또한 새 트랜잭션을 임시로 저장하는 "이중 쓰기 버퍼"를 사용할 수 있습니다. 데이터베이스나 호스트 시스템이 예기치 않게 충돌하면 버퍼에서 데이터를 복원할 수 있습니다.
3. 격리성
격리성은 각 트랜잭션이 개별적으로 처리되도록 보장합니다. 일부 데이터베이스는 초당 여러 번 데이터를 읽고 쓰므로 동시 트랜잭션이 필요할 수 있습니다. 트랜잭션이 동시에 발생하더라도 서로 격리된 상태로 처리할 수 있습니다. 예를 들어 한 작업이 실패해도 동시에 진행 중인 다른 작업에는 영향을 주지 않습니다. 격리성은 한 트랜잭션의 데이터가 다른 트랜잭션에 표시되지 않도록 하므로 데이터베이스 보안에도 필수적입니다.
4. 지속성
지속성은 트랜잭션이 처리되거나 데이터베이스에 "커밋"된 후 데이터가 저장되도록 보장합니다. 트랜잭션이 애플리케이션 충돌이나 정전으로 인해 손실되지 않도록 데이터를 비휘발성 메모리에 기록해야 합니다.
데이터베이스 소프트웨어가 데이터베이스의 지속성을 보장하는 데 도움이 될 수 있지만 하드웨어도 중요합니다. 예를 들어 RAID 스토리지 구성은 저장 장치에 장애가 발생했을 때 이중화를 제공할 수 있습니다. UPS 배터리 백업은 주 전원을 사용할 수 없을 때 전력을 유지하여 데이터 손실을 방지할 수 있습니다.
NOTE: "Acid"(소문자)는 특정 HTML 태그와 CSS 규칙을 브라우저가 지원하는지 확인하는 웹 브라우저 테스트입니다. 가장 최근의 테스트인 Acid3는 2008년에 Web Standards Project 그룹이 제작했습니다.
지식 테스트하기