1. 키(Key)란?
테이블의 column 중에서 식별자로 이용 가능한 column
2. 유일성, 최소성, 무결성
- 유일성 : 하나의 키 값으로 row를 유일하게 찾아낼 수 있는 성질
- 최소성 : 키를 구성하는 column들 중 꼭 필요한 최소한의 column들로만 키를 구성하는 성질
- 무결성 : 데이터가 항상 정확한 값을 유지하는 성질
3. 키의 종류
1. 슈퍼키(Super Key)
- 테이블에서 row를 유일하게 식별할 수 있는 1개 이상의 column들의 집합
- 유일성을 만족시킨다.
예시)
- (학번)
- (학번, 이름)
- (학번, 이름, 과목)
- (주민등록번호)
- …
2. 후보키(Candidate Key)
- 테이블에서 row를 유일하게 식별할 수 있는 최소한의 column들의 집합
- 기본키로 사용할 수 있는 column
- 유일성과 최소성을 만족시킨다.
예시)
- (학번)
- (주민등록번호)
3. 기본키(Primary Key)
- 후보키 중에서 선택한 메인 키
- 테이블에서 row를 유일하게 식별할 수 있는 column
- Null 값이나 중복된 값을 가질 수 없다.
- 유일성과 최소성을 만족시킨다.
4. 대체키(Alternate Key) = 보조키
- 후보키가 2개 이상일 때, 기본키를 제외한 나머지 후보키들
5. 외래키(Foreign Key)
- 다른 테이블의 기본키를 참조하는 테이블의 키
- 외래키는 다른 테이블의 기본키를 참조하여 테이블 간의 관계를 표현한다.
- 무결성때문에 외래키 설정이 필요하다.
- 왼쪽 테이블에서 student_id는 기본키, 오른쪽 테이블에서는 외래키이다.
- 왼쪽 테이블에서 student_id 가 변경되었는데, 오른쪽 테이블의 student_id가 변경되지 않았다면 문제가 생긴다.
→ 이를 예방하기 위해 외래키가 존재한다.
6. 복합키(Composite Key)
- 테이블에서 row를 식별할 수 있는 2개 이상의 column들로 구성된 기본키
4. 관계형 데이터베이스 관계 유형
- 1:1 관계 : 한 테이블에서 1개의 레코드와 다른 테이블의 1개의 레코드가 연결되는 관계
- 1:N 관계 : 한 테이블에서 1개의 레코드와 다른 테이블의 2개 이상의 레코드가 연결되는 관계
- 고객 한 명이 여러 개의 상품을 주문할 수 있지만, 각 주문은 한 사람에게만 연결된다.
- N:M 관계 : 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연결되는 관계
- 고객 한 명이 여러 개의 상품을 주문할 수 있고, 상품 1개가 여러 명의 고객에게 주문될 수 있다.
- 고객-상품 테이블을 통해 어떤 고객이 몇 개의 상품을 주문했는지, 어떤 상품이 몇 명의 고객에게 주문되었는지 등을 확인할 수 있다.
면접 예상 질문
- 기본키에 대해 설명해주세요.
- 후보키에 대해 설명해주세요.
- 대체키에 대해 설명해주세요.
- 슈퍼키에 대해 설명해주세요.
- 외래키에 대해 설명해주세요.
- 복합키에 대해 설명해주세요.
- 1:N 관계에 대해 설명해주세요.
- N:M 관계에 대해 설명해주세요.
참고 URL
https://yozm.wishket.com/magazine/detail/1096/
https://velog.io/@00yubin00/DB-키의-종류-슈퍼키-후보키-기본키-대체키-외래키
https://omnic.tistory.com/entry/데이터베이스-키Key의-개념
https://velog.io/@kon6443/DB-기본키-외래키-후보키-복합키-개념-4x1bgz5w
https://conanmoon.medium.com/데이터과학-유망주의-매일-글쓰기-46일차-3aca5154f4cb
'데이터베이스' 카테고리의 다른 글
정규화 (0) | 2024.01.07 |
---|---|
SQL vs NoSQL (0) | 2023.12.24 |
JOIN (0) | 2023.12.16 |
데이터베이스 기초 (0) | 2023.11.18 |