Page 13 -
P. 13

1.  기본키를 정의할 때 대부분의 데이터베이스 시스템은 해당 컬럼에 유일 인
                      덱스를 같이 만든다. 컬럼 두 개 이상에 유일 인덱스를 만들면 데이터베이
                      스 시스템이 할 일만 더 많아진다.
                    2.  일반적으로 기본키로 조인을 수행하는데, 기본키가 여러 컬럼으로 구성되
                      어 있으면 쿼리가 좀 더 복잡하고 느려진다.


                  하지만 특정한 상황에서는 여러 컬럼을 기본키로 사용하는 것이 마땅하다.
                  제품과 판매회사를 연결하는 테이블이 있고, 이 테이블은 관련된 테이블의

                  기본키를 가리키는 ProductID와 VendorID 컬럼으로 구성되어 있다고 하자.
                  이 테이블에는 특정 판매회사가 해당 제품의 주 공급처인지 부 공급처인지

                  나타내는 컬럼, 판매회사가 부과하는 제품 가격 컬럼 같은 다른 컬럼도 포함
                  되어 있을 수 있다.


                  자동 생성되는 숫자 컬럼을 추가로 만들어서 인위적으로 기본키를 생성할 수
                  있지만, ProductID와 VendorID 컬럼을 조합해서 기본키로 사용할 수도 있다.

                  항상 개별 컬럼을 사용해 이 테이블에 연결하므로 추가로 만든 숫자 컬럼을
                  키로 사용하기보다는 이 두 컬럼으로 구성된 복합 기본키를 정의하는 것이

                  더 효율적이다. 또 두 컬럼을 합쳐 유일한 값이 되기를 원할 것이므로 추가
                  컬럼을 사용하지 않고 이 두 컬럼을 복합 기본키로 정의하면 더 좋다. 자세한

                  복합 기본키의 장점과 예제는 ‘BETTER WAY 8. 제3정규화로도 부족하다
                  면 더 정규화하자’를 참고한다.



                    핵심 정리
                    •  모든 테이블에는 하나 또는 일련의 컬럼으로 구성된 기본키가 있어야 한다.
                    •  키가 아닌 컬럼에 중복 값이 들어갈까 봐 걱정이 된다면, 해당 컬럼에 유일 인덱스를 정
                      의해 무결성을 확보할 수 있다.
                    •  형태가 가능한 간단하고 값을 갱신할 필요가 없는 컬럼을 키로 사용한다.






              036





         SQL 코딩의 기술(본문)최종.indd   36                                            2017-11-15   오후 11:27:49
   8   9   10   11   12   13   14   15   16   17