공부/DB
데이터의 정합성과 무결성
minho-bot
2024. 11. 10. 16:58
정합성과 무결성. 언뜻 봐도 중요하다.
둘 다 중요하지만 뭐가 다른지 gpt 에게 물어보자
나 : 데이터의 정합성과 무결성에 대해 설명해줘
GPT :
데이터의 정합성과 무결성은 데이터베이스와 시스템에서 매우 중요한 개념입니다. 두 개념 모두 데이터가 정확하고 신뢰할 수 있는 상태를 유지하도록 보장하는 데 중점을 둡니다.
데이터 정합성 (Data Consistency)
정합성은 데이터가 일관되고 서로 모순되지 않으며 정확하게 유지되는 상태를 말합니다. 주로 데이터의 중복이나 데이터의 모순을 방지하고자 할 때 사용하는 개념입니다. 예를 들어, 고객의 정보가 여러 테이블에 걸쳐 있을 때 모든 테이블에 동일한 정보가 일관되게 저장되어 있어야 정합성이 유지됩니다. 데이터 정합성을 유지하기 위한 방법에는 데이터베이스의 트랜잭션 관리, 제약 조건, 참조 무결성 등이 있습니다.
데이터 무결성 (Data Integrity)
무결성은 데이터가 정확하고 신뢰할 수 있으며 허가되지 않은 수정이나 삭제 없이 원래 의도된 대로 유지되는 상태를 의미합니다. 데이터 무결성을 보장하기 위해 데이터베이스에서는 여러 종류의 무결성 제약 조건을 사용합니다
개체 무결성 (Entity Integrity): 기본 키(Primary Key)를 사용하여 각 데이터 항목이 고유하게 식별될 수 있도록 보장합니다. 기본 키 값은 중복되거나 null이 될 수 없습니다.
참조 무결성 (Referential Integrity): 외래 키(Foreign Key)를 사용하여 테이블 간의 관계가 정확하게 유지되도록 보장합니다. 예를 들어, 주문 테이블에서 고객 ID를 참조할 때, 고객 테이블에 해당 ID가 존재해야 참조 무결성이 유지됩니다.
도메인 무결성 (Domain Integrity): 특정 열에 저장될 수 있는 데이터의 유형이나 형식을 정의하여 유효한 데이터만 입력되도록 제한합니다. 예를 들어, 나이 필드는 양수만 허용하거나 이메일 필드는 특정 형식을 따라야 하는 등 제한을 둡니다.
업무 규칙 무결성 (Business Rules Integrity): 특정 비즈니스 로직에 따른 규칙을 만족하도록 데이터의 무결성을 보장합니다. 예를 들어, 재고 관리 시스템에서 재고 수량이 음수가 되지 않도록 하는 것 등이 해당됩니다.
이러한 무결성 제약 조건을 통해 데이터베이스는 데이터의 신뢰성을 보장하고, 데이터가 손상되지 않도록 방지할 수 있습니다.
즉 정합성이란 값의 일관성에 대한 문제이고
무결성은 값의 신뢰성에 대한 문제인 것 같다.
정합성은 지켜지지만 무결성이 깨진 경우 :
아이템이 1개 남았는데 2 명이 구매에 성공하여 -1개가 되는 경우
2개 샀기때문에 -1은 맞지만, -1개라는건 말이 안됨
무결성은 지켜지지만 정합성이 깨진 경우 :
아이템이 2개 남았는데 동시에 2 명이 구매에 성공하여 1개가 되는 경우
재고가 1개일 수는 있지만 2명이 구매하였다면 0개가 되어야함