키(key)

김루트·2021년 3월 28일
0

데이터베이스

목록 보기
1/4

table 1.

학번 성명 생년월일 거주지 성별 전공
1001 구로자 931123 서울시 토목
2002 이덕배 981212 서울시 토목
3003 서이가 920529 대구시 컴퓨터
4004 김민희 970314 부산시 전산
table 2.
학번 신청강좌
1001 인문교양
2002 인문교양
1001 영어학개론
4004 컴퓨터공학개론

위의 표를 바탕으로 슈퍼키/ 후보키,기본키 대체키/ 외래키에 대해서 간단하게 정리한다.
일반적으로 테이블에서 행(row) 은 특정 개체에 대한 정보를 담고 있으며 튜플(tuple) 내지 레코드(record)라고 칭해진다. 열(column)은 테이블의 속성(atrribute)을 나타낸다.
키(key) 는 테이블에서 조건을 만족하는 튜플을 찾거나, 혹은 이를 정렬할 때 튜플들을 서로 구별할 수 있게 해주는 속성을 의미한다.

※유일성: 하나의 키값으로 하나의 특정 튜플만을 식별해낼 수 있다.
※최소성: 키를 구성하는 한 속성이 없다면 튜플을 유일하게 식별할 수 없게끔, 필수적인 최소한의 속성으로 구성된다.

슈퍼키 (super key)

슈퍼키는 레코드를 구별할 수 있게 해주는 하나 혹은 하나 이상의 속성들의 집합이다. 예를 들어, 학번 하나만으로도 레코드를 구별할 수 있으나, (학번+성명) 혹은 (성명+생년월일) 등과 같이 여러 개의 속성을 묶어서 레코드를 구별할 수도 있다.즉, 슈퍼키는 학번일 수도, (학번+성명)일 수도, (학번+성명+생년월일)일 수도 있다. 유일성은 만족하지만, 최소성을 만족하지는 않는다. 예를 들자면, (학번+성명)으로 튜플을 구분할 수 있지만, 학번만으로도 튜플을 구분할 수 있기에 최소성을 충족하지 못하는 것이다.

    후보키 (candidate key)

후보키는 유일성과 최소성을 모두 만족해야 한다. table 1에서는 학번, 성명, 생년월일이 후보키가 될 수 있으며, table 2에서는 (학번+신청강좌)가 후보키가 될 수 있다.

  • 기본키 (primary key)
  • 후보키 가운데 선별된 키로, null 값을 가질 수 없다. 중복되는 값 또한 허용되지 않는다. 예를 들어 table 1에서 학번을 기본키로 선정했다면 이미 사용된 1001, 2002, 3003, 4004 학번은 추후 레코드를 추가할 때 다시 사용될 수 없다.

  • 대체키 (alternative key)
  • 후보키 가운데 기본키로 채택되지 않은 키를 의미한다.

    외래키 (foreign key)

    문자 그대로 해석하면, "외부에서 온 키"를 의미한다. 가령 table 1과 2가 서로 관계를 맺지 않는다면, table 2의 학번은 어떠한 정보도 알려주지 못한다 (즉, 학번에 해당하는 사람에 대한 그 어떤 유의미한 정보를 알 수 없다). 한편 "학번"이라는 속성은 table 1에서는 기본키가 될 수 있지만, table 2에서는 불가능하다. 만약 table 1의 기본키가 학번이라면, table 2의 학번은 1의 학번을 참조할 수 있으며 이때 table 2의 학번을 외래키라고 부른다. 요컨대, 외래키는 현재 자신의 테이블에서는 단독으로 기본키가 될 수 없지만 참조하게되는 다른 테이블에서는 기본키인 속성을 가리킨다.

    profile
    반갑습니다.

    0개의 댓글