티스토리 뷰
회사에서 모델링 할 일이 있었는데 정규화에 대해서 이해가 안 되는 부분이 있어서 데이터베이스 설계 및 구축 이 책에 있는 정규화 부분을 읽고 정리했습니다.
보통 이론적으로는 5차 정규화까지 알려져 있지만 3차 정규화까지만 알아도 큰 문제가 없다고 한다.
모델링 할 때 정규화를 알고 정규화가 필요 없는 모델을 만드는게 중요하다
정규화
ERD 내에서 중복을 찾아 제거해 나가는 과정
판매 전표 가지고 정규화 과정을 설명하기로 한다.
제 1 정규화
엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것
한 명의 사원이 여러 개의 취미를 가질 수 있으므로 아래와 같이 생각할 수 있다.
하지만 이렇게 하면 복수 개의 값들이 저장된 것을 볼 수 있다
이런식으로 취미 속성에는 단일 값만 저장하도록 저장해야한다.
제 2 정규화
주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 과정
주식별자가 아닌 부서명 속성이 주식별자 판매부서에 속성에 종속된 상태이다.
[판매부서 <- 부서명]
판매부서는 DH01 인데 부서명을 영업 1부,생산부 이렇게 입력이 가능해서 모델링에 문제가 있다.
제 2 정규화 과정을 거치면 아래와 같이 된다.
제 3 정규화
주식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 과정
이와같이 판매 엔티티에서는 주식별자가 아닌 사원명 -> 판매사원번호, 고객명 -> 고객번호,
고객주소 -> 고객번호 , 제품명 -> 제품번호 , 단가 - > 제품번호
속성 B가 속성 A 에 종속되어 있다면 새로운 엔티티로 분리될 때 공식처럼 속성 A가 주식별자가 된다.
Reference
'Computer Science > Database' 카테고리의 다른 글
샤딩과 파티셔닝 (0) | 2020.11.17 |
---|