[My SQL] 기본키(Primary Key) 특징, 종류

728x90
Primary Key (기본키) 
 테이블에서 특정 row 하나를 식별하는 컬럼 

 

pk를 지정하면 pk에 같은 값이 있는 열에 추가되는 것을 막아주기 때문에 중복 데이터가 생길 위험이 사라진다.

 

pk는 고유값으로나타낼 수 있는 컬럼으로 설정해야한다.

 

이런 기본키에도 종류가 있다.

1. Natural Key

원래 가지고 있던 속성을 나타내는 컬럼이 pk가 되었을 때 Natural Key라고 한다.

 

예를들어 주민등록번호로 시민들을 식별 할 수 있다.

 

도서관의 책들은 청구번호로 식별할 수 있다. 이런 속성을 나타내는 컬럼이 pk가 되었을 때 Natural Key 라고 한다.

 

 

2. Surrogate Key

보통 맨 앞에 붙여주는 id값이라는 컬럼이 pk가 되는 경우 Surrogate key라고 한다.

 

구분값을 임의로 남기는 것인데 특정 열에 있는 속성을 직접적으로 나타내는 컬럼이 아니고 pk를 사용하기 위해 

 

인위적으로 생성한 컬럼이라고 생각하면된다.

 

Surrogate key는 주로 1부터 순차적으로 증가하는 숫자가 들어간다. 

 

이렇게 데이터를 구분하기 위해 순차적으로 증가하는 값으로 pk역할을 부여할 수 있다.

 

Natural Key와 Surrogate key 중에 어떤 것이 더  좋은지에 대해서는 정답이 없다

 

Natural Key는 그 값이 변경되면 모든 열의 값을 수정해야한다는 문제가 있기 때문에 보통은 데이터 관리할 때 

 

Surrogate key를 많이 선택한다.

728x90