Page 9 -
P. 9

우’를 읽고 통찰하기 바란다.

                  이 장에서는 데이터베이스 설계와 관련된 미묘한 내용까지 모두 다루기보다
                  는 기본 내용만 다룬다. 관계형 모델을 따르는 설계 방법을 좀 더 깊게 알고

                  싶다면 마이클 헤르난데즈(Michael Hernandez)가 쓴 <Database Design for
                  Mere Mortals, Third Edition>(Addison-Wesley, 2013) 같은 책을 참

                  고하자.





                  BETTER WAY 1  모든 테이블에 기본키가 있는지 확인하자

                  관계형 모델을 따르려면 데이터베이스 시스템이 한 테이블에 있는 특정 로우

                  와 나머지 로우를 구별할 수 있어야 하므로, 모든 테이블에는 컬럼 한 개 이
                  상으로 구성된 기본키(Primary Key)가 있어야 한다. 기본키는 로우마다 유일

                  해야 하며 널(Null) 값을 가질 수 없다(더 자세한 내용은 ‘BETTER WAY 10.
                  인덱스를 만들 때는 널을 고려하자’를 참고한다). 기본키가 없으면 데이터를

                  걸러 낼 때 일치하는 로우가 없거나 딱 한 개인 조건은 보장할 수 없다. 하지
                  만 기본키가 없는 테이블을 만든다고 규칙에 어긋나지는 않는다. 사실 단순

                  히 널이 아니고 로우마다 유일하다고 해서 데이터베이스 엔진이 컬럼 한 개
                  나 일련의 컬럼을 항상 효율적으로 사용할 수 있는 것은 아니다. 따라서 컬럼

                  한 개 이상을 기본키로 정의해 컬럼을 효율적으로 사용하라고 데이터베이스
                  엔진에 명시적으로 통보해야 한다. 게다가 기본키가 없는 테이블 간의 관계

                  를 모델링하는 것은 일반적으로 불가능하다.

                  테이블에 기본키가 없으면 반복적이고 일관성 없는 데이터가 쌓여 쿼리 수행
                  속도가 느리고, 부정확한 정보를 조회하는 등 모든 종류의 문제를 일으킬 수

                  있다. 그림 1-1에 있는 주문 테이블을 살펴보자.





              032





         SQL 코딩의 기술(본문)최종.indd   32                                            2017-11-15   오후 11:27:49
   4   5   6   7   8   9   10   11   12   13   14