쏭의 개발 블로그

[DB] Key 본문

DB

[DB] Key

songu1 2023. 1. 30. 17:55

1. key란?

key attribute (키 속성)

  • entity type에 해당하는 entity들을 유일하게 식별해 낼 수 있는 속성
    • 같은 속성을 가지는 entity들의 그룹 유형
    • 데이터베이스 스키마 ex) EMPLOYEE, COMPANY1개의 entity type에 1개 이상의 key attribute를 가질 수 있음

💡 Entity type이란?

  • - 같은 속성을 가지는 entity들의 그룹 유형 - 데이터베이스 스키마
  • ex) EMPLOYEE, COMPANY

key

  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성

 

2. Key의 종류

(1) Super Key :슈퍼키

  • 유일성을 만족하는 속성
    • 유일성 : key 하나로 튜플을 유일하게 식별 가능
  • ex) {학번+이름}, {주민등록번호+학번}, 학번
    • 어떤 속성끼리 묶던 중복값이 안나오고 서로 구별만 할 수 있으면 됨
  • super key에서 하나라도 제거하면 super key가 아닌 attribute의 집합이 됨
  • ex) {학번+이름}에서 학번이 제거되면 super key가 아님

💡 Key 는 minimal super key이다.

  • 모든 key는 super key이다 (O)
  • 모든 super key는 key이다 (X)

 

2) Candidate Key :후보키

  • 유일성최소성을 만족하는키
    • 유일성 : key 하나로 튜플을 유일하게 식별 가능
    • 최소성 : 꼭 필요 속성으로만 구성
  • 기본키가 될 수 있는 후보
  • 모든 릴레이션은 반드시 1개 이상의 후보키를 가져야 함
  • ex) {학번+이름}은 최소성을 만족하지 못하므로 후보키X

3) Primary Key :기본키

  • = key
  • 후보키(Candidate Key) 중 선택된 1개의 키로 최소성과 유일성을 만족하는 속성
  • 기본키는 오직 1개만 지정 가능
  • NULL값 불가능, 중복값 불가
  • 후보키(Candidate Key) 중에서 사이즈(attribute 수)가 가장 작은 키
  • 특징
    1. 릴레이션에서 각 튜플을 유일하게 식별해냄
    2. 다른 튜플에서 튜플을 참조 (참조하는 릴레이션의 foreign key)

4) Surrogate Key :대체키

  • 후보키(Candidate Key) 중 기본키(Primary Key)로 선택되지 않은 키
  • 오로지 식별을 하기위한 key
  • 기본키가 없어지게 되면 없어진 기본키를 대체 가능

5) Foreign Key :외래키

  • 어떤 테이블(Relation)의 기본키(Primary Key)를 참조하는 속성
    • 참조되는 테이블(A) 생성 후 참조하는 테이블(B) 생성
    • A의 primary key를 참조하여 B의 foreign key

'DB' 카테고리의 다른 글

[DB] 정규화  (0) 2023.01.31
[DB] 이상현상(Anomaly)  (0) 2023.01.31
[DB] SQL vs NoSQL  (0) 2023.01.31
[DB] Index 색인  (1) 2023.01.30
[DB] 데이터베이스 개념  (0) 2023.01.30