더북(TheBook)

반복 그룹은 쿼리를 만들어 속성별로 묶은 보고서를 생성하기가 어렵다. 그림 1-6에서 나중에 Predecessor 값을 추가하거나 이미 있는 Predecessor를 제거할 일이 발생한다면 지금 설계로는 컬럼을 추가하거나 제거해야 한다. 또 이 테이블의 데이터를 기준으로 만든 모든 쿼리(뷰), 보고서의 설계도 수정해야 한다. 이 시점에서 기억할 유용한 공식은 다음과 같다.

영향도(비용) 측면에서 컬럼은 비싸고 로우는 싸다.

향후 입력될 유사한 데이터로 컬럼을 추가하거나 제거하도록 테이블을 설계했다면 마음속으로 적색 경보를 울려야 한다. 그보다는 필요할 때 로우를 추가하거나 제거하도록 설계하는 것이 훨씬 바람직하다. 이 예제에서는 ID 값을 외래키로 사용하는 Predecessors 테이블을 생성하면 좋다. 또 혼란스러울 수 있으니 그림 1-7과 같이 기존 ID 컬럼을 DrawingID로 바꾼다.

043

▲ 그림 1-7 일대다 관계를 수용하도록 정규화를 적용한 설계

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.