식별자
한 개체(Entity)내에서 인스턴스를 유일하게 구분할 수 있는 단일 속성 또는 속성 그룹 입니다.
키 (Key)
검색이나 정렬 시 튜플(Tuple)을 구분할 수 있는 기준이 되는 속성(Attribute)를 말합니다.
후보키 (Candidate Key)
개체 내에서 각각의 인스턴스를 유일하게 식별할 수 있는 속성들의 부분 집합을 의미합니다. 따라서 기본 키로 사용할 수 있는 후보들을 후보키라고 합니다.
모든 릴레이션은 반드시 하나 이상의 후보 키를 가져야 합니다.
개체 내의 모든 인스턴스에 대해 유일성과 최소성을 만족시켜야 합니다.
- 유일성 : 키로 하나의 잇느턴스를 유일하게 식별할 수 있는 성질
- 최소성 : 꼭 필요한 속성으로만 구성하는 성질
example
학번 | 주민번호 | 이름 | 성별 |
- 학번
- 주민번호
학번 | 과목명 | 수강 횟수 |
- 학번 + 과목명
기본키 (PK, Primary Key)
후보키 중 선택한 메인 키입니다.
개체(Entity)에서 각 인스턴스를 유일하게 식별하는 데 가장 적합한 키입니다. 기본 키 설정 시 고려할 사항으로 업무적으로 활용도가 높을 것, 길이가 짧을 것 등이 있습니다.
기본 키는 null 값을 가질 수 없고, 동일한 값이 중복될 수 없습니다.
example
학번 | 주민번호 | 이름 | 성별 |
- 학번
학번 | 과목명 | 수강 횟수 |
- 학번 + 과목명
대체키 (보조키, Alternate Key)
후보키가 둘 이상일 때, 기본 키를 제외한 나머지 후보키들을 말합니다.
example
학번 | 주민번호 | 이름 | 성별 |
- 주민번호
복합키 (Composite Key)
하나의 속성으로 기본키가 될 수 없는 경우, 둘 이상의 속성을 묶어서 식별자로 정의한 키를 말합니다.
example
학번 | 과목명 | 수강 횟수 |
- 학번 + 과목명
슈퍼키 (Super Key)
각 튜플을 유일하게 식별할 수 있는, 유일성은 만족하지만 최소성은 만족하지 못하는 속성들의 부분집합
example
학번 | 주민번호 | 이름 | 성별 |
- 학번
- 주민번호
- 학번 + 이름
- 학번 + 주민번호
- 학번 + 주민번호 + 이름
- …
학번 | 과목명 | 수강 횟수 |
- 학번 + 과목명
- 학번 + 과목명 + 수강 횟수
외래키 (Foreign Key)
관계(Relation)을 맺고 있는 두 릴레이션(R1, R2) 중 한 릴레이션(R1)이 참조하고 있는 다른 릴레이션(R2)의 기본키와 같은 속성
example
[학생]
학번 | 주민번호 | 이름 | 성별 |
[수강]
학번 | 과목명 | 수강 횟수 |
- 수강 테이블의 학번 속성은 학생 테이블의 학번 속성을 참조하는 외래키
댓글