반응형
데이터의 무결성(Data Integrity)이란 데이터베이스에서 저장, 검색, 수정 등을 거쳐도 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다.
- 데이터 무결성을 유지하기 위한 규치과 제약 조건이 데이터베이스에 설정되며, 이는 데이터가 업데이트되거나 삭제될 때 해당 규칙을 따르도록 하는 데 사용된다.
데이터 무결성에는 주로 네 가지 유형이 있다.
엔티티 무결성
: 각 테이블에는 고유한 키(기본 키)가 있어야 하며, 이 키는 NULL 값이거나 중복 될 수 없다.참조 무결성
: 외래 키로 다른 테이블을 참조하는 경우, 이 외래 키 값은 반드시 참조하는 테이블의 기본 키 값 중 하나이거나NULL
이어야 한다.- 고객과 주문이 있는 데이터베이스를 생각해보자 각각의 주문은 특정 고객에게 연결되어있고, 이련결은 '고객ID'외래 키를 통해 이루어진다. 이 외래 키는 고객 테이블의 기본 키(고객 ID)를 참조한다.
- 이때 참조 무결성 규칙을 준수 한다면, 다음과 같은 상황을 방지할 수 있다.
잘못된 고객ID로 주문 생성
: 고객 테이블에 없는 고객ID로 주문을 생성하는 것은 허용되지 않는다. 왜냐하면 이 주문은 실제로 존재하는 고객에게 연결되지 않기 때문이다.고객 삭제
: 주문이 있는 고객을 삭제하려는 경우, 이 삭제 작업은 참조 무결성 규칙에 의해 제한된다. 이렇게 하면 주문이 더 이상 유효한 고객에게 연결되지 않는 상황을 방지할 수 있다.
- 테이블의 기본 키 값 중 하나이거나
NULL
이어야 하는이유- 예를 들어, 우리가 주문을 기록하는 테이블이 있고, 각 주문은 특정 고객에게 연결되어 있다고 가정해보자.
- 그런데 어떤 주문들은 아직 고객이 배정되지 않았다며, 이 경우 그 주문의'고객ID'필드(외래키)는
NULL
상태가 될 수 있다. - 이는
아직 이 주문에 배정된 고객이 없다
는 의미로 해석할 수 있기 때문이다.
도메인 무결성
: 테이블의 모든 컬럼(열 방향)은 반드시 선언된 도메인(데이터 타입, NULL가능 여부 등)을 준수해야 한다.사용자 정의 무결성
: 애플리케이션의 비즈니스 규칙에 따라 사용자가 정의하는 무결성 규칙이다. 이 규칙은 엔티티, 참조, 도메인 무결성에 의해 제공되지 않는 추가적인 비즈니스 프로세스를 구현하는데 사용된다.- 예를 들어, 어떤 은행 애플리케이션에서는 계좌의 잔액이 마이너스가 되지 않도록
잔액은 항상 0 이상
이라는 사용자 정의 무결성 규칙을 설정할 수 있다. - 이런 규칙은 데이터베이스의 기본 규칙에서는 제공하지 않으므로, 개발자가 직접 코드 레벨에서 무결성을 검증하고 유지하는 로직을 작성해야 한다.
- 예를 들어, 어떤 은행 애플리케이션에서는 계좌의 잔액이 마이너스가 되지 않도록
반응형