FOREIGN KEY 제약 조건 - 참조 무결성, 주종관계 표, 외래키 참조 도식도
CODEDRAGON ㆍDevelopment/Database
반응형
참조 무결성
- 테이블 사이의 관계에서 발생하는 개념
- 참조의 무결성은 두 테이블 사이의 주종 관계에 의해서 결정됩니다.
주종관계 표
- 사원은 회사 내에 존재하는 부서에 소속되어 있어야 합니다.
- 주체관계가 애매모호한 경우 어느 테이블의 데이터가 먼저 정의되어야 하는가에 따라 주종관계가 결정됩니다.
- 회사를 설립한 후 어떤 부서를 구성하여 운영할지 정한 후에 그 부서에서 일할 사원들을 뽑아야 소속이란 관계가 성립됩니다.
부모테이블 | 자식 테이블 |
주체가 되는 테이블 | 종속이 되는 테이블 |
먼저 정의되어야 하는 테이블 | 나중에 정의되어야 하는 테이블 |
부서 | 사원 |
외래키 참조 도식도
- 외래키가 되기 위한 컬럼은 부모테이블의 기본키(PRIMARY KEY)나 유일키(UNIQUE KEY)로 설정되어 있어야 합니다.
- 부모테이블인 부서테이블(dept)의 부서번호(deptno)는 기본키(PRIMARY KEY)로 설정되어 있고, 이를 참조하기 위해서 자식 테이블인 사원테이블(emp)은 부서번호(deptno)에 외래키(FOREIGN KEY)제약조건을 설정해 놓고 있습니다.
- 자식테이블(emp)의 참조무결성을 위해 특정 컬럼에 외래키를 설정하였다면, 새로운 데이터가 추가될 때마다 부모테이블(dept)의 부모키로 설정된 컬럼을 검사합니다.
- 검사 후 부모키로 설정된 컬럼에 존재하는 값만 추가하고 존재하지 않는 값은 추가하지 않으므로써 자식 테이블이 부모 테이블을 참조하는데 아무런 문제가 없도록 하고 있습니다.
'Development > Database' 카테고리의 다른 글
제약 조건 비활성화 - 부모테이블의 데이터 삭제방법, 제약 조건 비활성화/활성화, CASCADE 옵션 (0) | 2016.11.25 |
---|---|
WITH CHECK OPTION / WITH READ ONLY 옵션 (0) | 2016.11.25 |
DEFAULT 제약 조건 (0) | 2016.11.25 |
CHECK 제약 조건 (0) | 2016.11.25 |
컬럼레벨로 제약조건 설정하기 - 사용자 제약조건명 명명하기, 오라클에 의해서 부여된 제약조건 명, 컬럼레벨로 제약조건명을 명시적으로 부여한 제약조건 명 (0) | 2016.11.25 |