728x90
반응형
문제 37)
<모델>
모델코드 |
모델명 제품류코드 물품가 출하가 A유형분류코드1 B유형분류코드2 C유형분류코드3 D유형분류코드4 E유형분류코드5 바코드 가로 세로 높이 모델구분 |
위 테이블은 컬럼단위에서 중복된 테이블이다.
컬럼에 의한 반복적인 속성값을 갖는 형태는 속성의 원자성을 위배한 제 1차 정규화의 대상이 된다.
이와 같은 반복적인 속성 나열 형태에서는 각 속성에 대해 'or'연산자로 연결된 조건들이 사용되는데,
이 때 어느 하나라도 인덱스가 정의되어 있지 않으면 'or'로 연결된 모든 조건절들이
인덱스를 사용하지 않고 한 번에 전체 데이터 스캔으로 처리되게 되어 성능 저하가 나타날 수 있게 된다.
또한 모든 반복 속성에 인덱스를 생성하게 되면 검색 속도는 좋아지겠지만 반대급부적으로 너무 많은 인덱스로 인해 입력, 수정 삭제의 성능이 저하되므로, 1차 정규화를 통해서 자연스럽게 문제가 해결될 수 있도록 해야한다.
위 테이블에서 유형기능분류코드 각각에 대하여 개별로 INDEX를 모두 생성할 경우 입력, 수정, 삭제 때 성능이 저하된다.
제 1차 정규화를 수행하게 되면 1:M관계로 두개의 테이블로 분리된다.
<모델>
모델코드 |
모델명 제품류코드 물품가 출하가 바코드 가로 세로 높이 모델구분 |
<모델기능분류코드>
유형코드 기능분류코드 모델코드(FK) |
따라서 제 1차 정규화를 수행한 후 인덱스를 적용하는 것이 좋다.
문제 38)
<일재고>
물류센터코드 재고일자 |
월초재고수량 장기재고1개월수량 장기재고2개월수량 장기재고3개월수량 장기재고1개월주문수량 장기재고2개월주문수량 장기재고3개월주문수량 장기재고1개월금액 장기재고2개월금액 장기재고3개월금액 장기재고1개월주문금액 장기재고2개월주문금액 장기재고3개월주문금액 |
위 엔터티 또한 컬럼 단위에서 중복된 경우에 해당한다.
<일재고>
물류센터코드 재고일자 |
월초재고수량 |
<일재고상세>
물류센터코드(FK) 재고일자(FK) 재고기간 |
장기재고수량 장기재고주문수량 장기재고금액 장기재고주문금액 |
중복 컬럼에 1차 정규형을 완료하게 되면 일재고와 일재고상세 엔터티로 분리되어 1:M관계가 형성된다.
728x90
반응형
'SQL개발자 (SQLD)' 카테고리의 다른 글
SQLD 노랭이 28번 문제 (0) | 2023.05.31 |
---|---|
SQLD 노랭이 41,42번 반정규화 개념정리 (0) | 2023.05.31 |
[SQLD]SQL 자격검정 실전문제 (노랭이) 답안지 (2) | 2023.05.29 |
SQL자격 검정 노랭이 123p 118번 문제 풀이 (0) | 2023.05.27 |
SQL개발자 가이드(pdf) 361p~362p 'GROUPING SETS 3개의 인수' 정오표 (0) | 2023.05.27 |