티스토리 뷰
반응형
2. PK(Primary Key, 주키) 선정하기
각 엔티티(테이블)의 속성(컬럼)들 중에 바뀔 염려가 없으며, 해당 엔티티를 식별할 수 있는(중복되지 않는) 것을 주키(PK)로 선정한다.
이 때, 주키로 사용할만한 속성이 없는 경우에는 임의의 인공 컬럼(속성)을 새로 만들어서 주키로 사용한다.
그렇다면 어떤 경우에 인공 컬럼을 만들어 주키로 선정하는 것이 좋을까?
- 향후 변경 가능성이 있는 속성을 주키로 사용하는 것은 바람직하지 않다.
예를 들어, '학생' 테이블에서 '이메일' 속성은 향후 변경 가능성있다.
있으므로 주키로 선정하기에 바람직하지 않다. - 주키로 사용할 속성에 들어갈 내용이 길어지는 것 또한 바람직하지 않다.
예를 들어, '과목' 테이블에서 '과목명' 컬럼은 문자열이 길어질 가능성이 있으므로 임의의 인공 컬럼을 만들어 사용하는 것이 좋다..
(주키는 주로 검색에 많이 이용이 되는데, 담고 있는 내용이 길어지면 그 속도가 느려질 수 있기 때문인듯)
대부분의 경우 인공 컬럼을 만들어 번호를 붙여 사용한다.
어떤 테이블의 경우는 두 개의 컬럼을 합쳐서 PK로 사용하기도 한다.
다 대 다 관계 해소를 위해 새로 테이블을 만들어주는 경우나, 제 1 ~ 3 정규화를 통해 테이블을 따로 떼주면서 테이블 새로 만들어주는 경우 등에
두 컬럼을 합쳐서 PK가 생기는 일이 발생하곤 한다.
모델링 초반엔 일어날 일이 거의 없으므로 생략하고 넘어가겠당.
반응형
'Programming > Database' 카테고리의 다른 글
데이터 모델링 :: 6. 제 3 정규화 (1) | 2017.04.26 |
---|---|
데이터 모델링 :: 4. 제 1 정규화 (중복 컬럼 해소) (0) | 2017.04.18 |
데이터 모델링 :: 3. 제 1 정규화 (중복 데이터 해소) (1) | 2017.04.17 |
데이터 모델링 :: 1. 엔티티, 속성 정하기 (0) | 2017.04.17 |
데이터 모델링 :: 모델링(modeling)이란? (0) | 2017.04.17 |
댓글