mysql 키의 종류 5가지

SionBackEnd·2023년 2월 8일
0

CS

목록 보기
7/9
post-custom-banner

  • 슈퍼키 : 튜플(테이블의 행)을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합이다.

-> 행의 열값중 중복값이 없는 하나의 속성 혹의 여러개의 속성들이 모인 집합이다.

  • 후보키 : 튜플(테이블의 행)을 유일하게 식별할 수 있는 속성의 최소 집합이다.

-> 슈퍼키는 식별할 수 있는 여러 조합이 있는 반면 후보키는 식별할 수 있는 최소한의 집합을 뜻한다.

집고 넘어가기

예를 들어 id와 이름과 주민번호가 존재할때 슈퍼키는 id와 이름, 이름과 주민번호, id와 주민번호, id와 이름과 주민번호 이렇게 총 4가지의 슈퍼키가 존재하지만 후보키는 최소한의 조합으로 유일하게 행을 식별할 수 있는 집합을 뜻한다. 후보키는 하나일 수 있고 여러개의 조합일 수 있다. 슈퍼키와 가장 큰 차이점은 최소한이라는 단어가 포함된다.

  • 기본키 : 여러 후보키 중 하나를 선정하여 대표로 삼는 키이다.
    -> 후보키가 하나면 그 후보키를 기본키로 사용하고, 여러 개라면 그중 하나를 적절히 선택하면된다. 기본키는 id와 주민번호 두개의 값이 기본키가 될 수 있다.
  • 대리키 : 대리키는 DBMS나 관련 소프트웨어에서 임의로 생성하는 값으로 사용자가 직관적으로 그 값의 의미를 알 수 없다.

-> 기본키가 보안을 요하거나, 여러개의 속성으로 구성되어 복잡하거나, 마땅한 기본키가 없을 때는 일련번호 같은 가상의 속성을 만들어 기본키로 삼는다. 이러한 키가 대리키 혹은 인조키라고 한다. 우리가 흔히 사용하는 userId의 값이 이 대리키이다.

  • 대체키 : 대체키는 기본키로 선정되지 않은 후보키를 말한다.

-> 후보키 중에서 선택받지 못한 후보키가 대체키가 된다. id와 주민번호중 Id가 기본키라면 주민번호는 후보키가 된다.

  • 외래키 : 외래키는 다른 테이블의 기본키를 참조하는 속성을 말한다.

-> 외래키의 특징
1. 외래키의 특징을 정리하면 다음과 같다.
2. 관계 데이터 모델의 릴레이션 간의 관계를 표현한다.
3. 다른 릴레이션의 기본키를 참조하는 속성이다.
4. 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 한다.
5. 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경된다.
6. NULL 값과 중복 값 등이 허용된다.
7. 자기 자신의 기본키를 참조하는 외래키도 가능하다.
8. 외래키가 기본키의 일부가 될 수 있다.

profile
많은 도움 얻어가시길 바랍니다!
post-custom-banner

0개의 댓글