무결성 제약
무결성 제약은 데이터베이스에 잘못된 값이 들어오지 못하게 막는 규칙이다. 예를 들어 학번이 비어 있거나 같은 학번이 두 번 들어가면 학생을 구별할 수 없다. DBMS가 이런 상황을 스스로 막는 것이 무결성 제약의 역할이다. 무결성 제약은 제약이 걸리는 단위에 따라 네…
주요 장면
대본
무결성 제약이란
무결성 제약은 데이터베이스에 잘못된 값이 들어오지 못하게 막는 규칙이다.
예를 들어 학번이 비어 있거나 같은 학번이 두 번 들어가면 학생을 구별할 수 없다.
DBMS가 이런 상황을 스스로 막는 것이 무결성 제약의 역할이다.
네 가지 유형
무결성 제약은 제약이 걸리는 단위에 따라 네 가지 유형으로 나뉜다.
도메인 무결성은 열의 값이 정의된 도메인, 즉 타입과 범위 안에 있어야 한다.
개체 무결성은 기본키가 NULL이 아니고 유일해야 한다는 규칙이다.
참조 무결성은 외래키가 부모 기본키 값과 같거나 NULL이어야 한다는 규칙이다.
사용자 정의 무결성은 CHECK, TRIGGER 등으로 업무 규칙을 담는다.
기본키와 외래키
기본키는 행을 구별하는 열이다. NULL을 허용하지 않으며 값이 유일해야 한다.
외래키는 다른 테이블의 기본키 값을 가리키는 열이다.
참조 무결성은 외래키 값이 부모 기본키 값과 같거나 NULL이어야 한다는 규칙이다.
외래키 NULL은 관계가 없거나 알 수 없음을 뜻하므로 업무 규칙에 따라 허용한다.
참조 동작
정답은 허용되지 않는다. 기본키는 NULL을 가질 수 없다.
외래키 참조 동작은 부모 행을 삭제하거나 갱신할 때 자식 행을 처리하는 방식이다.
CASCADE는 자식도 함께 처리하고, RESTRICT와 NO ACTION은 자식이 있으면 거부한다.
SET NULL은 외래키를 NULL로, SET DEFAULT는 기본값으로 바꾼다.
종속이 강하면 CASCADE, 기준 데이터를 지키려면 RESTRICT나 NO ACTION을 고른다.
정리
무결성 제약은 도메인, 개체, 참조, 사용자 정의 네 가지 유형으로 정리된다.
기본키는 NULL 불가와 유일성, 외래키는 부모 기본키와 일치하거나 NULL을 만족해야 한다.
구현은 DDL 제약을 우선하고, 복잡한 규칙은 트리거로, 나머지는 애플리케이션이 보완한다.
시험에서는 유형과 사례, 구현 방법, 위반 처리까지 함께 써야 완결된 답이 된다.