데이터베이스

[MySQL] PK, NN , AI 의 의미

동띠기 2020. 8. 31. 15:03
728x90

Primary Key ( PK )

테이블에서 특정 row 하나를 식별하는 역할, 특정 row를 고유하게 나타낼 수 있는 값

 

 

Natural Key

실제로 어떤 개체가 갖고 있는 속성을 나타내는 컬럼이 Primary Key가 됐을 때 이를 Natural Key라고 합니다. 사람은 주민등록번호로 특정 인물을 식별할 수 있습니다. 우리가 읽는 책은 ISBN이라고 하는 번호로 특정할 수 있구요. 바로 이런 속성을 나타내는 컬럼이 Primary Key가 되면 Natural Key라고 합니다.

현재 우리의 member 테이블에서는 email 컬럼이 각 회원을 식별할 수 있는 실제 속성입니다. 만약 제가 id 컬럼 말고 email 컬럼을 Primary Key로 설정했다면 Primary Key가 Natural Key인 겁니다.

 

 

Surrogate Key

어떤 개체의 실제 속성은 아니지만 Primary Key로 쓰기 위해 추가한 컬럼을 Surrogate Key라고 합니다. 이런 Surrogate Key에는 주로 1부터 순차적으로 증가하는 숫자가 들어가게 됩니다.

 

 

Not Null (NN) 

NULL이 아니다, pk와 함께 반드시 하나의 값을 가지고 있어야 하고 빈 값을 가지면 안될 때 사용한다.

 

 

Auto Increment ( AI )

Auto Increment 속성을 컬럼에 설정하면, 해당 컬럼에 관해서는 DBMS가 '자동으로 증가'하는 값을 넣어줍니다.

Primary Key가 Surrogate Key인 경우에는 보통 이런 식으로 Auto Increment 속성이 설정되어 있을 때가 많습니다.

728x90