Primary Key 와 Unique Key 의 차이는?
프라이머리 키(primary key, 일차 키, 주 키, 기본 키)
키란 레코드 또는 투플(tuple)을 확인하기 위해 이용되는 속성값으로 하나의 레코드 또는 투플을 하나의 뜻으로 확인하기 위해 이용되는 키를 기본 키라고 한다. 2차 키(secondary key)와 대비된다.
▲ 기본키(일차 키)와 이차 키의 예시
유니크 키(unique key)
유일성을 가지기 위해 설정해 놓은 키이다. 테이블에 있는 데이터를 유일하게 식별하기 위한 무결성(null을 가질 수 있다) 제약조건 중 하나이다. 유일한 값을 식별하기 위한 것이므로 그 목적에 맞게 사용하려면 굳이 null을 허용할 필요가 없다.
차이점
1) 기본키(Primary Key)
▪ 해당 테이블의 식별자 역할을 하는 제약조건으로 테이블에 하나만 설정할 수 있다.
예를 들어서, 사람을 식별할 때 가장 좋은 주민등록번호로 예를 들겠다. 회원 정보 테이블이 있다고 가정하면 회원 이름, 주민번호, 아이디, 주소 등등 여러 가지가 있는데 여기서 주민번호와 아이디는 중복이 될 리가 없는 유일한 성질을 가지고 있다.
이렇게 중복성이 없이 유일성을 가진 성질 중에서 사용자가 선택한 것을 기본키라고 한다.
▪ 즉 기본키는 다른 것이 될 수도 있지만 유일성을 가지고 있어야 하는 것이다.
기본키로 설정하는 것은 그 테이블을 만드는 사람의 마음이고, 이렇게 유일성을 지니고 테이블에서 하나만 지정할 수 있는 것이 기본키라는 것이다.
2) 유니크 키(Unique Key)
▪ Unique Key는 유일성을 가지기 위해 설정해 놓은 것으로 이로 설정이 되면 중복이 되는 것을 방지하는 역할을 한다.
위에서 예로든 회원 정보 테이블에서 회원 이름에 이 성질을 설정해 놓으면 같은 이름을 가진 사람은 최초의 한 사람만 가입이 가능해지는 것이다. 결론적으로 프라이머리 키는 유니크 키의 성질을 포함하는 것 중에서 테이블 설계자가 기본적으로 선택한 키라는 것이다. 유니크 키는 하나의 테이블에 각각의 column마다 설정이 가능하지만 프라이머리 키는 오직 하나만 설정이 가능하다.
Primary Key | 비교 내용 | Unique Key |
허용 안함 | NULL의 허용 | 허용 |
1개 이상 | 컬럼의 수 | 1개 이상 |
가능 | 유일한 값의 식별 | 가능 |
테이블 하나당 오직 1개 생성가능 | 테이블 당 갯수 | 테이블 하나에서 |
32개 컬럼까지 가능 | 복합기 생성 | 32개 컬럼까지 가능 |
▲ Unique Key와 Primary Key 의 비교
커뮤니티 Q&A
위 이론과 관련된 게시글이에요.
이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!
게시글 작성하기