쩨리쩨리 블로그00yubin00.log 블로그박연호의 개발 블로그를 참고하였음.

요약 이미지:

img

슈퍼키(Super Key)

  • 레코드를 유일하게 식별해낼 수 있는 속성들의 집합.

  • 한 개의 테이블은 여러 개의 슈퍼키를 가질 수 있음.


후보키(Candidate Key)

  • 슈퍼키(SK)에서 레코드를 유일하게 식별하는데 있어서 필요없는 속성을 모두 제거한 슈퍼키의 부분집합.
ex)

{이름}, {나이}, {주민등록 번호}, {전화번호} 속성을 가지는 테이블에서 
**슈퍼키**는 {주민등록 번호}, {전화번호, 이름}, {주민등록 번호, 이름} 3개이다. (다른 조합도 가능)
이들중 {주민등록 번호}가 **후보키**이며, 나머지 속성들은 레코드를 유일하게 식별하는데 있어서는 필요없는 속성들이다.


기본키(Primary Key)

  • 후보키(CK)들 중에서 선택한 하나의 키
  • 최소성과 유일성을 만족하는 속성
  • NULL값을 가질 수 없음
  • 중복된 값을 가질 수 없음


대체키(Alternate Key)

  • 후보키(CK)가 2개 이상일경우, 기본키(PK)로 지정하고 남은 후보키(CK)들.


외래키(Foreign Key)

  • 한 (자식)테이블의 어떤 속성(들)이 다른 (부모)테이블의 속성(들)을 참조했을때 자식테이블에 해당되는 속성.

  • 부모-자식(외래키) 관계가 형성됨.

  • NULL값과 중복값이 허용됨.

  • 외래키는 반드시 다른 테이블에서 기본키(PK)거나 고유키(UK) 이어야 함.

  • 참조되는 값(부모 테이블)이 변경되면 참조하는 값(외래키,자식 테이블 쪽)도 변경됨.

  • 외래키는 참조되는 테이블의 값과 동일한 키 속성을 갖는다. (column이름은 달라도 됨. 데이터 타입등이 같아야 함)

    (지도교수ID가 외래키이고 참조되는 테이블의 속성 이름은 ID임)image-20230824035422998

  • 참조되는 부모테이블이 먼저 생성된 후, 자식 테이블이 생성되어야 함.

  • 외래키 관계에서 부모테이블을 삭제하려면 자식테이블을 먼저 삭제해야 함.

  • 참조되고 있는 값은 부모 테이블쪽에서 삭제할 수 없음

  • 한 테이블 내에서 외래키 관계가 나타날수 있음 (이럴때는 외래키와 그것이 참조하는 기본or고유 키의 이름은 다를 수밖에 없음)image-20230824035712543

.외래키의 중요한 존재 이유중 하나는 ‘무결성’

무결성: 데이터가 항상 정확한 값을 유지하는 성질


고유키(Unique Key)

  • 중복을 허용하지 않음.
  • NULL값을 허용함
  • 기본키는 한개만 설정해야 하지만(기본키 자체는 여러개의 키로 이루어진 복합키일수 있음), 고유키는 여러개를 설정해도 됨.


최소성, 유일성

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

카테고리:

업데이트:

댓글남기기