본문 바로가기
👨‍💻Computer Science/데이터베이스

[Database] 02 - 3 릴레이션의 키

by 코푸는 개발자 2021. 9. 14.
728x90

릴레이션의 키

  • 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임
  • 수퍼 키(superkey), 후보 키(candidate key), 기본 키(primary key), 대체 키(alternate key), 외래 키(foreign key)

수퍼 키 (superkey)

  • 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합
  • 예: 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호)
  • 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음
  • 필요하지 않은 애트리뷰트를 포함할 수 있음

후보 키 (candidate key)

  • 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임 (예: (신용카드번호, 주소)는 신용카드 회사의 고객 릴레이션의 후보 키가 아니지만 (신용카드번호)는 후보 키)
  • 모든 릴레이션에는 최소한 한 개 이상의 후보 키가 있음
  • 후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며 이런 경우에 복합 키(composite key)라고 부름(예: (학번, 과목번호)가 후보 키)
  • 혼자서 후보키가 안되는 두개 이상의 애트리뷰트를 모아 후보키를 만들 수 있다.

수강 릴레이션

기본 키 (primary key)

  • 한 릴레이션에 후보 키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정함(예: 신용카드 회사의 고객 릴레이션에서 신용카드번호와 주민등록번호가 후보 키가 될 수 있음. 이 중에서 신용카드 번호를 기본 키로 선정)
  • 자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있음(항상 고유한 값을 가져야한다, 항상 NULL 값을 갖지 않아야한다, 값이 변경되지 않아야한다, 가능하면 가는 문자열, 짧은 정수가 좋다, 복합키는 피하는 것이 좋다.)

대체 키 (alternate key)

  • 기본 키가 아닌 후보 키(예: 신용카드 회사의 고객 릴레이션에서 신용카드번호를 기본 키로 선정하면 주민등록번호는 대체 키)

외래 키 (foreign key)

  • 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트
  • 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용됨
  • 외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 함
  • 자신이 속한 릴레이션의 기본 키의 구성요소가 되거나 되지 않을 수 있음

키들의 포함 관계

외래 키의 유형

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

다른 릴레이션을 참조하는 외래 키

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

차제 릴레이션을 참조하는 외래 키

  • 기본 키의 구성요소가 되는 외래 키(외래 키들이 모여서 기본키가 되는 것)

키의 구성요소가 되는 외래 키

728x90

댓글