[DataBase] Ch. 4 (스마트팩토리)

Kwaaaaan·2023년 3월 2일
2

DataBase(DB)

목록 보기
5/14

키(Key)

일반적으로 키는 무언가를 식별하는 역할을 합니다. 여기서 투플(가로로 한줄)을 식별할 때 사용하는 속성 혹은 속성의 집합을 관계 데이터베이스에서 키의 역할입니다. 또한, 릴레이션간 관계를 맺는데도 사용됩니다.

각각의 테이블에서 어떠한 키의 종류가 있는지 알아보도록 합시다.

키의 종류

키의 종류는 크게 6가지로 나뉘어집니다.

  1. 슈퍼키 (Super Key)
  2. 후보키 (Candidate Key)
    3. 기본키 (Primary Key)
  3. 대리키/인조키 (Artificial Key)
  4. 대체키 (Alternate Key)
    6. 외래키 (Foreign Key)

슈퍼 키 (Super Key)

투플을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합입니다. 다시말해 투플을 유일하게 식별할 수 있는 값은 모두 슈퍼키가 될 수 있습니다. 여기서 유일성(어떤 속성끼리 묶여도 중복값이 나오면 안됨)을 만족해야 합니다.

고객의 테이블에서 투플을 유일하게 식별할 수 있는 하나의 속성과 속성의 집합은, 고객번호와 포인트이고 이를 슈퍼키라고 합니다.
슈퍼키의 경우 [(고객번호), (고객번호, 이름), (고객번호, 포인트), (고객번호, 등급),
(전화번호), (전화번호, 이름), (전화번호, 고객번호), (전화번호, 이름, 포인트, 등급) 등]이 슈퍼키가 될 수 있습니다!

후보 키 (Candidate Key)

투플을 유일하게 식별할 수 있는 속성의 최소 집합으로, 슈퍼키에 비해 효율성이 향상됩니다.

아래의 주문 릴레이션에서 '고객 한명당 같은 상품은 최대 1개 구매 가능'이라는 조건이 있을 시,'고객번호, 상품번호'가 투플로 식별가능한 후보키가 됩니다. 이때 (고객번호, 상품번호)가 후보키가 되는 이유는 동일상품 최대 1개 구매 가능이라는 조건에 의해 가능합니다.

기본 키 (Primary Key, PK)

여러 후보키 중 하나를 선택하여 릴레이션을 대표하는 속성입니다. 만약 후보키가 하나인 경우에 그 후보키를 사용하고, 후보키가 여러 개라면, 릴레이션 특성을 반영하여 하나를 선택합니다. 이러한 기본키를 선정할 때에는 고려해야할 사항이 몇가지 있습니다.

기본키 선정시 고려사항

  1. 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 함
  2. NULL 값 허용 안됨
  3. 키 값의 변동이 일어나지 않아야 함(예를들어 전화번호는 언제든지 바뀔 수 있기에, PK가 될 수 없습니다!)
  4. 최대한 적은 수의 속성을 가진 것이어야 함
  5. 향후 키를 사용하는데 문제 발생 소지가 없어야 함(예를들어 주민번호를 PK로 사용하게 되는 경우는 적합한 경우는 아닙니다!)

아래 그림에서 릴레이션을 대표하는 속성은 기본키선정 고려사항을 참고하여 상품번호만이 PK가 될 수 있습니다!

실습으로 복습


위와같은 예제에 대한 정답은 밑에 있습니다.

.

.

.

.

.


결론

이번 시간에는 '키(Key)'에 대하여 알아보았습니다. 그 중에서도 슈퍼키, 후보키, 기본키에 대해 알아보았고, 이번시간에 배운 것 중 가장 중요한 개념은 '후보키'와 '기본키'에 대한 개념이라고 볼 수 있습니다. 여기서 한가지 중요한 점은 후보키가 있다면, 새로운 기본키를 만들어 내는것이 더욱 효율적인 DB를 꾸릴 수 있다는 것이었습니다.

'키(Key)'에 대한 개념들을 다시한번 숙지하시고 다음 챕터로 넘어가는것을 추천드리겠습니다!

profile
스마트팩토리 개발자(를 꿈꾸며)

0개의 댓글