데이터베이스 공학에서 BASE를위한 ACID 포기

관계형 데이터베이스는 핵심에서 안정성과 일관성을 갖도록 설계되었습니다. 이를 개발 한 엔지니어는 ACID 모델 의 네 가지 원칙이 항상 유지되도록하는 트랜잭션 모델에 중점을 둡니다. 그러나 새로운 구조화되지 않은 데이터베이스 모델의 출현으로 ACID가 고비를 넘었습니다. NoSQL 데이터베이스 모델 은 고도로 구조화 된 관계형 모델을 피하여 유연한 키 / 값 저장 방식을 선호합니다. 데이터에 대한 이러한 구조화되지 않은 접근 방식에는 ACID 모델 대신 BASE 모델이 필요합니다.

ACID 모델의 기본 원칙

ACID 모델에는 네 가지 기본 원칙이 있습니다.

트랜잭션의 원 자성 (atomicity) 은 각 데이터베이스 트랜잭션이 실행에 "전부 또는 아님"방식을 채택하는 단일 단위임을 보장합니다. 트랜잭션의 명령문 중 하나라도 실패하면 전체 트랜잭션이 롤백됩니다.

관계형 데이터베이스는 각 트랜잭션의 데이터베이스 비즈니스 규칙과의 일관성 을 보장합니다. 원 자성 트랜잭션의 요소가 데이터베이스의 일관성을 혼란 시키면 전체 트랜잭션이 실패합니다.

데이터베이스 엔진은 동시에 또는 거의 동시에 발생하는 여러 트랜잭션 간의 격리 를 강제합니다. 각 트랜잭션은 다른 모든 트랜잭션 전후에 발생하며 트랜잭션이 시작될 때 보게되는 데이터베이스 뷰는 결론 전에 트랜잭션 자체에 의해서만 변경됩니다. 어떤 트랜잭션도 다른 트랜잭션의 중간 제품을 보지 않아야합니다.

마지막 ACID 원칙 인 내구성 은 일단 트랜잭션이 데이터베이스에 커밋되면 백업 및 트랜잭션 로그를 사용하여 영구 보존됩니다. 실패한 경우 이러한 메커니즘을 사용하여 커밋 된 트랜잭션을 복원 할 수 있습니다.

베이스의 핵심 원리

반면에 NoSQL 데이터베이스는 ACID 모델이 과도하거나 실제 데이터베이스 작동을 방해하는 상황을 포용합니다. 대신, NoSQL은 BASE 모델로 적절하게 알려진보다 부드러운 모델을 사용합니다. 이 모델은 NoSQL이 제공하는 유연성과 비 구조적 데이터의 관리 및 큐 레이션에 대한 유사한 접근 방식을 수용합니다. BASE는 세 가지 원칙으로 구성됩니다.

기본 가용성 . NoSQL 데이터베이스 접근 방식은 여러 가지 장애가있는 경우에도 데이터 가용성에 중점을 둡니다. 데이터베이스 관리에 대한 고도로 분산 된 접근 방식을 사용하여이를 달성합니다. 단일 대형 데이터 저장소를 유지 관리하고 해당 저장소의 내결함성에 초점을 맞추는 대신 NoSQL 데이터베이스는 높은 수준의 복제로 많은 저장소 시스템에 데이터를 분산시킵니다. 드문 경우이지만 실패로 인해 데이터 세그먼트에 대한 액세스가 중단되는 경우에도 데이터베이스가 완전히 중단되지는 않습니다.

부드러운 상태 . 기본 데이터베이스는 ACID 모델의 일관성 요구 사항을 거의 완전히 버립니다. BASE의 기본 개념 중 하나는 데이터 일관성이 개발자의 문제이므로 데이터베이스에서 처리해서는 안된다는 것입니다.

최종 일관성 . NoSQL 데이터베이스가 일관성과 관련된 유일한 요구 사항은 미래의 어느 시점에서 데이터가 일관된 상태로 수렴되도록 요구하는 것입니다. 그러나 이것이 언제 발생할 것인지에 대한 보장은 없습니다. 이것은 이전 트랜잭션이 완료되고 데이터베이스가 일관된 상태로 수렴 될 때까지 트랜잭션 실행을 금지하는 ACID의 즉각적인 일관성 요구 사항을 완전히 벗어났습니다.

BASE 모델은 모든 상황에 적절하지는 않지만 관계형 모델을 엄격하게 준수하지 않아도되는 데이터베이스의 ACID 모델에 대한 유연한 대안 일 것입니다.