컴퓨터(Computer Science)/데이터베이스, DB, DataBase

Key, 키

게임이 더 좋아 2022. 12. 1. 23:30
반응형
728x170

Key :  DB에서 조건을 만족하는 튜플을 찾거나 정렬의 기준이 되는 속성(Attribute)

튜플 : 릴레이션을 구성하는 각각의 행, 속성의 모임

 

 

종류

 

 


 

 

·        슈퍼키(Super Key)

  • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
  • 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 중복되는 값은 나타나지 않음
  • 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있음
  • 최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함

릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못함

=> 위의 표를 보면 Student_ID 만으로도 하나의 튜플을 확정 지을 수 있고 SSN으로도 확정지을 수 있음

=>  하지만 최소성을 만족하지 않아도 되므로 SuperKey의 조합이 다른 SuperKey를 만들 수 있음

 

 

·        후보키(Candidate Key)

  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 유일성과 최소성을 모두 만족함

=> 슈퍼키는 후보키를 포함하는 개념

=> 슈퍼키에서 유일성을 만족하는 최소의 속성만을 남기면 후보키가 됨

 

 

 

 

·        기본키(Primary Key)

  • 후보키 중에 특별히 선정된 키
  • 릴레이션을 대표하는 키
  • NULL값을 가질 수 없음

=> 후보 키 중에 NULL 값이 없는 키 중에서 사용자가 정한 키

 

·        대체키(Alternate Key 또는 Surrogate Key)

.

  • 후보키 중에서 선정된 기본키를 제외한 나머지 후보키
  • 보조키라고도 부름

=> 대체키를 Alternate Key라고 쓰는 사람도, Surrogate Key라고 쓰는 사람도 있는 것을 보아 mysql, oracle에서 각각 단어를 다르게 쓴 것이 아닌가 추정

 

 

 


 

 

 

 

·        외래키(Foreign Key)

  • 다른 릴레이션의 기본키를 참조하는 속성 또는 그 집합
  • 릴레이션 간의 관계를 표현할 때 사용
  • 참조 릴레이션의 기본키와 동일한 키 속성을 가짐

 

=> 어떤 테이블의 외래 키는 어떤 테이블의 기본 키가 됨

 

 

 


 

·        자연키(Natural Key)

  • 비즈니스 모델에서 자연스레 나오는 속성으로 구성된 기본키(Primary Key)
  • Artificial Key에 대조되는 개념

 

·        대리키(Surrogate Key 또는 Artifical Key)

  • 자연키가 아님, Natural Key에 대조되는 개념
  • 대리키는 특수하게 테이블에 기본키(Primary Key)로 추가된 키
  • DBA가 인조적으로 부여한 기본키
  • MySQL에서 Auto Increment가 인조키의 역할을 함

 

 

 


 

 

 

 

Primary Key vs Unique Key

  Primary Key Unique Key
개념 table에서 record의 식별자로 가장 적합하다고 판단된 후보키 테이블에서 최소성과 유일성을 만족하는 키
생성 테이블에 한 개만 생성 가능 테이블에 여러 개 생성 가능
NULL NULL 입력 불가 NULL 입력 허용
clustered 기본적으로 clustered index로 생성 기본적으로 non-clustered index로 생성

 

 

 


 

참고 링크

https://www.learncomputerscienceonline.com/database-keys/

 

Key :  DB에서 조건을 만족하는 튜플을 찾거나 정렬의 기준이 되는 속성(Attribute)

튜플 : 릴레이션을 구성하는 각각의 행, 속성의 모임

 

 

종류

 

 

 


 

 

 

·        슈퍼키(Super Key)

 

=> 위의 표를 보면 Student_ID 만으로도 하나의 튜플을 확정 지을 수 있고 SSN으로도 확정지을 수 있음

=>  하지만 최소성을 만족하지 않아도 되므로 SuperKey의 조합이 다른 SuperKey를 만들 수 있음

 

 

 

·        후보키(Candidate Key)

 

=> 슈퍼키는 후보키를 포함하는 개념

=> 슈퍼키에서 유일성을 만족하는 최소의 속성만을 남기면 후보키가 됨

 

 

 

 

 

·        기본키(Primary Key)

=> 후보 키 중에 NULL 값이 없는 키 중에서 사용자가 정한 키

 

·        대체키(Alternate Key 또는 Surrogate Key)

.

 

 

 

 


 

 

 

 

 

·        외래키(Foreign Key)

=> 어떤 테이블의 외래 키는 어떤 테이블의 기본 키가 됨

 

 

 


 

 

·        자연키(Natural Key)

 

 

·        대리키(Surrogate Key 또는 Artifical Key)

 

 

 

 


 

 

 

 

Primary Key vs Unique Key

  Primary Key Unique Key
개념 table에서 record의 식별자로 가장 적합하다고 판단된 후보키 테이블에서 최소성과 유일성을 만족하는 키
생성 테이블에 한 개만 생성 가능 테이블에 여러 개 생성 가능
NULL NULL 입력 불가 NULL 입력 허용
clustered 기본적으로 clustered index로 생성 기본적으로 non-clustered index로 생성

 

 

 


 

참고 링크

https://www.learncomputerscienceonline.com/database-keys/

 

 

반응형
그리드형