키(Key)란
- 데이터베이스에서 검색, 정렬 시 다른 튜플들과 구별할 수 있는 기준이 되는 Attribute(속성)입니다.
+ 튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다.
- 후보키 (Candidate Key)
- Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 (기본키로 사용할 수 있는 속성들)
- 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 한다.
- 유일성과 최소성 만족
- 유일성 : Key로 하나의 Tuple을 유일하게 식별할 수 있음
- 최소성 : 꼭 필요한 속성으로만 구성
- ex) 학번이나 주민번호
- 기본키 (Primary Key) = 주 키, 프라이머리 키, PK
- 후보키 중 선택한 주키(Main Key)
- Null 값을 가질 수 없음 (개체 무결성의 첫 번째 조건)
- 동일한 값이 중복될 수 없음 (개체 무결성의 두 번째 조건)
- ex) 학번이나 주민번호
- 대체키 (Alternate Key) = 보조키
- 후보키 중 기본키를 제외한 나머지 키
- ex) 학번을 기본키로 정의하면 주민번호는 대체키가 된다
- 슈퍼키 (Super Key)
- 유일성은 만족하지만, 최소성은 만족하지 못하는 키 -> 뭉쳤을 경우 유일성이 생기고, 흩어지지만 몇몇 속성들은 독단적으로 유일성 있는 키로 사용할 수 없음
- ex) 학번 + 주민번호 + 성명으로 슈퍼키 구성 -> 성명은 단독적으로 사용 못함
- 외래키 (Foreign Key)
- 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는 중요한 도구이다
- 외래키로 지정 시 참조 테이블의 기본키에 없는 값은 입력할 수 없다 (참조 무결성 조건)
반응형
'cs지식 > Database' 카테고리의 다른 글
[ Database ] SQL과 NoSQL의 차이점 (0) | 2021.04.15 |
---|---|
[ Database ] 조인(JOIN)의 종류 - INNER, OUTER, SELF (0) | 2021.04.15 |