▣ SQL_조작연산_무결성 제약 조건, 도메인, 키, 기본키 엔티티 무결성, 외래키, 참조 무결성 제약조건
구분 | 설명 |
도메인 제약조건 도메인 무결성 (Domain Constraint) |
각 애트릐뷰트 값 -> 원자값 데이터형식을 통한 값 제한(정수형, 실수형, 문자형 등) 디폴트값 지정으로 범위 제한 NOT NULL 구문으로 값 존재 보장 |
키 제약조건 (Key constraint) |
애트리뷰트에 중복된 값 존재 불가 릴레이션을 정의할 때 기본키, UNIQUE 명시한 애트리뷰트 중복X |
기본키와 엔티티 무결성 제약조건 개체 무결성 (Entity Integrity Constraint) |
두 개 이상의 투플이 동일한 기본키 값X 기본키는 NULL값 및 중복값을 가질수 없음 |
외래키와 참조 무결성 제약조건 (Referential Integrity Constraint) |
외래키의 값 = 참조 릴레이션의 어떤 투플의 기본 값 외래키는 자신을 포함하고 있는 릴레이션의 기본키 or NULL |
■ 외래키 옵션
1) On Delete
Cascade : 부모 데이터 삭제 시 자식 데이터도 삭제
Set null : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Null로 업데이트
Set default : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Default 값으로 업데이트
Restrict : 자식 테이블이 참조하고 있을 경우, 데이터 삭제 불가
No Action : Restrict와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다.
2) On Update
Cascade : 부모 데이터 업데이트 시 자식 데이터도 업데이트
Set null : 부모 데이터 업데이트 시 자식 테이블의 참조 컬럼을 Null로 업데이트
Set default : 부모 데이터 업데이트 시 자식 테이블의 참조 컬럼을 Default 값으로 업데이트
Restrict : 자식 테이블이 참조하고 있을 경우, 업데이트 불가
No Action : Restrict와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다.
2019년 51번
정답 : 2번, 3번
하위테이블(R)의 튜플 삽입 연산은 참조 무결성 제약조건의 영향을 받으므로 1)번은 틀렸음
상위 테이블(S)의 튜플 삽입 연산은 참조 무결성 제약조건의 영향을 받지 않으므로 2)번은 옳은 설명임
UPDATE CASCADE는 상위 테이블(S)의 식별자 S.C가 갱신될 때 참조되는 외래키 R.C는
파급해서 변경됨으로 3)번은 옳은 설명임
DELETE SET NULL은 상위 테이블(S)가 삭제될 때 참조되는 R.C는 NULL값으로 변경됨으로 4)번은 틀렸음
2020년 55번
정답 : 4번
참조 무결성 제약조건으로 하위 테이블에 대한 삽입 규칙과 상위 테이블에 대한 삭제/갱신규칙이 있음
Students, Enrolled는 1:M관계로 하위 테이블 Enrolled에 외래키 제약조건을 생성해야 함
따라서, 보기 1, 2번은 Students 릴레이션 생성이므로 틀림
상위테이블의 데이터가 삭제될 때 하위 테이블의 참조 데이터도 함께 삭제해야 하므로, 테이블 Enrolled의 외래키(FK) sid에 대한 참조 무결성 옵션은 "DELETE CASCADE"를 부여해야 함
2021년 65번
정답 : 2번
상사직원이 삭제되면 ON DELETE SET NULL에 따라서 NULL 값으로 갱신된다.
2012년 65번
정답 : 1번, 2번, 3번
무결성 제약은 개체 무결성, 키 무결성, 도메인 무결성, 참조 무결성, 속성 무결성, 사용자의 무결성이 있음
정규화는 속성간의 종속관계 제거를 위한 릴레이션의 무손실 분해 과정을 의미하며 제약조건이 아님
2012년 72번
정답 : 2번
SELECT COUNT(직원번호) FROM 직원; -> 3건 조회됨
DELETE FROM 부서 WHERE 부서번호 = '20'; -> ON DELETE CASCASE에 의해 직원테이블에서 2건이 삭제됨
SELECT COUNT(직원번호) FROM 직원; -> 1건 조회됨, '10'영업과 1건만 남음
2012년 74번
정답 : 4번
SCHOOL 릴레이션 기본키 sid (단과대학)
FACULTY 릴레이션 기본키 fid (교수)
CENTER 릴레이션 기본키 : 센터이름, 단과대학
외래키 1 : 단과대학(SCHOOL의 sid참조)
외래키 2 : 센터장번호(FACULTY의 fid참조)
1) CENTER릴레이션의 기본키에 교수가 포함되어 있지 않으므로 교수는 여러개의 센터의 센터장이 될 수 있음
2) SCHOOL의 sid만 위배하지 않으면 되므로 2개 이상의 센터를 갖을 수 있음
3) PK가 센터이름, 단과대학의 복합키로 구성되어 있으므로 단과대학에 소속되지 않은 센터가 있을 수 없음
4) 센터이름으로만 PK가 구성되어 있지 않으므로 단과대학 이름만 다르다면 이름이 같은 센터가 존재할 수 있음
2013년 64번
정답 : 2번
'데이터베이스' 카테고리의 다른 글
데이터베이스 성능(튜닝)_비트맵 인덱스 (0) | 2021.10.01 |
---|---|
데이터마이닝_확률기반 기계학습_나이브 베이즈(Naïve Bayes Classification), 나이브 베이지안 분류 (2) | 2021.10.01 |
트랜잭션_로킹 기법의 로크(LOCK) 단위_오버헤드, 동시성 (0) | 2021.09.17 |
질의 최적화 기법_옵티마이저(Optimizer), CBO, RBO (0) | 2021.09.17 |
동적 해싱 방법_확장성 해싱(extendible hashing), 해시, hash, 충돌 해결 기법, 버킷, 모조키 (0) | 2021.09.17 |