KEY
학번 | 전공 | 이름 | 전화번호 | 학년 | 주소 |
1 | 전자 | 신짱구 | 010 | 3 | 부산 |
2 | 전기 | 김철수 | 011 | 2 | 경기 |
3 | 컴퓨터 | 이훈이 | 016 | 4 | 서울 |
기본키 (Primary Key) : 후보키 중에서 기본적으로 사용하기 위해 선택하는 키
ex) 학번(or 전화번호)
- Null 값은 허용하지 않는다
- 구분할 수 있는 고유값을 가져야 한다.
- 최대한 적은 수의 속성을 가진 것 이어야 한다.
- 릴레이션 스키마를 표현할 때 밑줄을 그어 표현한다 ex)학생(학번,전공,이름,전화번호,학년,주소)
후보키 (Candidate Key) : 유일성과 최소성을 만족하는 속성의 최소 집합
ex) 학번, 전화번호
슈퍼키 (Super Key) : 유일성을 만족하는 속성(속성들의 집합)
ex) 학번, 전화번호, 학번+이름, 학번+전공, 전화번호+이름, 전화번호+학년, 전화번호+학년+주소, 학번+전화번호+전공+학년 등..
대체키 (Alternate Key) : 기본키로 선택되지 못한 후보키
ex) 전화번호(or 학번)
외래키 (Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성(속성들의 집합)
- 릴레이션 간의 관계를 표현한다.
- 다른 릴레이션의 기본키를 참조한다.
- 참조하고 참조되는 양쪽의 도메인은 서로 같아야 한다.
- Null 값, 중복 등이 허용 된다.
- 외래키가 기본키의 일부가 될 수 있다.
- 참조되는 값이 변경되면 참조하는 값도 변경된다.
- 자기가 자신을 참조할 수 있다.
무결성 제약 조건
도메인 무결성 제약 조건
:릴레이션 내의 tuple들이 각 속성의 도메인에 지정된 값만을 가져야 한다.
개체 무결성 제약 조건
- 기본키는 Null 값을 가져선 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다.
- 기본키 값이 같으면 삽입이 금지된다.
- 특별한 확인이 필요하지 않으며 즉시 삭제를 수행한다.
- 기본키 값이 같거나 NULL이면 수정이 금지된다.
참조 무결성 제약 조건
- 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며(데이터 일관성 유지), 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.
- 삭제 시 즉시 작업을 중단하고 자식 릴레이션의 관련 투플을 삭제한 후 초기에 설정된 어떤 값으로 변경하거나 Null 로 변경해야 한다.
- 부모 릴레이션에서는 바로 삽입이 가능하지만, 자식 릴레이션은 참조되는 외래키 값이 없으면 진행되지 않는다.
- 자식 릴레이션은 바로 삭제가 가능하지만, 부모 릴레이션은 자식 릴레이션이 참조하고 있기 때문에 삭제를 금하거나, 다른 추가 작업이 필요하다.
- 수정은 삭제와 삽입 명령이 연속해서 수행한다.