티스토리 뷰

Computer Science/Database

데이터베이스 정규화

내일도이렇게 2019. 7. 18. 22:23

회사에서 모델링 할 일이 있었는데 정규화에 대해서 이해가 안 되는 부분이 있어서 데이터베이스 설계 및 구축 이 책에 있는 정규화 부분을 읽고 정리했습니다.

 

 

보통 이론적으로는 5차 정규화까지 알려져 있지만 3차 정규화까지만 알아도 큰 문제가 없다고 한다. 

모델링 할 때 정규화를 알고 정규화가 필요 없는 모델을 만드는게 중요하다 


정규화

ERD 내에서 중복을 찾아 제거해 나가는 과정 

 

 

판매 전표 가지고 정규화 과정을 설명하기로 한다. 

 

 

 

 

 

 

 

 

 

 

 

 


제 1 정규화 

 엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것 

 

 한 명의 사원이 여러 개의 취미를 가질 수 있으므로 아래와 같이 생각할 수 있다. 

 

 하지만 이렇게 하면 복수 개의 값들이 저장된 것을 볼 수 있다

제 1 정규화 이전 

이런식으로 취미 속성에는 단일 값만 저장하도록 저장해야한다.

                                                                     

제1 정규화 이후 


 

제 2 정규화 

주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 과정 

 

 

주식별자가 아닌 부서명 속성이 주식별자 판매부서에 속성에 종속된 상태이다.

 

[판매부서 <-  부서명]

 

 

 

 

 

 

판매부서는 DH01 인데 부서명을 영업 1부,생산부 이렇게 입력이 가능해서 모델링에 문제가 있다. 

 

 

 

 

 

2정규화 전

 

 

                       제 2 정규화 과정을 거치면 아래와 같이 된다. 

 

 

2 정규화 후 


제 3 정규화 

 

 주식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 과정 

 

 

  이와같이 판매 엔티티에서는 주식별자가 아닌 사원명 -> 판매사원번호, 고객명 -> 고객번호, 

  고객주소 -> 고객번호 , 제품명 -> 제품번호 , 단가 - > 제품번호 

 

 

제 3 정규화 전 

 

제 3 정규화 후 

    속성 B가 속성 A 에 종속되어 있다면 새로운 엔티티로 분리될 때 공식처럼 속성 A가 주식별자가 된다. 


Reference

데이터베이스 설계 및 구축 

'Computer Science > Database' 카테고리의 다른 글

샤딩과 파티셔닝  (0) 2020.11.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함