실전 프로젝트 6주차. 오늘은 코드 리팩토링을 한번 진행하고 하루종일 프로젝트 브로셔를 작성했다. 트러블 슈팅을 정리했는데 생각보다 이번 프로젝트에서 여러 문제들을 겪고 해결한 것 같아 뿌듯했다. 오늘 TIL에는 데이터 무결성에 대해 정리해보려 한다.
데이터 무결성 (Integrity)
: 데이터 값이 정확하고 완전한 상태. 데이터의 정확성, 일관성, 유효성을 보장.
관계형 DB의 가장 큰 목표는 데이터 무결성을 높이는 것.
데이터 정합성 (Consistency)
: 데이터 값이 서로 일치한 상태. 데이터가 모순 없이 서로 일관되게 일치해야 한다.
중복 데이터가 많으면 데이터 정합성을 맞추기 어렵다.
데이터 무결성이 데이터 정합성보다 더 큰 개념이다.
중복 데이터들이 다 틀린 값으로 일치하게되면 정합성은 맞지만 무결성은 맞지 않는 상태가 된다. 따라서 무결성을 지키는 것이 데이터 모델링 최고의 목표다.
개체 무결성 (Entity Integrity)
DB의 테이블에서 기본키가 고유하고, Null값을 가지지 않는다.
각 행을 고유하게 식별하는데 도움이 된다.
참조 무결성 (Reference Integrity)
외래키를 사용해 테이블 간의 관계를 정의할 때, 관련된 테이블의 기본키 값이 삭제나 변경되면 외래키 값이 같이 동기화되어야 한다. 이를통해 데이터 일관성이 유지된다.
도메인 무결성 (Domain Integrity)
데이터의 값이 해당 열에 정의된 도메인에 속하는지 확인하는 것. 같은 속성(열)에 속하면 같은 성격을 가진다.
사용자 정의 무결성 (User-Defined Integrity)
DB 설계자가 정의한 규칙과 제약 조건에 따라 데이터 유효성이 보장
ex) 나이의 열 값이 음수가 아닐 것.
이러한 무결성 규칙을 통해 DB에서 데이터의 정확성, 일관성, 유효성이 유지되어 신뢰할 수 있는 정보를 제공할 수 있다.