-
데이터 무결성 제약조건oracle/12장_데이터무결성제약조건 2022. 12. 9. 13:07
* 데이터 무결성 제약조건의 장점
1) 테이블 생서이 제약조건을 정의 가능
2) 테이블에 대해 정의, 데이터 딕셔너리에 저장됨으로 응용프로그램에서 입력된 모든 데이터에 동일 적용
3) 제약조건을 비활성화, 활성화 할 수 있는 융통성
* 무결성 제약조건의 종류
NOT NULL : 해당 칼럼 값은 NULL을 포함할 수 없음
고유 키 : 테이블내에서 해당 칼럼 값은 항상 유일해야 함 (NULL값을 허용함)
기본 키 : 해당 칼럼 값은 반드시 존재해야 하며, 유일해야함 (고유키, NOT NULL 제약조건을 결합한 형태)
참조 : 해당 칼럼 값은 참조되는 테이블의 칼럼 값 중의 하나와 일치하거나 NULL을 가짐
CHECK : 해당 칼럼에 저장 가능한 데이터 값의 범위나 조건 지정 (데이터 입력이나 수정시 실수 예방)
- 즉시 제약조건검사 (immediate constraint)
DML 명령문을 실행할 때마다 무결성 제약조건의 위반 여부를 검사
제약 조건을 위반한 경우 DML 명령문을 ROLLBACK 시키고 오류 메시지 출력
제약조건 생성시 'NOT DEFERRED' 나 'DEFERRABLE INITIALLY IMMEDIATE' 로 지정된 경우 즉시 제약조건에 해당
- 지연 제약조건검사 (deferred constraint)
트랜잭션의 commit 시점에 무결성 제약조건의 위반 여부를 검사
트랜잭션 내에서 제약조건을 위반한 DML 명령문이 있는 경우 해당 트랜잭션을 모두 ROLLBACK 시킴
제약조건 생성시 'DEFFERABLE INITIALLY DEFERRED'로 지정된 경우 지연 제약조건에 해당
-- 고유키-QniQue, 기본키 : 오라클은 자동으로 해당 칼럼에 Unique_index를 생성함
-- 고유키QniQue : 중복X, null 허용, 유일성, 인덱스 자동생성
-- 기본키 : 중복X, not null, 유일성, 인덱스 자동생성
-- check : null 허용, 범위내에 값만 설정
-- 참조 무결성 : 외래키는 부모테이블의 기본키/고유키만 참조
부모의 참조키 칼럼에 없을때 자식 테이블에 입력하면 오류
부모의 참조키 칼럼에 없을때 자식 테이블에 null 허용
-- 제약조건명 생략시 : SYS_Cn으로 자동생성 --> 에러표시: (%s.%s)
-- 제약조건명 정의시 : user_cons-columns사전에 저장
-- 제약조건체크하는 시점에 따라, 즉시, 지연(deferred)
-- 즉시 : not deferrable : DML 처리 될때 제약조건검사
initially immediate :DML 종료시 즉시 제약조건 검사
-- 지연(commit 시점) : deferrable : 트랜잭션내의 DML 검사는 트랜잭션 종료시까지 연기
initially deferrable : 트랜잭션이 종료될때만 검사'oracle > 12장_데이터무결성제약조건' 카테고리의 다른 글
DATABASE - 12장 연습문제 (0) 2022.12.09 무결성 제약조건 생성 예시 (0) 2022.12.09 -INDEX SPACE 공간 만들기 (0) 2022.12.09