반응형
<학생>
학번 | 주민등록번호 | 성명 |
150021 | 990806-1234567 | 홍길동 |
120022 | 976017-2345678 | 신민주 |
120023 | 990302-1323234 | 김형규 |
150024 | 940102-1234242 | 허진옥 |
180024 | 991020-2352152 | 임윤지 |
<수강>
학번 | 과목명 |
050021 | 영어 |
050021 | 컴퓨터 |
020022 | 컴퓨터 |
020022 | 수학 |
020023 | 미술 |
020024 | 음악 |
020025 | 수학 |
키란 DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.
슈퍼키 (Super Key)
- 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말한다.
- 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
- 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성(Unique)은 만족하지만, 최소성(Minimality)는 만족하지 못한다.
※ 예
* <학생> 릴레이션에서는 (학번, 주민등록번호), (학번, 주민등록번호, 성명) 등이 슈퍼키이다.
후보키 (Candidate Key)
- 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합이다.
- 후보키는 유일성과 최소성을 모두 만족한다.
※ 예
* 학번이나 주민등록번호는 유일성과 최소성을 만족하므로 후보키가 된다.
* 하지만 <수강> 릴레이션에서는 (학번, 과목명)으로 조합해야 유일성과 최소성을 만족한다.
* (학번, 과목명)과 같이 2개 이상의 필드를 조합하여 만든 키를 복합키(Composite Key)라고 한다.
기본키 (Primary Key)
- 기본키는 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다.
- 기본키는 후보키의 성질을 갖는다. 즉, 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다.
- 기본키는 NULL 값을 가질 수 없다.
※ 예
* <학생> 릴레이션에서는 후보키인 학번이나 주민등록번호 중에서 선택해서 기본키로 설정할 수 있고, <수강>에서는 (학번, 과목명)을 조합해서 기본키로 설정할 수 있다.
* 학번이 <학생>에서 기본키로 정의되면 이미 입력된 학번 ’050021’은 다른 튜플의 학번 속성 값으로 입력할 수 없다.
대체키 (Alternate Key)
- 대체키는 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미한다.
외래키 (Foreign Key)
- 외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.
- 외래키는 릴레이션 간의 관계를 표현할 때 사용한다.
- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인상에서 정의되었을 때의 속성 A를 외래키라고 한다.
- 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.
※ 예
* <수강>에서 학번은 <학생>의 기본키인 학번을 참조하고 있으므로 <수강>에서 학번은 외래키가 된다.
* <수강>의 학번 속성에는 <학생>의 학번 속성에 없는 값을 입력할 수 없다.
* <학생>과 <수강>은 학번 기준으로 관계가 설정된 것이다.
반응형
'Computer Science > Database' 카테고리의 다른 글
[Database] 트랜젝션 (0) | 2020.03.23 |
---|---|
[Database] RDB(relational database)에서 테이블간의 관계 (1:1, 1:N, N:M) (0) | 2019.12.15 |
[Database] ORM(Object-relational Mapping)이란? (0) | 2019.12.15 |
[Database] SQL - SELECT (0) | 2019.10.09 |
[Database] SQL - DDL (1) | 2019.10.09 |