원자성(데이터베이스 시스템)
Atomicity (database systems)데이터베이스 시스템에서 원자성(/ˌtəmssəti/; 고대 그리스어: ομμος, 로마자: atomos, litted). '분할 수 없음'은 ACID(원자성, 일관성, 격리, 내구성) 트랜잭션 속성 중 하나입니다.원자 트랜잭션은 분할할 수 없고 축소할 수 없는 일련의 데이터베이스 작업이며, 모든 작업이 수행되거나 아무 [1]일도 발생하지 않습니다.원자성을 보증하면 데이터베이스에 대한 업데이트가 부분적으로만 발생하는 것을 방지할 수 있으며, 이로 인해 전체 시리즈를 완전히 거부하는 것보다 더 큰 문제가 발생할 수 있습니다.따라서 다른 데이터베이스 클라이언트에서 트랜잭션이 진행 중인 것을 확인할 수 없습니다.한때는 아직 발생하지 않았고, 그 다음부터는 완전히 발생했다(또는 거래가 취소된 경우에는 아무 일도 일어나지 않았다).
원자성 거래의 예로는 은행 계좌 A에서 계좌 B로의 금전 이체가 있다.계좌 A에서 돈을 인출하고 계좌 B로 저축하는 두 가지 작업으로 구성됩니다.원자성 트랜잭션에서 이러한 작업을 수행하면 데이터베이스가 일관된 상태로 유지됩니다. 즉, 두 작업 중 하나가 [2]실패해도 돈은 손실되거나 생성되지 않습니다.
데이터베이스 시스템의 First normal 형식의 정의에서도 같은 용어가 사용됩니다.이 경우 필드 값은 여러 이름, 숫자, 날짜 또는 기타 유형이 포함된 문자열과 같이 분해되는 여러 작은 값으로 구성되지 않을 수 있습니다.
직교성
원자성은 트랜잭션의 다른 ACID 속성과 관련하여 완전히 직교적으로 동작하지 않습니다.예를 들어, 격리는 교착 상태 등의 격리에 실패했을 경우 변경을 롤백하기 위해 원자성에 의존합니다.또한 부정 트랜잭션에 의한 일관성 위반이 발생했을 경우에도 일관성은 롤백에 의존합니다.마지막으로 원자성 자체는 외부 장애에도 불구하고 거래의 원자성을 보장하기 위해 내구성에 의존합니다.
그 결과 오류를 검출하지 못하고 둘러싸인 트랜잭션을 롤백하지 못하면 분리 및 일관성이 실패할 수 있습니다.
실행
일반적으로 시스템은 어떤 트랜잭션이 시작되었고 어떤 트랜잭션이 종료되었는지 나타내는 메커니즘을 제공하거나 변경이 발생하기 전에 데이터 복사본을 보관함으로써 Atomicity를 구현합니다(read-copy-update).몇몇 파일 시스템은 저널링을 사용하여 여러 개의 데이터 복사본을 유지할 필요가 없는 방법을 개발했습니다(저널 파일 시스템 참조).데이터베이스는 일반적으로 변경 사항을 추적하기 위해 특정 형식의 로그/저널링을 사용하여 이 기능을 구현합니다.변경이 정상적으로 이루어진 후, 시스템은 필요에 따라서 로그(종종 메타데이터)를 동기화합니다.그 후 크래시 복구는 불완전한 엔트리를 무시합니다.구현은 동시성 문제와 같은 요소에 따라 다르지만 원자성의 원칙(즉, 완전한 성공 또는 완전한 실패)은 여전하다.
최종적으로, 애플리케이션 레벨의 실장은, operating system의 기능에 의존합니다.파일 시스템 수준에서 POSIX 준거 시스템은 다음과 같은 시스템 호출을 제공합니다.open(2)
그리고.flock(2)
응용 프로그램이 파일을 자동으로 열거나 잠글 수 있습니다.프로세스 수준에서 POSIX 스레드는 적절한 동기화 프리미티브를 제공합니다.
하드웨어 수준에는 메모리 장벽과 함께 테스트 및 세트, 가져오기 및 추가, 비교 및 스왑 또는 로드 링크/스토어 조건 등의 원자적 작업이 필요합니다.하이퍼스레딩이나 멀티프로세싱 등 동시 실행이 부족한 하드웨어는 극히 [citation needed]드물기 때문에 휴대용 운영체제는 인터럽트를 차단하여 동기화를 구현할 수 없습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "atomic operation". Webopedia. 25 November 2003. Retrieved 2011-03-23.
An operation during which a processor can simultaneously read a location and write it in the same bus operation. This prevents any other processor or I/O device from writing or reading memory until the operation is complete.
- ^ Amsterdam, Jonathan. "Atomic File Transactions, Part 1". O'Reilly. Archived from the original on 2016-03-03. Retrieved 2016-02-28.