12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법
데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 장점 데이터의 정확성과 일관성을 보장 데이터의 정확성을 유지하여 다양한 종류의 업무규칙 고려한 예 student 테이블에서 학년 데이터는 1,2,3,4 중의 하나의 값만 입력 모든 학번은 유일 Student 테이블의 지도교수 번호는 professor 테이블의 교수 번호중의 하나와 반드시 일치 데이터 무결성 제약조건의 장점 테이블 생성시 무결성 제약조건을 정의 가능 테이블에 대해 정의, 데이터 딕셔너리에 저장되므로 응용 프로그램에서 입력된 모든 데이터에 대해 동일하게 적용 제약조건을 활성화, 비활성화 할 수 있는 융통성 12장. 데이터 무결성 제약조건
데이터 무결성 제약조건의 종류 무결성 제약조건의 종류 기본 키(Primary key), 참조, 고유 키(Unique key), NOT NULL, CHECK 무결성 제약조건 12장. 데이터 무결성 제약조건
데이터 무결성 제약조건의 예 12장. 데이터 무결성 제약조건
NOT NULL 무결성 제약조건 개념 해당 칼럼이 NULL 값을 가질 수 없다는 것을 정의 해당 칼럼에는 반드시 값을 입력해야 하고, 생략하면 오류 발생 기본 데이터를 NULL 로 수정하는 경우에도 오류 발생 12장. 데이터 무결성 제약조건
고유 키 무결성 제약조건 개념 한 테이블 내 해당 칼럼이 동일한 값을 가질 수 없음을 정의 NULL은 고유 키 제약조건에 위반되지 않으므로 입력 가능 12장. 데이터 무결성 제약조건
기본 키 무결성 제약조건 개념 하나 이상의 칼럼에 의해 테이블의 모든 행을 구별하기 위한 식별자를 정의 고유 키 제약조건과 NOT NULL 제약조건을 결합한 개념 12장. 데이터 무결성 제약조건
참조 무결성 제약조건 개념 한 테이블의 칼럼 값이 자신, 다른 테이블의 칼럼 값 중에 하나와 일치시키기 위한 제약조건 용어 자식 테이블 : 다른 테이블의 칼럼 값을 참조하는 테이블 부모 테이블 : 다른 테이블에 의해 참조되는 테이블 외래 키 : 부모 테이블의 칼럼 값을 참조하는 자식 테이블의 칼럼 참조 키 : 자식 테이블에서 참조하는 부모 테이블의 칼럼 12장. 데이터 무결성 제약조건
참조 무결성 제약조건 예 12장. 데이터 무결성 제약조건
CHECK 무결성 제약조건 개념 칼럼에서 허용 가능한 데이터의 범위나 조건을 지정 데이터 입력이나 수정시 실수로 부정확한 값을 입력 예방 하나의 컬럼에 여러 개의 CHECK 무결성 제약조건을 지정 가능 CURRVAL, NEXTVAL과 같은 가상 칼럼이나 SYSDATE, USER와 같은 함수는 사용 불가능 예 : student 테이블에서 학년 데이터는 1,2,3,4 중의 하나의 값만 입력 가능 12장. 데이터 무결성 제약조건
CHECK 무결성 제약조건 12장. 데이터 무결성 제약조건
무결성 제약조건 생성 방법 테이블 생성시 무결성 제약조건 생성 테이블 생성과 동시에 정의 가능 테이블을 생성한 이후에 추가, 삭제 가능 제약조건명을 지정하지 않으면 SYS_Cn 형태로 자동생성 칼럼 레벨 생성 칼럼 정의시 해당 칼럼별로 지정 가능 NOT NULL 무결성 제약조건은 칼럼 레벨에만 정의 가능 테이블 레벨 생성 제약조건이 하나 이상의 칼럼을 참조하거나 지정하는 경우 사용 12장. 데이터 무결성 제약조건
칼럼 레벨에서 제약조건 정의 12장. 데이터 무결성 제약조건
테이블 레벨에서 제약조건 정의 12장. 데이터 무결성 제약조건
무결성 제약조건 생성문에서의 키워드 ON DELETE CASCADE USING INDEX NOT DEFERRABLE : 부모 테이블에서 외래 키가 참조하는 기본 키나 고유 키를 포함한 행을 삭제할 경우 자식 테이블의 외래 키를 포함하는 행도 함께 삭제 USING INDEX 기본 키나 고유 키 무결성 제약조건 생성시 묵시적으로 생성되는 인덱스에 대한 스토리지 파라미터 정의 NOT DEFERRABLE : 하나의 DML 명령문이 처리될 때마다 제약조건 위반 여부를 검사, defer_spec을 명시하지 않을 경우에는 기본 값 DEFERRABLE 트랜잭션내의 모든 DML 명령문에 대한 제약조건 검사를 트랜잭션 종료 시까지 연기 INITIALLY IMMEDIATE DML 명령문이 종료될 때마다 제약조건 검사 INITIALLY DEFERRED 트랜잭션이 끝날 때만 제약조건 검사 12장. 데이터 무결성 제약조건
무결성 제약조건의 속성 무결성 제약조건의 검사 시점 즉시 제약조건(immediate constraint) 검사 DML 명령문을 실행할 때마다 무결서 제약조건의 위반 여부를 검사 제약조건을 위반한 경우 DML 명령문을 ROLLBACK 시키고 오류 메시지 출력 제약조건 생성시 ‘NOT DEFERRED’ 나 ‘DEFERRABLE INITIALLY IMMEDATE’로 지정된 경우 즉시 제약조건에 해당 지연 제약조건(deferred constraint) 검사 트랜잭션의 COMMIT 시점에 무결성 제약조건의 위반 여부를 검사 트랜잭션 내에서 제약조건을 위반한 DML 명령문이 있는 경우 해당 트랜잭션을 모두 ROLLBACK 시킴 제약조건 생성시 ‘DEFERRABLE INITIALLY DEFERRED’로 지정된 경우 지연 제약조건에 해당 12장. 데이터 무결성 제약조건
무결성 제약조건 생성 예1 12장. 데이터 무결성 제약조건
무결성 제약조건 생성 예1 12장. 데이터 무결성 제약조건
무결성 제약조건 생성 예2 12장. 데이터 무결성 제약조건
무결성 제약조건 생성 예2 12장. 데이터 무결성 제약조건
무결성 제약조건 조회 12장. 데이터 무결성 제약조건
기존 테이블에 무결성 제약조건 추가 무결성 제약조건 추가 NULL 무결성 제약 조건 추가 기존 테이블에 대해서도 무결성 제약조건을 추가로 생성 가능 ALTER … ADD CONSTRAINT 명령문 사용 NULL 무결성 제약조건은 ALTER … ADD 명령문으로 추가 불가 NULL 무결성 제약 조건 추가 ‘NULL 허용’ 상태를 ‘NULL 입력 불가’ 상태로 변경하는 것을 의미 ALTER TABLE…MODIFY 명령문을 사용하여 NULL 상태 변경 가능 12장. 데이터 무결성 제약조건
무결성 제약조건 추가 예 12장. 데이터 무결성 제약조건
무결성 제약조건 추가 실습 예1 12장. 데이터 무결성 제약조건
무결성 제약조건 추가 실습 예2 12장. 데이터 무결성 제약조건
무결성 제약조건에 의한 DML 명령문의 영향 무결성 제약조건 위반 검사 무결성 제약조건을 위반하는 데이터는 입력되지 않고 오류 메시지 출력 오라클 서버에서의 무결성 제약조건 검사 내부과정 1) 테이블에 데이터를 먼저 입력 2) 무결성 제약조건을 위반한 명령문은 롤백 12장. 데이터 무결성 제약조건
즉시 제약조건 검사에 위반되는 경우 12장. 데이터 무결성 제약조건
지연 제약조건 검사에 위반되는 경우 12장. 데이터 무결성 제약조건
무결성 제약조건 위반시 오류 메세지 12장. 데이터 무결성 제약조건
무결성 제약조건 삭제 무결성 제약조건 삭제 ALTER TABLE … DROP CONSTRAINT 명령문 사용 부모 테이블의 기본키 무결성 제약조건을 삭제하는 경우 참조 무결성 제약조건을 먼저 삭제한 후 삭제하거나 CASCADE 옵션 사용 12장. 데이터 무결성 제약조건
무결성 제약조건 삭제 예1 12장. 데이터 무결성 제약조건
무결성 제약조건 삭제 예2 12장. 데이터 무결성 제약조건
무결성 제약조건 활성화 및 비활성화 활성화 및 비활성화 시기 무결성 제약조건의 비활성화 대용량 데이터 초기 입력시 무결성 제약조건의 위반 여부를 검사하는 과정으로 인해 처리 시간이 오래 걸리는 경우가 발생 이러한 경우에는 기존의 무결성 제약조건을 일시적으로 비활성화하여 데이터를 입력 입력이 완료된 후 비활성화된 무결성 제약조건은 다시 활성화 ALTER TABLE 명령문에서 ENABLE 또는 DISABLE 절 사용 무결성 제약조건의 비활성화 12장. 데이터 무결성 제약조건
무결성 제약조건의 비활성화 12장. 데이터 무결성 제약조건
무결성 제약조건의 활성화 12장. 데이터 무결성 제약조건
무결성 제약조건의 활성화 예 12장. 데이터 무결성 제약조건
무결성 제약조건 조회 USER_CONSTRAINTS USER_CONS_COLUMNS 제약조건이 설정된 테이블 이름, 무결성 제약조건 이름, 무결성 제약조건 종류 및 활성화 상태정보를 저장 USER_CONS_COLUMNS 제약조건이 설정된 칼럼 이름을 저장 12장. 데이터 무결성 제약조건
무결성 제약조건 조회 12장. 데이터 무결성 제약조건
무결성 제약조건 조회 12장. 데이터 무결성 제약조건