[데이터베이스] Key란?

LDB·5일 전
0

CS 지식

목록 보기
7/7

데이터베이스 Key

데이터베이스에서 각 ROW를 구분하는 유일한 식별자를 의미한다, 일반적으로 키는 테이블에서 하나 이상의 열로 값은 유일하고 불변해야한다. 키는 데이터 정합성, 검색, 수정, 삭제등의 작업에서 중요한 역할을 한다.

데이터 정합성 : 데이터가 올바르게 유지되고 일관성 있게 유지되는 것을 의미한다, 데이터베이스 내의 모든 데이터가 정확하고 일관되게 유지되도록 하는 것을 목표로 한다.


사전지식

데이터베이스 Key에 대해 설명하기전에 유일성과 최소성에 대해 알아두면 도움이 많이 되기에 작성해본다.

유일성 : 하나의 키값으로 유일하게 식별할 수 있는 성질을 말한다. 예를들어 사람으로 치면 주민번호라고 할 수 있다. 주민번호는 중복이 날 수 없기에 유일성을 만족한다.

최소성 : 키를 구성하는 속성들 중에 가장 최소로 필요한 속성들로만 키를 구성하는 성질이다. 쉽게 말하면 키를 구성하고 있는 속성들이 정말로 Tuple(데이터베이스 Row 단위)을 구분할 수 있는지를 의미한다. 유일성의 예시와 비슷하게 주민번호 하나만으로 누구인지 알 수 있기에 주민번호는 최소성을 만족한다.


Key의 종류

데이터베이스 Key는 다음과 같이 존재한다.

키 종류설명
기본 키(Primary Key)테이블에서 각 ROW를 유일하게 식별 할 수 있는 Key
후보 키(Candidate Key)기본 키가 될 수 있는 Key
대체 키(Alternate Key)기본 키 대신 사용할 수 있는 유일한 식별 Key
슈퍼 키(Super Key)ROW를 유일하게 식별 가능한 하나 이상의 Key
외래 키(Foreign Key)다른 테이블의 기본 키로 사용되는 Key
복합 키(Composite Key)두 개 이상의 컬럼을 조합하여 만든 Key
유니크 키(Unique Key)중복된 값을 가질 수 없는 Key

기본 키(Primary Key)

기본키는 후보키 중에서 기본적으로 사용하기 위해 선택한 키로 유일성과 최소성을 모두 만족하기 때문에 Tuple 들을 구분하는데 효율적으로 사용할 수 있다.

기본 키의 특징
(후보 키 중에서 하나를 선택한다.)

  • 유일성, 최소성을 만족한다.
  • 빈 값 혹은 NULL이 들어가지 않는다.
  • 동일한 값이 중복되지 않는다.

기본키 선택기준

  • NULL값을 가질 수 있는 컬럼은 기본 키로 적합하지 않다.
  • 값이 자주 변경될 수 있는 가능성을 가진 컬럼은 기본 키로 적합하지 않다.

후보 키(Candidate Key)

후보키는 유일성과 최소성을 모두 만족한다. 따라서 속성 또는 속성들이 서로 다른 키 값을 가지면서 꼭 필요한 최소한의 속성으로 구성되어야 한다.

(이름, 나이 컬럼은 변경될 가능성이 있기에 후보 키로 선정할 수 없다.)

후보 키의 특징
(기본 키는 후보 키에서 선택하기에 기본 키의 특징과 후보 키의 특징은 동일하다.)

  • 유일성, 최소성을 만족한다.
  • 빈 값 혹은 NULL이 들어가지 않는다.
  • 동일한 값이 중복되지 않는다.

대체 키(Alternate Key)

대체 키는 후보 키중에 기본 키로 선택받지 못한 컬럼을 대체 키라고 한다. 기본 키의 선택기준을 만족하지 않은 키들을 의미한다, 대체 키는 '보조 키'라고도 불린다.

(테이블을 보면 일련번호만 기본키로 설정이 가능하다, 왜냐하면 기본 키 선정조건을 보면 변경될 가능성이 낮아야하는데 주민번호, 이메일 컬럼은 값이 변경될 가능성이 있기에 기본 키로 선택될 수 없었다.)


슈퍼 키(Super Key)

슈퍼키는 유일성만 만족하는 속성 또는 속성들의 집합이다.

슈퍼키는 유일성만 만족하기에 이미 유일성을 만족하는 일련번호, 주민번호, 이메일컬럼은 슈퍼 키의 자격을 가진다.

(Key들의 연관성)
현재까지 정리한 슈퍼 키, 대체 키, 기본 키, 후보 키를 그림으로 정리하자면 이렇게 나온다.


외래 키(Foreign Key)

외래 키는 관계를 맺고 있는 테이블의 기본 키를 외래키라고 부른다.

외래 키의 특징

  • 외래 키로 지정되면 참조 테이블에 없는 기본 키에 없는 값은 입력이 불가능하다. (참조 무결성 조건)

복합 키(Composite Key)

복합 키는 말 그대로 두 개 이상의 열을 조합하여 고유한 값을 나타내는 키를 의미한다. 하나의 컬럼만으로 유일성을 보장할 수 없을 때 사용한다.

(위의 테이블처럼 이름 + 나이 컬럼을 합쳐 유일성을 만족시킬 수 있다.)


유니크 키(Unique Key)

테이블에 존재하는 특정 컬럼의 값이 모두 다르도록 제약을 걸어두는 것을 말한다.

유니크 키의 특징

  • 테이블 내에 여러개의 유니크 키가 존재할 수 있다.
  • 중복이 허용되서는 안된다.
  • NULL값을 허용할 수는 있지만 NOT NULL제약 조건을 걸어두는 것이 보편적이다.

참고 게시글

https://adjh54.tistory.com/245

https://ggop-n.tistory.com/78

https://computer-science-student.tistory.com/194

https://velog.io/@letskuku/데이터베이스-키Key의-개념-및-종류

profile
가끔은 정신줄 놓고 멍 때리는 것도 필요하다.

0개의 댓글

관련 채용 정보