키(Key)

Ouroboros·2025년 3월 7일

데이터베이스

목록 보기
7/9

  • 릴레이션 : 릴레이션(Relation)은 데이터들의 표(Table)의 형태로 표현한 것
  • 튜플 : 릴레이션을 구성하는 각각의 행, 속성들의 집합으로 구성된다.
             튜플의 수 = 카디널리티(Cardinality)
  • 속성 : 개체의 특성을 기술한 것
             속성의 수 = 차수(Degree)

1. 후보키

  • 기본키가 될 수 있는 키를 후보키라고 한다.
  • 모든 릴레이션은 반드시 하나의 후보키를 가지고 있어야 한다.
  • 유일성과 최소성을 만족한다.
  • 즉, "최소한"의 속성의 집합니다.
  • ex)
    학번은 후보키이다.
    주민등록번호는 후보키이다.
    이름은 후보키가 아니다. 이름을 가지고는 유일하게 식별할 수 없다.
    학년은 후보키가 아니다. 학년을 가지고는 유일하게 식별할 수 없다.
    신장은 후보키가 아니다.
    학과는 후보키가 아니다.
    [학번 + 이름]은 후보키가 아니다. 학번을 가지고 유일하게 식별할 수 있기 때문에 불필요한 속성이 있는 것은 후보키가 아니다.

2. 기본키

  • 후보키 중에 메인으로 선택된 키 (DBA가 선정)
  • null 값을 가질 수 없다. (개체 무결성)
  • 기본키로 설정된 속성에는 데이터가 중복될 수 없다.
  • 최소성을 가진다.
  • ex)
    학번을 기본키로 설정한다면 '89001'은 다른 학번으로 쓸 수 없다.

3. 대체키

  • 기본키를 제외한 나머지 후보키들을 말한다.
  • 보조키라고도 한다.
  • ex)
    후보키가 주민등록번호와 학번일때 기본키가 학번이라면 주민등록번호는 대체키가 된다.

4. 슈퍼키

  • 각 행을 유일하게 식별할 수 있는 속성의 집합이다.
  • ex)
    학번은 슈퍼키이다.
    주민등록번호는 슈퍼키이다.
    이름은 슈퍼키가 아니다. 이름을 가지고는 유일하게 식별할 수 없다.
    학년은 슈퍼키가 아니다. 학년을 가지고는 유일하게 식별할 수 없다.
    신장은 슈퍼키가 아니다.
    학과는 슈퍼키가 아니다.

[학번 + 이름]은 슈퍼키이다. 이 점이 후보키와는 다르다.

5. 외래키

  • 관계를 맺고 있는 R1과 R2라는 테이블에서 R1이 참조하고 있는 R2의 기본키를 R1의 외래키라고 한다.
  • 참조 관계를 표현하는데 중요한 도구로 사용된다.
  • 외래키로 지정되면 참조테이블의 기본키에 없는 값을 지정할 수 없다. (참조무결성)



*최소성과 유일성

유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질

ex)
"주민번호, 나이, 사는곳, 혈액형"이라는 속성에서 나이, 사는곳, 혈액형은 중복될 수 있는 속성이다. 하지만 주민번호는 절대 중복할 수 없다. 이렇게 각각의 튜플을 구분할 수 있는 성질을 유일성이라고 한다.

최소성 : 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질

ex) 사원번호(유일성) + 주민등록번호(유일성) = 최소성을 만족시키지 않는다.
"주민번호, 나이, 사는곳, 혈액형"이라는 속성에서, 주민등록+혈액형 의 조합으로 유일하게 식별할 수 있다. 하지만 주민등록 하나만으로도 개개인을 식별할 수 있으므로 혈액형을 빼면 해당 키는 최소성을 만족한다.




참고자료

1) https://computer-science-student.tistory.com/194
2) https://limkydev.tistory.com/108
3) https://velog.io/@00yubin00/DB-%ED%82%A4%EC%9D%98-%EC%A2%85%EB%A5%98-%EC%8A%88%ED%8D%BC%ED%82%A4-%ED%9B%84%EB%B3%B4%ED%82%A4-%EA%B8%B0%EB%B3%B8%ED%82%A4-%EB%8C%80%EC%B2%B4%ED%82%A4-%EC%99%B8%EB%9E%98%ED%82%A4

0개의 댓글