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 의 비교

데이터베이스

데이터베이스 트랜젝션에 대해 설명해보세요.

데이터베이스

DMBS 를 사용할 때 Index를 써야 하는 상황이 발생할 수 있다. Index를 설정 할 때의 장점과 단점을 설명해보세요.

커뮤니티 Q&A

이론과 관련된 게시글이에요.

이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!

게시글 작성하기