728x90
데이터의 정확성, 일관성, 신뢰성을 유지하는 것을 의미
데이터 무결성의 중요성
- 데이터의 신뢰성 유지: 데이터 무결성은 데이터베이스 내 정보가 정확하고 일관되도록 보장하여, 시스템 내 데이터를 신뢰할 수 있게 합니다.
- 중복과 모순 방지: 데이터의 중복을 줄이고, 서로 모순되는 데이터가 저장되는 것을 방지합니다.
- 데이터 오류 방지: 오류가 포함된 데이터가 저장되는 것을 막아, 데이터베이스의 품질과 신뢰성을 높입니다.
데이터 무결성의 유형
- 엔티티 무결성(Entity Integrity)
- 개념: 테이블의 각 행을 고유하게 식별하기 위해 기본 키(Primary Key)를 사용하여, 동일한 값이 중복되지 않도록 보장하는 무결성 규칙입니다.
- 규칙: 기본 키는 중복될 수 없고, NULL 값을 가질 수 없습니다.
- 예: 직원 테이블에서 직원 ID는 각 직원에게 유일하게 부여되어 중복될 수 없습니다.
- 참조 무결성(Referential Integrity)
- 개념: 데이터베이스에서 테이블 간의 관계를 유지하기 위해 **외래 키(Foreign Key)**를 사용하여, 한 테이블의 값이 다른 테이블에 존재하는 값만을 참조하도록 보장하는 규칙입니다.
- 규칙: 외래 키는 다른 테이블의 기본 키 또는 고유한 값과 일치해야 하며, 참조하는 값이 없는 경우 관계가 성립되지 않습니다.
- 예: 주문 테이블의 고객 ID는 고객 테이블의 고객 ID와 일치해야 하며, 고객이 존재하지 않으면 주문도 생성될 수 없습니다.
- 도메인 무결성(Domain Integrity)
- 개념: 각 열이 사전에 정의된 데이터 유형, 형식, 값 범위를 갖도록 제한하는 규칙입니다. 이를 통해 데이터가 유효한 값만을 가지도록 보장합니다.
- 규칙: 각 열에는 특정 데이터 유형과 제약 조건이 설정되며, 값이 허용된 범위를 벗어나거나 유효하지 않은 경우 입력이 제한됩니다.
- 예: 나이 열은 양의 정수만 입력할 수 있도록 설정하여, 음수나 문자값이 입력되는 것을 방지합니다.
- 고유성 무결성(Unique Integrity)
- 개념: 특정 열이나 열 조합에 대해 고유한 값만을 허용하여 중복을 방지하는 규칙입니다.
- 규칙: 고유성 제약(UNIQUE)을 설정하여, 특정 열이 중복되지 않도록 합니다.
- 예: 회원 테이블의 이메일 열에 고유성 제약을 설정해, 중복 이메일이 등록되지 않도록 합니다.
- 비즈니스 무결성(Business Integrity)
- 개념: 비즈니스 로직과 관련된 특정 규칙을 정의하여 데이터가 일관성을 유지하도록 하는 규칙입니다.
- 규칙: 비즈니스 로직에 따라 조건이나 제약을 추가하여, 데이터가 논리적이고 비즈니스 요구에 맞는 값을 유지하도록 합니다.
- 예: 주문 금액이 0보다 커야 하며, 재고 수량이 음수가 될 수 없도록 설정합니다.
데이터 무결성 유지 방법
- 제약 조건: 데이터베이스에서 엔티티 무결성, 참조 무결성, 도메인 무결성을 위한 제약 조건(PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK 등)을 설정합니다.
- 트랜잭션 관리: 트랜잭션을 통해 데이터 조작 시 일관된 상태를 유지하고, 오류 발생 시 원래 상태로 복구합니다.
- 정규화: 데이터베이스를 정규화하여 데이터 중복을 최소화하고 일관성을 유지합니다.
- 입력 검증: 데이터 입력 단계에서 유효성 검사를 수행하여 잘못된 데이터가 저장되지 않도록 방지합니다.
데이터 무결성의 예시
- 기본 키로 엔티티 무결성 유지: 학생 ID 열에 기본 키 제약 조건을 설정하여, 중복된 ID가 생성되지 않도록 합니다.
- 외래 키로 참조 무결성 유지: 주문 테이블의 제품 ID 열이 제품 테이블의 제품 ID를 참조하여, 주문할 때 유효한 제품 ID만 사용하게 합니다.
- 데이터 형식 제약으로 도메인 무결성 유지: 생년월일 열은 날짜 형식만 입력 가능하도록 설정합니다.
결론
데이터 무결성은 데이터베이스의 신뢰성을 유지하고, 잘못된 데이터 입력과 같은 오류를 방지하기 위한 중요한 개념입니다. 데이터베이스는 다양한 무결성 제약 조건을 통해 데이터의 정확성과 일관성을 보장하여, 효율적인 데이터 관리와 데이터 품질을 유지할 수 있도록 돕습니다.
728x90
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] Commit과 Rollback (0) | 2024.10.31 |
---|---|
[데이터베이스] 제약조건 PK, FK, UK (Primary, Foreign, Unique Key) (0) | 2024.10.31 |
[데이터베이스] 기본적인 SQL (데이터 조회,삽입,수정,삭제/테이블 생성,수정,삭제,제어) (0) | 2024.10.31 |
[데이터베이스] 데이터베이스 기본 용어 정리 (1) | 2024.10.31 |
[데이터베이스] 데이터베이스란? (0) | 2024.10.31 |