<DB 기본 용어>
테이블(=릴레이션)
행(=투플)
열(=애트리뷰트)
인스턴스(=실제값)
key = 두 테이블을 서로 연관시킬 때 사용,
각 행을 고유하게 식별 할 수 있는 하나 이상 열들의 모임
Super Key : 어떤 열 끼리 묶던 중복값이 안나오고 구별만 할 수 있으면됨
Candidate Key : Super ky 들 중 최소한의 열로 구분 할 수 있는것
Primary Key : Candidate Key 들 중 최소성과 유일성을 만족하는 것
Alternate Key : Primary Key로 지정하고 남은 나머지 Candidate Key
Foreign Key : 자식 테이블이 부모 테이블의 Primary Key를 참조하여 foreignkey로 정함
무결성 : 데이터의 정확성 또는 유효성
<무결성 제약조건 4가지>
1. 각 열(애트리뷰트) 값이 반드시 원자값이어야함
2. Key 열에 중복된 값이 있으면 안됨 (일단 기본키가 아니게됨)
3. 엔티티 무결성 제약조건:
엔티티(데이터집합) 테이블의 Primary Key를 구성하는 어떤 열도 Null값을 가질 수 없음
(Candidate Key는 Null 가능)
4. 참조 무결성 제약조건 :
NOT NULL - NULL 허용금지
UNIQUE - 중복 금지
PRIMARY KEY - NULL금지,중복금지
FOREIGN KEY - 참조되는 테이블의 칼럼? 값이 존재하면 허용
CHECK - 데이터 값의 범위나 조건을 지정하여 설정한 값만 허용
DBMS에서는 외래키가 갱신되거나 참조된 기본키가 갱신되었을때 이 조건들을 지켜야함
ex) 자식의 삽입, 수정은 참조무결성(부모 기본키에 맞춰서) 지켜야함
자식의 삭제는 신경 X
부모의 삭제는 자식 외래키에 영향을 주기에 신경 써야함
부모의 삽입은 신경 X
<참조 무결성 제약조건을 만족시키기 위해 DBMS가 제공하는 옵션들>
1.제한(restricted) : 위배를 야기한 연산을 DBMS가 거절함
2.연쇄(cascade) : 부모 투플을 수정및 삭제 했을시, 참조하는 자식 투플도 연쇄적으로 같이함
*삭제시 제한이 디폴트, 수정시 연쇄가 디폴트
3.널값(nullify) : 부모 투플 삭제 했을때 이 투플을 참조하는 자식 투플 외래키에 널값 삽입
4.디폴트값 : 3에서 널값 대신 디폴트값 넣음