□ 정규화 진행이유
○ 테이블 간 중복된 데이터를 방지하여 Anomaly현상 방지
○ 테이블 간 중복된 데이터를 방지하여 무결성(Integrity)을 유지하여 DB 안정화 및 최적화 도모
□ 예제) 쇼핑리스트 테이블
○ 해당 테이블은 쇼핑리스트 정보가 적재되었음
○ 주문상품 필드를 보면 다가속성과 복합속성으로 구성되어 있어 정규화에 위배
○ 다가속성/복합속성 분리
- 다가속성을 분리하면 행이 증가
- 복합속성을 분리하면 필드가 증가됨
○ 위 테이블은 다가/복합속성인 필드를 분리하였지만 데이터 중복이 되어 있는 상황으로 1정규화가 필요한 상황임
- 데이터 중복을 제거하기 위해 테이블 분할 진행
- 테이블 분할을 통해 주분번호와 주문상세내역 테이블의 1:M 구조 형성
○ 위 처럼 1정규화를 진행했으나 두개 이상으로 구성된 PK에서 주로 발생되는 2정규화가 필요한 상황임
- 식별자 일부에 종속되는 어트리뷰트, 즉, 속성은 제거하고 상품명은 상품코드에만 종속되고 주문번호와는 관계가 없으니 분리하는 작업 진행
- 이 작업으로 상품테이블과 주문상세내역 테이블은 1:M 관계를 형성함
○ 위 처럼 1, 2 정규화를 진행했으나 식별자 이외의 속성간의 종속관계가 발생되는 테이블을 발견하게됨. 이는 3 정규화를 위배되는 행위이며 해당 테이블은 tb_주문번호 임
- 종속관계가 있으면 중복 값이 생김. 이를 해결하기위해 이행 종속관계를 분해하는 3 정규화를 진행함
- 이 작업을 통해 주문번호와 고객정보 테이블은 서로 1:M관계를 형성함
○ 1, 2, 3정규화를 시행하여 4개의 테이블이 형성되었으며 각 테이블간의 관계가 형성되었음
- 마스터 테이블 고객, 상품 테이블은 행위 테이블인 주문번호, 주문상세내역 테이블과의 관계가 형성되었음을 알 수 있음.
'DB > DB_Modeling' 카테고리의 다른 글
2 정규화 (0) | 2023.10.26 |
---|---|
1 정규화 (0) | 2023.10.26 |
Anomaly : 데이터 이상현상 (1) | 2023.10.25 |
1:1 관계 (1) | 2023.10.24 |
M:N 관계 (0) | 2023.10.16 |