DB 이야기

5] Primary key와 Unique index 논쟁

김푸른초푸른 2020. 8. 12. 21:55

1. Primary key와 Unique index 비교

1) PK

- 목적 : Constraint + index

- 공통점 : 유일성 보장

- 참조 무결성 : PK/FK에 의해 지정 가능

- 테이블당 개수 : 1개만 가능

- 인덱스 생성 : Unique Index 생성

- 역공학 적용시 : PK인식 가능

- Null 허용 : 허용X

 

2) UI

- 목적 : Index

- 공통점 : 유일성 보장

- 참조 무결성 : 지정 불가능

- 테이블당 개수 : 여러 개 가능

- 인덱스 생성 : Unique Index 생성

- 역공학 적용시 : PK인식 불가능

- Null 허용 : 허용됨

 

2. 각각 혼자만 사용시 장단점

1) PK

- 장점

* PK/FK가 존재하지 않아 DBA가 데이터베이스를 관리하기 쉽다

* 개발 시점에 데이터 제약이 없으므로 개발이 용이

* PK/FK가 없어서 성능이 좋아질 수 있다.?

 

- 단점 

* 데이터 무결성이 깨질 수 있음

* 데이터모델과 테이블 관계가 일치 X

* UI는 한 테이블에 여러개 만들 수 있기에 테이블만 보고 PK가 무엇인지 구분이 힘들다

* 데이터전환 작업시 데이터 정리 작업이 필요

 

2) UI

[4가지 기준에서 UI판단]

1순위. 데이터 무결성

2순위. 데이터베이스 성능

3순위. 데이터베이스 관리의 용이성

4순위. 개발자 편의성 

 

* PK를 사용하지 않는다는 것

: 1순위의 데이터의 무결성을 데이터베이스에 맡기지 않고 전적으로 애플리케이션에서 주관

 

주의) 3순위, 4순위을 우선적으로 고려하여 의사결정을 하는 것은 정말 위험하다! 

: 중요한 업무 데이터를 일시적인 귀찮음으로 데이터가 깨질지도 모르는 품질 저하의 위험으로 몰고 감

 

 

 

출처 : 아는만큼 보이는 데이터베이스 설계와 구축

'DB 이야기' 카테고리의 다른 글

데이터뱅크란?  (0) 2021.01.26
SQL 기본 이해  (0) 2020.12.11
28. 데이터 사전  (0) 2020.08.01
데이터 정의  (0) 2020.07.03
DAY 1. 사용할 id 생성   (0) 2020.04.13