데이터베이스 키: 두 판 사이의 차이
IT위키
(외부 키 성질에 대한 잘못된 서술 수정) |
|||
(사용자 3명의 중간 판 4개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
[[분류:데이터베이스]][[분류:정보처리기사]] | [[분류:데이터베이스]][[분류:정보처리기사]] | ||
;Database Key | ;Database Key | ||
;릴레이션의 튜플을 식별하기 위한 속성의 집합 | |||
== | == 특징 == | ||
** | * 유일성: 유일한 값을 가져야 한다. | ||
** | * 최소성: 최소한의 값으로 식별할 수 있어야 한다. | ||
* 불변성: 변하는 값이어선 안된다. | |||
* 존재성: 반드시 존재해야 한다. 누구한텐 있고 누구한테는 없어선 안된다. | |||
== | == 종류 == | ||
* | === 슈퍼 키(Super Key) === | ||
* | * 어떤 릴레이션의 어떠한 튜플들도 같은 값을 가지지 않는 속성, 또는 속성들의 조합 | ||
* 유일성 O / 최소성<ref>최소성은 단순히 집합의 개수를 얘기하는 것이 아니라, 속성 집합에서 하나의 속성을 제거하는 경우 더 이상 해당 속성 집합이 릴레이션의 튜플을 식별할 수 없는 것을 말한다</ref> X | |||
== | === 후보 키(Candidate Key) === | ||
* | * Tuple을 유일하게 식별하기 위해 사용되는 속성들의 부분집합 | ||
* 유일성 O / 최소성 O | |||
== | === [[데이터베이스 기본 키|기본 키(Primary Key)]] === | ||
* | * 후보키 중 선정된 Key | ||
* 중복된 값 X / Not Null / 유일성 O / 최소성 O | |||
=== 대체 키(Alternate Key) === | |||
* 후보 키 중 선정된 기본 키를 뺀 나머지 키들 | |||
* 유일성 O / 최소성 O | |||
=== 외부 키(Foreign Key)=== | |||
* 다른 릴레이션의 Primary Key를 참조하는 속성 | |||
* 중복 여부에 따라 | |||
** 중복인 경우, 일대다 관계(One-to-Many Relationship) | |||
** 중복이 아닌 경우, 일대일 관계(One-to-One relationship) | |||
* Not Null 여부에 따라 | |||
** Not Null인 경우, 필수 관계(Mandatory Relationship) | |||
** Nullable인 경우, 선택 관계(Optional Relationship) | |||
== 예시 == | |||
{| class="wikitable" | |||
!사번 | |||
!이름 | |||
!나이 | |||
!이메일 | |||
|- | |||
|100 | |||
|김씨 | |||
|30 | |||
|- | |||
|200 | |||
|김씨 | |||
|41 | |||
|- | |||
|300 | |||
|이씨 | |||
|38 | |||
|- | |||
|400 | |||
|박씨 | |||
|29 | |||
|} | |||
=== 슈퍼 키 목록 === | |||
릴레이션의 튜플을 식별할 수 있는 모든 속성 집합 | |||
* (사번) | |||
* (사번, 이름) | |||
* (사번, 이름, 나이) | |||
* (사번, 이름, 나이, 이메일) | |||
* (이름, 나이) | |||
* (이름, 나이, 이메일) | |||
* (이메일) | |||
=== 후보 키 목록 === | |||
슈퍼 키 중 최소성을 만족하는 속성 집합 | |||
* (사번) | |||
* (이름, 나이) | |||
* (이메일) | |||
=== 기본 키와 대체 키 === | |||
설계자의 판단에 따라 구분 | |||
* 기본 키: (사번) | |||
* 대체 키: (이름, 나이), (이메일) |
2023년 10월 23일 (월) 10:24 기준 최신판
- Database Key
- 릴레이션의 튜플을 식별하기 위한 속성의 집합
특징[편집 | 원본 편집]
- 유일성: 유일한 값을 가져야 한다.
- 최소성: 최소한의 값으로 식별할 수 있어야 한다.
- 불변성: 변하는 값이어선 안된다.
- 존재성: 반드시 존재해야 한다. 누구한텐 있고 누구한테는 없어선 안된다.
종류[편집 | 원본 편집]
슈퍼 키(Super Key)[편집 | 원본 편집]
- 어떤 릴레이션의 어떠한 튜플들도 같은 값을 가지지 않는 속성, 또는 속성들의 조합
- 유일성 O / 최소성[1] X
후보 키(Candidate Key)[편집 | 원본 편집]
- Tuple을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성 O / 최소성 O
기본 키(Primary Key)[편집 | 원본 편집]
- 후보키 중 선정된 Key
- 중복된 값 X / Not Null / 유일성 O / 최소성 O
대체 키(Alternate Key)[편집 | 원본 편집]
- 후보 키 중 선정된 기본 키를 뺀 나머지 키들
- 유일성 O / 최소성 O
외부 키(Foreign Key)[편집 | 원본 편집]
- 다른 릴레이션의 Primary Key를 참조하는 속성
- 중복 여부에 따라
- 중복인 경우, 일대다 관계(One-to-Many Relationship)
- 중복이 아닌 경우, 일대일 관계(One-to-One relationship)
- Not Null 여부에 따라
- Not Null인 경우, 필수 관계(Mandatory Relationship)
- Nullable인 경우, 선택 관계(Optional Relationship)
예시[편집 | 원본 편집]
사번 | 이름 | 나이 | 이메일 |
---|---|---|---|
100 | 김씨 | 30 | [email protected] |
200 | 김씨 | 41 | [email protected] |
300 | 이씨 | 38 | [email protected] |
400 | 박씨 | 29 | [email protected] |
슈퍼 키 목록[편집 | 원본 편집]
릴레이션의 튜플을 식별할 수 있는 모든 속성 집합
- (사번)
- (사번, 이름)
- (사번, 이름, 나이)
- (사번, 이름, 나이, 이메일)
- (이름, 나이)
- (이름, 나이, 이메일)
- (이메일)
후보 키 목록[편집 | 원본 편집]
슈퍼 키 중 최소성을 만족하는 속성 집합
- (사번)
- (이름, 나이)
- (이메일)
기본 키와 대체 키[편집 | 원본 편집]
설계자의 판단에 따라 구분
- 기본 키: (사번)
- 대체 키: (이름, 나이), (이메일)
- ↑ 최소성은 단순히 집합의 개수를 얘기하는 것이 아니라, 속성 집합에서 하나의 속성을 제거하는 경우 더 이상 해당 속성 집합이 릴레이션의 튜플을 식별할 수 없는 것을 말한다