Human: 컴퓨터 과학에서 ACID(원자성, 일관성, 격리성, 내구성)는 오류, 정전 및 기타 사고에도 불구하고 데이터 유효성을 보장하기 위한 데이터베이스 트랜잭션의 속성 집합입니다. 데이터베이스의 맥락에서 ACID 속성을 충족하는 일련의 데이터베이스 작업(데이터에 대한 단일 논리적 작업으로 인식될 수 있음)을 트랜잭션이라고 합니다. 예를 들어 한 은행 계좌에서 다른 은행 계좌로 자금을 이체하는 경우, 한 계좌에서 인출하고 다른 계좌에 입금하는 등 여러 가지 변경 사항이 포함되더라도 이는 단일 트랜잭션에 해당합니다.

1983년 안드레아스 로이터와 테오 헤르더는 트랜잭션의 개념을 설명할 때 원자성, 일관성, 내구성을 언급했지만 고립성은 언급하지 않았던 짐 그레이의 초기 연구를 바탕으로 ACID라는 약어를 만들었습니다. 이 네 가지 속성은 트랜잭션 패러다임의 주요 보장 사항으로, 데이터베이스 시스템 개발의 여러 측면에 영향을 미쳤습니다.

그레이와 로이터에 따르면, IBM 정보 관리 시스템은 1973년 초에 ACID 트랜잭션을 지원했습니다(약어는 나중에 만들어졌지만).

원자성
주요 기사: 원자성(데이터베이스 시스템)
트랜잭션은 종종 여러 문으로 구성됩니다. 원자성은 각 트랜잭션이 완전히 성공하거나 완전히 실패하는 단일 "단위"로 취급되도록 보장합니다. 트랜잭션을 구성하는 문 중 하나라도 완료하지 못하면 전체 트랜잭션이 실패하고 데이터베이스는 변경되지 않습니다. 원자 시스템은 정전, 오류, 충돌 등 모든 상황에서 원자성을 보장해야 합니다.[5] 원자성을 보장하면 데이터베이스에 대한 업데이트가 부분적으로만 발생하는 것을 방지할 수 있으며, 이는 전체 시리즈를 완전히 거부하는 것보다 더 큰 문제를 일으킬 수 있습니다. 결과적으로 다른 데이터베이스 클라이언트에서 트랜잭션이 진행 중인 것으로 관찰할 수 없습니다. 한 순간에는 트랜잭션이 아직 발생하지 않았고 다음 순간에는 이미 전체 트랜잭션이 발생했거나 진행 중 트랜잭션이 취소된 경우 아무 일도 일어나지 않은 것처럼 보일 수 있습니다.

일관성
주요 기사: 일관성(데이터베이스 시스템)
일관성은 트랜잭션이 데이터베이스를 하나의 일관된 상태에서 다른 상태로만 가져올 수 있도록 보장하여 데이터베이스 불변성을 보존합니다. 데이터베이스에 기록된 모든 데이터는 제약 조건, 계단식, 트리거 및 이들의 조합을 포함하여 정의된 모든 규칙에 따라 유효해야 합니다. 이를 통해 불법 트랜잭션으로 인한 데이터베이스 손상을 방지할 수 있습니다. 참조 무결성은 기본 키와 외래 키의 관계를 보장합니다.[6]

격리
주요 기사: 격리 (데이터베이스 시스템)
트랜잭션은 종종 동시에 실행됩니다(예: 여러 트랜잭션이 동시에 테이블을 읽고 쓰는 경우). 격리는 트랜잭션의 동시 실행이 트랜잭션이 순차적으로 실행되었을 때와 동일한 상태로 데이터베이스를 유지하도록 보장합니다. 격리는 동시성 제어의 주요 목표이며, 사용되는 격리 수준에 따라 불완전한 트랜잭션의 영향이 다른 트랜잭션에 표시되지 않을 수 있습니다[7].

내구성
주요 기사: 내구성 (데이터베이스 시스템)
내구성은 트랜잭션이 커밋되면 시스템 장애(예: 정전 또는 충돌)가 발생하더라도 트랜잭션이 커밋된 상태로 유지되도록 보장합니다. 이는 일반적으로 완료된 트랜잭션(또는 그 효과)이 비휘발성 메모리에 기록된다는 것을 의미합니다. 
데이터베이스가 ACID를 준수한다는 것은 무엇을 의미하나요? 

Assistant: ACID는 원자성, 일관성, 격리 및 내구성을 나타내는 약어입니다.
원자성이란 작업이 완전히 또는 전혀 발생하지 않고 부분적으로 쓰여지거나 작업의 일부만 완료되는 상황이 발생하지 않음을 의미합니다. 데이터베이스의 경우, 이는 데이터가 단일 트랜잭션에 기록된 경우 해당 트랜잭션이 완전히 완료되거나 완전히 실패하여 데이터가 부분적으로 또는 손상된 상태로 남지 않음을 의미합니다.
일관성이란 트랜잭션이 유효한 상태에서 다른 유효한 상태로 전환되는 것을 의미하며, 유효하지 않은 상태로 들어갈 수 있는 방법이 없습니다.
격리란 동일한 데이터베이스에 대한 여러 읽기/쓰기가 서로 간섭하지 않고 다른 작업의 영향을 걱정하지 않고 진행할 수 있음을 의미합니다.
내구성이란 장애 및 종료 시에도 상태가 유지되는 것을 의미합니다(예: 영구 저장소에 상태가 유지되는 경우).</s>