불변 데이터란 무엇입니까?
불변 데이터는 삭제하거나(또는 삭제되어서는 안 되는) 수정될 수 없는 데이터베이스의 정보 조각입니다. 대부분의 기존 데이터베이스는 데이터를 변경 가능한 형식으로 저장합니다. 즉, 사용가능한 새 데이터가 있으면 이전 데이터를 덮어씁니다. 예를 들어 직원 데이터베이스에서 직원이 거주지를 변경하면 주소 정보를 덮어씁니다.
이와 대조적으로, 불변 데이터를 저장하는 데이터베이스는 사용가능한 새 정보가 있을 때 이전 데이터를 덮어쓰지 않습니다. 데이터베이스는 다양한 기술을 사용하여 데이터의 과거 및 현재 가치를 보존합니다. 불변 데이터는 감사 및 디버깅에 매우 유용합니다.
불변 데이터의 실제 예는 환자의 의료 기록입니다. 수년에 걸쳐 인간은 다양한 질병에 대한 치료를 받았을 수 있습니다. 진료기록은 각종 처방, 절차, 검사성적서 등으로 구성됩니다. 이러한 데이터 파일은 변경할 수 없습니다. 예를 들어, 새로운 의료 처방전을 받았을 때 이전 처방전을 덮어쓰지 않아야 합니다. 그 대신 데이터베이스는 기존 데이터에 새 데이터를 추가해야 합니다. 역사적 의료 데이터는 불변 데이터의 전형적인 예입니다.
조직에 불변 데이터가 필요한 이유는 무엇입니까?
클라우드 데이터와 사물 인터넷(IoT)이 출현함에 따라 조직은 엄청난 양의 트랜잭션 데이터를 받게 됩니다. 이런 데이터를 데이터베이스에 빠르게 저장해야 합니다. 불변 파일은 고속 트랜잭션 로그를 저장하는 데 적합한 솔루션입니다. 조직은 또한 과거 데이터의 필요성을 고려해야 합니다. 데이터 개인 정보 보호 규정이 엄격해짐에 따라 많은 조직에서 과거 데이터를 보존합니다. 고객이나 정부가 과거 데이터를 요청할 경우 규정을 준수하는 데 도움이 됩니다. 데이터를 불변 형식으로 저장하는 데이터베이스가 이 사용 사례에 가장 적합합니다.
많은 경우, 조직은 사용자 추세를 이해하거나 성장을 측정하기 위해 현재 데이터를 과거 데이터와 비교하게 됩니다. 이러한 경우 과거 데이터를 덮어쓰는 것은 좋은 아이디어가 아닙니다. 또한 불변 데이터는 조직이 수년 동안 겪었던 변경 사항을 추적하는 데 도움이 됩니다. 이런 데이터는 소프트웨어 시스템에서 특히 유용합니다.

불변 데이터베이스의 용도는 무엇입니까?
스트림 데이터 저장
정보 폭발과 IoT의 출현으로 하여 조직은 매초 엄청난 양의 데이터를 받게 됩니다. 조직에 있어서 데이터 저장이 지연되는 것을 용납할 수 없습니다. 변경 가능한 파일을 사용하는 대부분의 기존 데이터베이스는 이전 데이터를 지우고 새 데이터를 작성하고 무결성을 확인하기 때문에 특정 대기 시간이 존재하게 됩습니다. 그러나 예를 들어 IoT 센서의 스트림 데이터의 경우 데이터베이스는 데이터를 신속하게 저장해야 합니다. 데이터베이스가 불변 데이터 파일을 사용하는 경우 단순히 새 데이터를 추가합니다. 이렇게 하면 불변 데이터베이스가 데이터 저장 속도가 훨씬 빨라지므로 스트림 데이터를 저장하는 데 더 적합합니다.
역사적 맥락 보존
개인의 병력과 같은 개인 데이터는 새로운 데이터에 대한 컨텍스트를 제공하기 위해 영구적으로 저장되어야 합니다. 예를 들어, 어떤 사람이 질병으로 치료를 받을 때 모든 오래된 약물과 치료법을 고려해야 합니다. 기존 데이터베이스는 기록 컨텍스트를 제공할 수 있지만 데이터 보존을 보장하지는 않습니다. 불변 데이터베이스는 본질적으로 데이터가 삭제되지 않도록 보장합니다.
감사 및 디버깅
웹사이트나 소프트웨어와 같이 자주 변경되는 시스템은 변경 사항을 추적하기 위해 시스템의 주요 스냅샷을 보존해야 합니다. 대부분의 버전 제어 시스템은 데이터를 덮어쓸 위험이 없도록 불변 파일에 저장합니다. 금융 기관은 또한 모든 과거 거래를 보존하기 위해 불변 데이터베이스가 필요합니다. 빈번한 감사를 위해 데이터를 제시해야 하는 다른 조직도 불변 데이터베이스의 이점을 누릴 수 있습니다.
불변 데이터베이스는 어떻게 작동합니까?
레코드 기반의 기존 관계형 데이터베이스(변경 가능한 데이터베이스)와 달리 불변 데이터베이스는 로그 기반입니다. 새 데이터 항목을 사용할 수 있는 경우 변경 가능한 데이터베이스는 데이터 테이블의 특정 셀을 다시 씁니다. 불변 데이터베이스는 데이터를 로그에 저장하고 모든 새 데이터 조각에 대해 새 로그를 생성합니다.
불변 데이터베이스가 작동하는 방식을 이해하려면 블로그 기사의 세부 정보를 저장하는 간단한 데이터베이스를 살펴보십시오. 고전적인 관계형 데이터베이스는 이 데이터를 변경 가능한 형식으로 저장하고 블로그 게시물의 세부 정보는 테이블에 저장합니다. 퍼머링크, 제목 및 콘텐츠가 이 테이블의 세 열이라고 가정합니다. 가변 데이터베이스에서 제목이나 내용이 변경되면 데이터베이스는 업데이트 작업을 수행합니다. 새 데이터가 이전 항목을 덮어씁니다. 이전 제목과 콘텐츠는 영구적으로 손실됩니다. 불변 표준 데이터베이스는 이와 동일한 정보를 로그와 저장합니다.
변경 가능한 데이터베이스는 블로그의 현재 상태만 저장합니다. 불변 데이터베이스는 현재 상태와 함께 블로그의 기록을 저장합니다. 불변 데이터베이스는 삽입 작업만 수행하고 기존 데이터 필드의 업데이트는 수행하지 않습니다.
불변 데이터베이스는 데이터를 어떻게 저장합니까?
블로그 게시물 예제를 계속 진행하면 불변 데이터베이스는 변경 가능한 데이터베이스와 다른 테이블 구조를 사용합니다. 모든 블로그 게시물 개정은 테이블의 새 행으로 데이터베이스에 삽입됩니다. 테이블의 필드는 다음과 같습니다.
- 개정 번호: 테이블의 기본 키입니다. 모든 블로그 개정판에는 고유한 개정 번호가 있어야 합니다.
- 타임스탬프: 수정이 발생한 시간입니다. 고유한 값이어야 합니다.
- 퍼머링크, 제목 및 콘텐츠
모든 블로그 게시물 개정이 블로그 데이터를 덮어쓰는 변경 가능한 데이터베이스와 대조적으로, 불변 데이터베이스는 블로그 게시물의 모든 변경 사항에 대해 새 개정 항목을 생성합니다. 이러한 방식으로 블로그 기사에 대한 모든 이전 편집에 대한 정보가 유지되며 타임스탬프 또는 개정 번호를 기반으로 언제든지 검색할 수 있습니다.
불변 데이터의 장점은 무엇입니까?
더 빠른 작업
데이터가 불변으로 저장되면 타임스탬프와 함께 새 데이터가 이전 데이터에 추가됩니다. 이것은 데이터베이스가 무결성 검사를 수행하기 위해 시스템을 차단하지 않고 단순히 데이터를 삽입할 수 있음을 의미합니다. 이러한 불변 데이터의 품질은 스트림 및 센서 데이터의 경우에 중요합니다. 이러한 경우 데이터가 지속적으로 도착하고 최소 대기 시간으로 저장해야 합니다.
역사적 맥락
많은 조직에서 더 나은 상황별 분석을 위해 과거 데이터를 최신 버전과 비교해야 합니다. 불변 데이터베이스는 모든 기록 데이터를 보존합니다. 이것은 시스템을 복원할 수 있는 과거의 체크포인트를 만드는 데 도움이 됩니다.
감사 가능성
많은 산업, 특히 의료 및 금융 분야는 무작위 감사를 받을 수 있습니다. 감사에 필요한 경우 기록 데이터를 편리하게 사용할 수 있도록 모든 데이터를 보존하는 것이 중요합니다.
규정 준수
전 세계적으로 데이터 개인 정보 보호 규칙은 매우 엄격합니다. 사용자는 조직에서 수집한 모든 데이터의 사본을 요구할 권리가 있습니다. 데이터를 변경할 수 없도록 저장하면 조직이 이러한 요청을 준수하는 데 도움이 됩니다.

불변 데이터의 단점은 무엇입니까?
더 높은 스토리지 요구 사항
불변 데이터를 저장하려면 기존의 변경 가능한 데이터베이스에 비해 더 높은 스토리지 요구 사항이 필요합니다. 모든 업데이트는 다른 로그로 저장되므로 데이터베이스 크기가 증가합니다.
복잡성
불변 데이터베이스는 기록 컨텍스트를 저장하기 때문에 더 복잡합니다. 데이터베이스는 모든 트랜잭션을 저장하는 복잡성을 처리해야 합니다.
데이터 규정 준수
기본적으로 불변 데이터베이스는 데이터를 삭제하지 않습니다. 그러나 대부분의 데이터 규정에서는 사용자가 요청할 경우 시스템에서 데이터를 삭제해야 한다고 규정하고 있습니다. 이는 데이터가 삭제되지 않는다는 가정 하에 구축된 불변 데이터베이스에 대한 중요한 과제입니다.
불변 데이터베이스는 어떻게 삭제 기능을 제공합니까?
불변 데이터베이스는 본질적으로 데이터가 삭제되지 않는다는 원칙에 따라 데이터베이스 자체가 설계되었기 때문에 삭제 기능을 제공하지 않습니다. 그러나 이전 섹션에서 보았듯이 데이터 개인 정보 보호 규정은 사용자에게 "잊힐" 권리를 부여합니다. 이를 위해서는 데이터 삭제/덮어쓰기가 필요합니다.
암호 파쇄는 불변 데이터를 "덮어쓰기"하는 데 사용할 수 있는 솔루션입니다. 암호 파쇄 기능이 있는 데이터베이스에서 불변 데이터는 암호화된 형식으로 저장됩니다. 데이터베이스에 저장된 개인 데이터를 해독하려면 암호화 키가 필요합니다. 이러한 모든 키는 변경 가능한 데이터베이스에 저장됩니다. 데이터 덮어쓰기 요청이 있어도 데이터는 삭제되지 않습니다. 대신 연결된 암호화 키를 덮어씁니다. 암호화 키가 사라지면 데이터는 더 이상 유용하지 않습니다. 암호화 키와 관련된 데이터를 삭제하는 것만큼 좋습니다. 이것은 유럽 연합의 데이터 개인 정보 보호 규칙에 적합한 솔루션입니다.