Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

데이터베이스 일관성 설명

데이터베이스 일관성이란 무엇입니까?

데이터베이스 일관성은 데이터베이스 시스템 내의 모든 데이터 포인트가 적절하게 읽고 수락하려면 에 맞춰야 합니다. 전제 조건 값을 충족하지 않는 데이터가 데이터베이스에 입력되면 일관성 오류가 발생합니다. . 데이터베이스 일관성은 규칙을 설정하여 달성됩니다. 기록된 데이터의 모든 거래 데이터베이스 개발자가 설정한 규칙에 의해 설정된 특정 제약 조건, 트리거, 변수, 계단식 등에 의해 정의된 대로 영향을 받는 데이터만 변경해야 합니다.

예를 들어 NTSI(National Traffic Safety Institute)에서 근무한다고 가정해 보겠습니다. 귀하는 새로운 캘리포니아 운전 면허증 데이터베이스를 생성하는 임무를 받았습니다. 캘리포니아의 인구는 지난 10년 동안 폭발적으로 증가하여 모든 첫 운전 면허증 소지자에게 새로운 알파벳과 숫자 형식이 필요하게 되었습니다. 귀하의 팀은 데이터베이스의 캘리포니아 운전 면허증에 대한 새 설정 값이 1 Alpha + 7 Numeric인 것으로 결정했습니다. 모든 단일 항목은 이제 이 규칙을 따라야 합니다. "C08846024"라는 항목은 오류와 함께 반환됩니다. 왜요? 입력한 값이 1 Alpha + 8 Numeric이기 때문에 본질적으로 일관되지 않는 데이터 형식입니다. .

일관성은 또한 한 테이블의 특정 개체에 대한 데이터 변경 사항이 해당 개체가 있는 다른 모든 테이블에서 변경되어야 함을 의미합니다. 운전 면허증의 예를 계속 유지하면서 새 운전자의 집 주소가 변경되면 해당 업데이트는 이전 주소가 존재했던 모든 테이블에 표시되어야 합니다. 한 테이블에 이전 주소가 있고 다른 모든 테이블에 새 주소가 있는 경우 이는 데이터 불일치의 대표적인 예가 됩니다. .


참고 :데이터베이스 일관성은 주어진 트랜잭션에 도입된 데이터가 정확하다는 것을 보장하지 않습니다. 시스템 내에서 쓰고 읽는 데이터가 데이터베이스에 입력할 수 있는 데이터의 모든 전제 조건을 충족한다는 것만 보장합니다. 간단히 말해서 위의 예에서 1 Alpha + 7 Numeric 규칙을 충족하는 데이터 트랜잭션을 아주 잘 입력할 수 있지만 데이터가 실제 운전 면허증과 일치한다는 것을 보장하지는 않습니다. 데이터베이스 일관성은 데이터가 나타내는 내용이 아니라 형식만 고려합니다.

데이터베이스 일관성이 중요한 이유는 무엇입니까?

일관된 데이터 데이터베이스가 기름칠이 잘 된 기계처럼 작동하도록 하는 것입니다. 일관성 없는 데이터를 유지하는 규칙/값 설정 기본 데이터베이스 및 복제본에서 다음을 통해 원활한 작업 유지:

  • 정확도
  • 증가된 데이터베이스 공간
  • 더 빠르고 효율적인 데이터 검색

데이터베이스 일관성은 들어오는 모든 데이터를 규제합니다. 따라서 데이터베이스는 새 데이터를 수락할 때 변경되지만 적어도 처음에 설정된 유효성 검사 규칙에 따라 일관되게 변경됩니다. 오늘날의 세계에서는 매일 인지된 데이터베이스의 일관성. 실시간 정보가 현대 디지털 비즈니스의 새로운 현상이 되면 데이터 세트에 잘못된 정보가 없도록 확인 규칙을 마련하는 것이 매우 중요합니다. 결국 시간.

데이터베이스 일관성 예

실제 세계에서 데이터베이스 일관성 작업의 예는 무엇입니까? 우리는 이미 위의 NTSI 시나리오에서 한 가지 예를 살펴보았습니다. 뱅킹의 세계로 피벗합시다.

한 계정에서 다른 계정으로 자금을 이체한다고 가정해 보겠습니다. 이미 $300가 있는 계정으로 $1200를 이체했습니다. 새로고침하면 $1500 잔액을 찾을 수 있습니다. 그러나 이 최근 작업은 잔액에 반영되지 않습니다. 실제로 새 잔액은 이제 $0입니다. 이 기술적인 경미한 사항은 약한 일관성의 대표적인 예입니다. 은행 담당자와 문제를 해결하는 데 시간이 소요될 수 있습니다. 이와 같은 문제는 브랜드의 평판을 손상시키고 막대한 비용을 초래할 수 있습니다. 데이터베이스 시스템의 강력한 일관성은 개발자와 소비자 모두에게 점점 더 협상의 대상이 되고 있습니다.

강한 일관성 대 약한 일관성

강력한 일관성 기본, 복제본 및 모든 해당 노드의 모든 데이터가 유효성 검사 규칙에 부합하고 주어진 시간에 동일함을 의미합니다. 강력한 데이터베이스 일관성을 사용하면 어떤 클라이언트가 데이터에 액세스하는지가 중요하지 않습니다. 그들은 항상 데이터베이스에 대해 설정된 규칙을 따르는 가장 최근에 업데이트된 데이터를 보게 됩니다.

약한 일관성 속담의 와일드 웨스트와 약간 비슷합니다. 기본, 복제본 또는 노드의 데이터가 주어진 순간에 동일하다는 보장은 없습니다. 인도의 한 클라이언트가 데이터에 액세스하여 유효성 검사 규칙을 통과하는 정보를 볼 수 있지만 가장 최근에 업데이트된 데이터가 아닐 수 있어 일관성 오류가 발생할 수 있습니다. . 그들은 더 이상 관련이 없는 정보에 대해 매우 잘 행동할 수 있습니다.

일관성 수준

일관성 수준 유효한 트랜잭션으로 승인되기 전에 허용되는 새 데이터로 응답해야 하는 복제본 또는 노드의 수를 지정하는 또 다른 사전 조건된 값 세트입니다. 이 작업은 트랜잭션별로 변경할 수 있습니다. 예를 들어, 프로그래머는 데이터 일관성을 확인하기 전에 두 개의 노드만 새로 입력된 데이터를 읽어야 한다고 지시할 수 있습니다. 해당 기압계를 넘으면 일관된 데이터로 간주됩니다. 그 후.

격리 수준

격리 수준은 데이터베이스 ACID(Atomicity, Consistency, Isolation, Durability) 속성의 일부입니다. ACID는 SQL 데이터베이스와의 데이터베이스 일관성의 기본 개념이며 데이터베이스 일관성을 최적화하기 위해 특정 데이터베이스가 따르는 것입니다. 격리 ACID의 속성 중 하나이며 특정 데이터베이스 네트워크의 모든 정보에서 특정 데이터 조각을 구분하여 다른 사용자 트랜잭션에 의해 수정되지 않도록 합니다. 격리는 동시 트랜잭션에서 생성되는 중요하지 않은 데이터의 읽기 및 쓰기를 줄이기 위해 활용됩니다.

네 가지 유형의 격리 수준이 있습니다.

  • 미확약 읽기 :가장 낮은 단계. 이전 트랜잭션이 해당 행에 커밋되지 않은 업데이트를 제공한 경우 행 업데이트를 중지합니다.
  • 읽기 커밋 :"더티 읽기"를 허용하지 않습니다. 트랜잭션이 이미 업데이트되었지만 아직 커밋된 경우 읽기 또는 쓰기를 차단합니다.
  • 반복 읽기 :이 수준은 읽고 있는 데이터 행이 액세스되고 잠재적으로 업데이트되지 않도록 합니다.
  • 직렬화 가능 :직렬화 가능한 가장 높은 격리 수준은 일반적으로 특정 데이터 행이 아닌 전체 테이블을 잠급니다.

데이터베이스 일관성 FAQ

데이터가 일관성이 있다는 것은 무엇을 의미합니까?

데이터가 사용자와 지리적으로 데이터에 액세스하는 위치에 관계없이 동시에 해당하는 모든 노드에서 동일하게 나타나면 데이터가 일관성이 있습니다.

데이터 일관성은 데이터베이스 일관성과 동일한가요?

아니요. 데이터베이스 일관성은 테이블의 다른 모든 데이터와 공식적으로 일관성을 유지하기 위해 네트워크에 들어오는 데이터에 대한 유효성 검사 규칙이 필요합니다.

데이터 일관성은 네트워크 전체와 해당 데이터를 활용하는 수많은 애플리케이션 간에 데이터가 가능한 한 균일하게 유지되는 프로세스입니다.

최종 일관성이란 무엇입니까?

최종 일관성을 통해 업데이트를 거친 데이터는 결국 해당 데이터가 저장된 모든 노드에 반영됩니다. 결국 모든 노드는 클라이언트가 최종 일관성을 통해 네트워크에서 액세스할 때마다 동일한 데이터를 생성합니다.

관계형 데이터베이스의 단일 테이블은?

관계형 데이터베이스의 모든 데이터는 행과 열로 구성된 테이블에 저장됩니다. 데이터 요소는 이러한 행과 열로 구성됩니다. 종종 "레코드"라고 하는 행은 일반적으로 데이터 범주를 나타내고 열 또는 "필드"는 "인스턴스"를 나타냅니다. 테이블은 데이터베이스 내에서 발견되며 주제 기반 디자인으로 데이터가 중복되는 것을 방지하는 데 도움이 됩니다.

관계형 데이터베이스는

테이블

ACID 모델은 BASE 모델과 어떻게 비교됩니까?

ACID와 BASE(기본적으로 사용 가능, 소프트 상태, 최종 일관성) 모델 간의 주요 차이점은 ACID가 데이터베이스 일관성을 최적화하기 위해 작동하는 반면 BASE는 고가용성을 강화한다는 것입니다. ACID는 트랜잭션을 일관되게 유지하므로 BASE 모델을 사용하는 경우 일관성이 최우선 순위로 유지되고 철저하게 해결되는지 확인하십시오.

Redis 데이터베이스는 일관성이 있습니까?

Redis가 캐시로 사용되는 경우 문제의 일관성은 Redis 인스턴스(기본/복제본) 간에 그리고 Redis 캐시와 기본 데이터베이스인 Redis 간에 있을 수 있습니다. 이 경우 두 데이터 간의 데이터가 일치하지 않으면 데이터가 일치하지 않을 수 있습니다. 우리 블로그인 캐시 일관성을 유지하는 세 가지 방법은 이 문제를 해결하는 방법을 다룹니다.

오픈 소스 Redis의 경우 일관성이 약하지만 Redis Enterprise의 Active-Active Geo-Distribution은 강력한 최종 일관성을 제공합니다.

엔터프라이즈 애플리케이션을 위한 클라우드 캐싱 기술에 관심이 있으십니까? Lee Atchison의 Caching at Scale with Redis를 읽으려면 아래를 클릭하십시오. .