Skip to content

Latest commit

 

History

History
164 lines (74 loc) · 5.85 KB

키(Key) 정리.md

File metadata and controls

164 lines (74 loc) · 5.85 KB

키(Key) 정리

키(key) 란?

  • 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트의 모임
  • 특정 튜플을 검색하거나, 다른 튜플들과 연관시킬 수 있도록 사용하는 목적

수퍼 키(super key) VS 후보 키(candidate key), 복합 키(composite key)

  • 수퍼키
    • 특정 튜플을 고유하게 식별하는 하나의 애트리뷰트 or 애트리뷰트의 집합
    • 키의 조건이 만족되면서 최소성은 만족되지 않아도 됨
  • 후보키
    • 각 튜플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임
    • 키의 조건와 최소성이 만족되야함
  • 복합키
    • 두 개 이상의 애트리뷰트로 구성되는 후보 키
    • 후보키의 특성을 따름

키정리-1

(신용카드번호), (주민등록번호) 애트리뷰트는 하나만으로 튜플을 고유식별 할 수 있기 때문에 수퍼키, 후보 키 모두 가능

하지만 (신용카드번호, 이름) 과 같은 애트리뷰트는 최소성에 의하여 수퍼키는 될 수 있지만, 후보키는 될 수 없음

왜냐하면 (신용카드번호) 애트리뷰트만 있어도 고유식별을 할 수 있기 때문이다.

키정리-2

그렇다고 후보키가 하나만의 애트리뷰트로 구성되는 것만은 아니다. 위의 릴레이션에서 (학번), (과목번호),(학점)

모두 중복이 되어 키가 될 수 없다 그렇기 때문에 (학번, 과목번호)와 같이 두 개 이상의 애트리뷰트가 있어야 후보키, 즉 복합키가 된다.

기본 키(primary key), 대리 키(surrogate key) VS 대체 키(alternate key)

  • 기본키

    • 한 릴레이션에 후보 키가 두 개 이상 있으면 하나를 기본 키로 선정한다.

    • 모든 튜플을 고유하게 식별해야하므로, null값이나 중복된 값을 가질 수 없다.

    • 기본 키는 자연스러운 키를 선정하는 것이 좋다.

      위 신용카드 회사 고객 릴레이션에서 (신용카드번호), (주민등록번호) 가 후보키 였을 때

      (신용카드번호) 를 기본키로 선정하는 것이 더 자연스럽다.

  • 대리키

    • 자연스러운 기본 키를 찾을 수 없을 때, 레코드 번호와 같이 릴레이션에 애트리뷰트를 추가한 키
    • 기본키를 이용한 수정, 삭제, 외래키 참조에만 효율적이다
      • 자연 키를 대체하여 성능을 향상시킨다.
      • 중요한 자료를 대체하여 보안상 이득을 얻는다.

    키정리-6

  • 대체 키

    • 기본 키로 선정되지 않는 후보 키

      위 신용카드 회사 고객 릴레이션에서 (신용카드번호), (주민등록번호) 중 (신용카드번호)가 기본키가 된다면 (주민등록번호)는 대체 키가 된다.

외래 키(foreign key)

  • 외래 키란?

    • 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트
    • 관계형 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해 사용
    • 외래 키 이름은 대응되는 기본 키와 다른 이름을 가질 수 있음 하지만 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 한다.
  • 외래 키의 유형

    1. 다른 릴레이션의 기본 키를 참조하는 외래 키

      키정리-3

      직원 릴레이션의 외래 키 (소속 부서 번호)는 부서 릴레이션의 기본 키인 (부서 번호)를 참조하고 있다.

    2. 자체 릴레이션의 기본 키를 참조하는 외래 키

    키정리-4

    ​ 직원 릴레이션의 외래 키 (직속 상관)은 자체 릴레이션의 기본 키인 (직원 번호)를 참조하고 있다.

    ​ 직속상관이 없는 경우 NULL로 표기

    1. 기본 키의 구성요소가 되는 외래 키

      키정리-5

      수강 릴레이션의 기본 키는 두 개의 외래키 (학번, 과목번호)로 이루어짐. 즉 수강 릴레이션의 두 개의 외래키는 수강 릴레이션의 기본 키의 구성요소도 된다.

    자연 키(Natural Key) VS 인조 키(Artificial Key)

    • 자연 키
      • 기본키만을 위한 데이터가 아니라 비즈니스 모델에서 자연스레 나오는 속성으로 기본키를 정하는 것 ex) email, ID 등등
    • 인조 키
      • 비즈니스 모델과는 달리 키를 위한 데이터 ex) Auto Increment 등등

    한 줄 요약

    수퍼 키

    • 최소성을 만족하지 않고 튜플을 고유식별 할 수 있는 애트리뷰트 or 애트리뷰트 집합

    후보 키

    • 최소성을 만족하고 튜플을 고유식별 할 수 있는 애트리뷰트 or 애트리뷰트 집합

    복합 키

    • 두 개 이상의 애트리뷰트로 모여진 후보키

    기본 키

    • 릴레이션의 후보키 중 하나의 자연스러운 애트리뷰트를 선정하여 튜플을 고유식별 할 수 있는 키

    대리 키

    • 릴레이션에 고유식별을 할 수 있는 기본키의 재목이 없을 때 임의적으로 만들어 내는 키(거의 사용X)

    대체 키

    • 기본 키가 되지 못한 후보 키

    외래 키

    • 릴레이션의 애트리뷰트를 참조하는 키로써 릴레이션 간의 관계를 나타낼 때 사용하는 키