코딩항해기
[DBMS/Oracle] 무결성 본문
[요약]
무결성을 판단하는 3가지 : 정확성, 일관성, 유효성
무결성의 종류 : 개체 무결성, 참조 무결성, 도메인 무결성, 무결성 규칙
참조 무결성을 유지하기 위한 기능
RESTRICTED | 부모 테이블의 값을 변경 또는 삭제하고자 할 때 해당 값을 참조하고 있는 개체가 있다면, 변경 또는 삭제 연산을 취소한다. |
CASCADE | 부모 테이블의 값을 또는 삭제하면, 해당 값을 참조하고 있는 개체도 변경 또는 삭제된다. |
SET NULL | 부모 테이블의 값을 변경 또는 삭제하면, 해당 값을 참조하고 있는 개체의 값을 NULL로 설정한다. |
제약조건 유형
NOT NULL | null을 허용하지 않음 | 컬럼명 컬럼타입 NOT NULL |
UNIQUE | 중복값과 null을 허용하지 않음 | CONSTRAINT 제약조건명 UNIQUE(컬럼명) |
PRIMARY KEY | 중복값과 null을 허용하지 않고, 테이블 당 1개만 가능 | CONSTRAINT 제약조건명 PRIMARY KEY(컬럼명) |
FOREIGN KEY | 다른 테이블의 pk, unique를 참조 | CONSTRAINT 제약조건명 FOREIGN KEY(컬럼명) REFERENCES 참조테이블(참조컬럼) |
CHECK | 조건식에 맞는 데이터만 가능 | CONSTRAINT 제약조건명 CHECK 조건 |
[무결성]
데이터의 무결성은 정확성, 일관성, 유효성이 유지되는 것을 의미한다.
데이터베이스 관리시스템(DBMS)의 중요한 기능으로 무결성에는 4가지 종류가 있다.
개체 무결성(Entity integrity)
모든 테이블이 기본 키(primary key = pk)로 선택된 필드를 가져야하며, pk는 빈 값을 허용하지 않는다.
(primary key : 데이터를 구분하기 위한 고유한 식별자로, null 허용하지 않음, 중복값 허용하지 않음, 복합키 가능)
참조 무결성(Referential integrity)
참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 가져야한다.
따라서 참조 대상이 존재하지 않는 외래 키(foreign key)를 허용하지 않는데,
이로 인해 참조 테이블의 값을 삭제할 때 참조 무결성이 깨지거나 오류가 발생할 수 있다.
이러한 경우를 방지하기 위해 하단 3가지의 기능을 fk키에 적용할 수 있다.
RESTRICTED | 부모 테이블의 값을 변경 또는 삭제하고자 할 때 해당 값을 참조하고 있는 개체가 있다면, 변경 또는 삭제 연산을 취소한다. |
CASCADE | 부모 테이블의 값을 또는 삭제하면, 해당 값을 참조하고 있는 개체도 변경 또는 삭제된다. |
SET NULL | 부모 테이블의 값을 변경 또는 삭제하면, 해당 값을 참조하고 있는 개체의 값을 NULL로 설정한다. |
CONSTRAINT [제약조건 이름] REFERENCES 참조 테이블(참조할 열) ON DELETE 참조조건
도메인 무결성(Domain integrity)
필드의 타입, 옵션 등의 제약사항이 올바르게 들어가 올바른 데이터값이 입력되어야한다.
(전화번호 필드에 이름이 들어가는 등의 경우가 도메인 무결성이 깨진 경우이다.)
제약조건의 유형
NOT NULL | null을 허용하지 않음 | 컬럼명 컬럼타입 NOT NULL |
UNIQUE | 중복값과 null을 허용하지 않음 | 컬럼명 컬럼타입 UNIQUE |
CONSTRAINT 제약조건명 UNIQUE(컬럼명) | ||
PRIMARY KEY | 중복값과 null을 허용하지 않고, 테이블 당 1개만 가능 | 컬럼명 컬럼타입 [CONSTRAINT 제약조건명] PRIMARY KEY |
CONSTRAINT 제약조건명 PRIMARY KEY(컬럼명) | ||
FOREIGN KEY | 다른 테이블의 pk, unique를 참조 | 컬럼명 컬럼타입 [CONSTRAINT 제약조건명] FOREIGN KEY REFERENCES 참조테이블(참조컬럼) |
CONSTRAINT 제약조건명 FOREIGN KEY(컬럼명) REFERENCES 참조테이블(참조컬럼) | ||
CHECK | 조건식에 맞는 데이터만 가능 | 컬럼명 컬럼타입 CHECK 조건 |
CONSTRAINT 제약조건명 CHECK 조건 |
무결성 규칙(Integrity rule)
데이터의 무결성을 지키기 위한 모든 제약사항을 의미한다.
'DBMS > Oracle' 카테고리의 다른 글
[DBMS/Oracle] 식별자 (0) | 2024.07.08 |
---|---|
[DBMS/Oracle] 시퀀스 SEQUENCE (0) | 2024.07.07 |
[DBMS/Oracle] 시퀀스, 집계함수(GROUP BY, HAVING) (0) | 2024.06.21 |
[DBMS/Oracle] 테이블 쿼리문 (DDL) 기초 (0) | 2024.06.16 |
[DBMS/Oracle] 데이터 쿼리문 (DML) 기초 (0) | 2024.06.15 |