[DB] 키(KEY) 종류 및 정리

giggle·2023년 8월 12일
0
post-custom-banner

DB에서 키(KEY)란 무엇일까?

DB에서 키는 DB 내에서 데이터 레코드를 식별하거나 데이터 간의 관계를 설정하는 데 사용되는 속성 또는 컬럼의 집합을 말합니다. 키는 데이터의 고유성을 보장하고 데이터 간의 관계를 구축하는 데 중요한 역할을 합니다.

데이터 레코드(record) : 테이블 내에 저장된 하나의 행(row)입니다. 즉, 테이블의 각 행이나 엔티티가 가지는 실제 데이터 값들을 의미합니다.

유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질
최소성 : 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질

키(KEY) 종류

슈퍼키(Super Key)

유일성은 만족하지만 최소성을 만족하지 못하는 키

  • 슈퍼키는 한 테이블 내에서 레코드를 고유하게 식별할 수 있는 하나 이상의 컬럼들의 조합입니다.
  • 프라이머리 키, 유니크 키, 보조 키 등 모든 종류의 키가 슈퍼 키의 부분집합입니다.
  • 슈퍼 키는 테이블 내에서 레코드를 고유하게 식별하기 위한 모든 가능한 조합을 포함합니다.

후보키(Candidate Key)

유일성최소성을 만족하는 키

  • 후보키는 슈퍼키 중에서 최소성을 만족하는 키로, 레코드를 고유하게 식별하는 최소한의 컬럼으로 구성됩니다.
  • 기본키가 될 수 있는 후보이기 때문에 후보키라고 불립니다. 예를 들면, 주민등록번호, 학번 등이 있습니다.

기본키(Primary Key)

후보 키에서 선택된 키

  • 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성입니다.
  • 기본키는 절대 null값을 가질 수 없으며, 중복된 값 또한, 가질 수 없습니다.

대체키(Alternate Key)

후보키 중에 기본키로 선택되지 않은 키 = 보조키

  • 후보키가 두개 이상일 경우 그 중에서 어느 하나를 기본키로 지정하고 남은 후보키들을 대체키라합니다.
  • 즉, 테이블의 기본키가 될 수 있는 후보키와 대비되는 개념입니다.

외래키(Foreign Key)

어떤 테이블(Relation) 간의 기본키(Primary key)를 참조하는 속성입니다.

  • 한 테이블이 다른 테이블의 기본키를 참조해서 테이블 간의 관계를 만드는 것을 의미합니다.
  • 어떤 테이블의 식별자를 끌어와서 그것에 대한 정보를 또 추가한다고 이해할 수 있습니다.

외래키 과정

  • 참조 될 테이블(A)이 먼저 만들어지고 참조하는 테이블(B)에 값이 입력되어야 한다.
  • 이때, 참조될(A) 열의 값은 참조될(A) 테이블에서 기본키(Primary Key)로 설정되어 있어야한다.
  • 외래키는 참조되는 테이블의 기본키와 동일한 키 속성을 가진다.
  • 참조되는 부모테이블이 먼저 생성된 뒤 데이터를 넣고, 참조하는 자식 테이블이 다음에 생겨야된다.
  • 부모 테이블 먼저 삭제될 수 없다. 왜냐하면 부모테이블을 참조하는데 부모테이블이 삭제되면 자식테이블은 참조하는 것이 없어지기 때문에 외래키 오류가 생긴다. 따라서 외래키 관계에서 부모테이블을 삭제하려면 자식테이블 먼저 삭제한 후 부모테이블을 삭제해야한다.

참고


피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.
post-custom-banner

0개의 댓글