데이터베이스 무결성 제약 조건
설명 영상 데이터베이스 무결성 제약 조건 · 2:24
왜 배우는가: 데이터베이스 무결성 제약 조건은 잘못된 데이터가 저장되는 것을 DBMS 차원에서 막는 장치다. 응용마다 검사 로직을 따로 두면 누락이 생기므로 설계의 기본 원리로 다뤄진다. 기술사 시험에서는 개체·참조 무결성을 중심으로 정의, 종류, 설계 고려사항을 묻는 문제가 반복해서 나온다.
출제 이력: 제134회 3교시 4번, 제128회 3교시 6번, 제98회 4교시 5번
1. 한 줄 정의와 핵심 키워드
데이터베이스 무결성 제약 조건은 저장 데이터의 정확성·일관성을 DBMS가 자동으로 강제하도록 스키마에 선언한 규칙이다.
- 무결성(Integrity)
- 무결성 제약 조건(Integrity Constraint)
- 개체 무결성(Entity Integrity)
- 참조 무결성(Referential Integrity)
- 도메인 무결성(Domain Integrity)
- 기본키(Primary Key)
- 외래키(Foreign Key)
- 사용자 정의 무결성(User-defined Integrity)
2. 개념 풀이
쉽게 말하면 데이터가 현실과 어긋나거나 규칙에 맞지 않게 들어오는 것을 막는 문지기 역할이다. 예를 들어 주문에 존재하지 않는 고객 번호가 들어가거나, 같은 주문 번호가 두 번 저장되는 일을 막는다.
무결성은 저장된 값이 현실 세계의 실제 값과 일치하는 정확성을 뜻한다. 이를 지키기 위해 테이블 정의 단계에서 선언하는 규칙을 무결성 제약 조건이라 한다. DBMS는 삽입·수정·삭제 때마다 이 규칙을 검사하고, 위반하면 연산을 거부하거나 정해진 참조 동작을 수행한다.
개체 무결성은 기본키를 구성하는 속성이 NULL 값이나 중복 값을 가질 수 없다는 규칙이다. 기본키가 행을 유일하게 구별하는 역할을 하므로 이 규칙이 필요하다. 기본키는 NOT NULL과 UNIQUE를 동시에 만족해야 한다.
참조 무결성은 외래키 값이 NULL이거나 참조 대상 테이블의 기본키 값 중 하나여야 한다는 규칙이다. 두 테이블 사이의 관계가 깨지지 않도록 막는다. 자식 테이블에 있는 외래키가 부모에 없는 값을 가리키면 고아 레코드가 생긴다.
도메인 무결성은 각 속성 값이 정의된 자료형, 범위, 형식에 속해야 한다는 규칙이다. 문자형 속성에 숫자가 들어가는 것을 막는다. NOT NULL, DEFAULT, CHECK 제약으로 구현한다.
사용자 정의 무결성은 위 세 범주에 속하지 않는 업무 규칙이다. 급여가 상한을 넘지 않는다는 조건처럼 업무마다 다른 규칙을 CHECK, 트리거 등으로 구현한다.
3. 등장 배경과 필요성
초기 파일 시스템에서는 데이터 검사가 응용 프로그램마다 흩어져 있었다. 같은 규칙을 여러 프로그램이 따로 구현하면 누락과 불일치가 생긴다. 관계형 모델은 무결성 규칙을 데이터 모델의 일부로 정의해 DBMS가 일원화하여 강제하도록 했다.
데이터가 여러 응용과 경로(배치, 온라인, 외부 연계)로 변경되는 환경에서는 DBMS 차원의 검사가 필수다. 응용이 규칙을 지키지 않아도 DB가 최종 방어선이 되기 때문이다. 이 점이 무결성 제약을 DBMS에 두는 근거다.
관계형 모델의 두 가지 주요 규칙인 개체 무결성과 참조 무결성은 Codd의 관계형 모델에서 핵심 규칙으로 정리되었다. 그래서 시험에서 정의와 예시를 함께 묻는 경우가 많다. 무결성을 DBMS가 맡으면 일관성 모델과 데이터 무결성 책임이 데이터베이스에 있게 되어 시스템의 안정성과 유지보수성이 높아진다.
이어지는 내용
- 4. 구성요소·원리·절차
- 5. 관련 법령·기준·표준
- 6. 유형과 비교
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기