728x90
반응형

이전 포스팅 모델러의 마음가짐이란?

 

이전 포스팅에서는 데이터 모델러에 있어 

마음가짐을 어떻게 해야 하는지에 대하여 알아보았습니다

스키마 구조와 모델을 보는 3가지 관점이 왜 중요한지

사용자 관점에서만 모델링을 하다보면

불필요한 공수가 발생하여 장기간 운영해야 하는 서비스에서는

너무나도 불합리한 것이었지요?

 

더 궁금한 것이 있다면

아래의 링크를 클릭해서 확인하시면 되겠습니다

 

 

2022.08.16 - [Data_Modeling/Methodology] - 데이터 모델링의 중요한 마음가짐이란 무엇일까?

 

데이터 모델링의 중요한 마음가짐이란 무엇일까?

이전 포스팅에서 데이터 모델링의 기본적인 스키마 구조와 모델을 보는 3가지 관점이 왜 중요한지 알아보았습니다 각 각의 스키마 구조에 해당하는 중요한 작업들이 있었습니다 사용자가 바라

tantangerine.tistory.com

 


 

데이터 모델링 정규화 이론의 중요성

 

데이터 모델링에 있어 정규화 과정은 어느 책에든 강좌를 봐도

빠지지 않고 이야기하는 이론입니다

 

그 이유는 2차 원표(DBMS)에 어떤 데이터를 어떻게 담는 것이 최적인지 고민하는 과정입니다

그 고민에 어떻게 담는 것이 가장 적합한지 알아보기 위해서는 

정규화 이론이 가장 이상적이기 때문입니다

 

구조적으로 데이터 이상 현상이 존재하지 않는 데이터 구조가 이상적입니다

 

데이터이상현상사례
데이터 이상 현상 사례

 

하지만 위와 같이 데이터가 구조가 구축되어있다면,

아래와 같이 문제점이 발생합니다

 

- 평가 코드 결과가 홍길동이라는 학생에 대한 정보는 입력이 불가능합니다

- 과목 코드가 CR11인 과목의 이름이 '심리학 입문'으로 변경되면

박영진과 김영희의 CR11 관련 열을 모두 찾아서 수정해야 합니다

- 김영희 F학점 평가 결과를 삭제하면 논리학 개론 과목도 함께 삭제됩니다.

 

 

데이터 이상 현상은 속성의 값을 수정할 때나 새로운 개체를 삽입하거나 삭제할 경우 의도하지 않은

다른 데이터에 문제가 발생하는 현상입니다

 

그런 데이터 이상 현상이 발생하는 데이터 구조를 가지고 있다면,
이상 현상의 원인은 데이터가 독립적이지 않고 중복으로 관리되어

데이터 간의 종속성에 계속 영향을 받기 때문입니다

 

하나의 종속성이 하나의 표로 관리되도록 분해해가는 과정이 바로 정규화입니다

 

즉, 종속성을 기준으로 데이터를 어떻게 담는 것이 최적인가에 대한 방법론이 바로 정규화 이론입니다 

 


 

 


 

1 정규화 적용 사례

* 1 정규화에서는 모든 속성이 값을 반드시 하나만 가져야 합니다

 

 

자격증 정보를 사원에 종속된 정보가 아니라 독립된 개체 정보로 유일하게 관리하고자 합니다

아래와 같이 사원이 자격증을 여러 개 가지고 있다면 문제점이 발생한다

그래서 사원 보유 자격증을 만들어서 관리합니다

하지만 이것 또한 문제점이 발생합니다

자격증별로 어떠한 이슈가 있을지 모르기 때문입니다.

 

1정규화적용사례
1정규화 적용 사례

 

그래서 아래와 같이 자격증을 독립적인 개체로 만들어주는 것이 좋습니다

그러면 범용적으로 자격증에 수장 지원 여부나 진급 시 필요한 필수 자격증 여부 등 여러 값들을 관리할 수 있습니다

그래서 1: N로 개체가 연결될 가능성이 있다면 독립 개체로 관리해야 합니다

 

 

독릭개체분리사례
독립개체 분리 사례

 

 


 

 

2 정규화 적용 사례

* 모든 속성이 반드시 주 식별자 전부에 종속되어야 합니다

* 1 정규화로 생성된 집합은 자식이며, 2 정규화로 분리된 집합은 부모가 됩니다.

 

아래와 같이 데이터가 구성되어있다면

2 정규화를 거쳐서 2개로 분리가 됩니다

그 이유는 단체명이 변경된다면 데이터 이상현상이 발생하기 때문입니다

 

이때 단체 번호에 종속된 속성을 전부 별도 엔터티로 분리를 합니다

즉, 계약 번호는 같지만, 계약 주체인 단체가 다를 경우에는 계약 내용 등이 다를 수 있음을 주식 별자가 설명하고 있습니다

이렇게 설명은 안되어있지만 엔터티만 보고도 계약과 단체의 데이터 관계를 이해할 수 있어야 합니다

 

분리된집합사례
주식별자중 <단체번호>에만 종소된 속성을 별도 엔터티로 분리


 

3 정규화 적용 사례

* 주 식별자가 아닌 모든 속성이 상호 종속 관계여서는 안됩니다.

 

아래와 같이 <고객명>과 <고객등급> 속성은 <고객번호>에 함수적으로 종속되어 있습니다

오른쪽과 같이 고객 집합을 별도로 분리하여 <고객> 엔터티로 만드는 과정이 필요합니다

 

종속성별도분리
속성 간 종속성이 있으면 별도 엔터티로 분리한다

 

 

실제 현장 모델링에서 가장 근원적이고 기반이 되는 핵심사상이 바로 정규화 이론입니다

그리고 통상 4 정규화 이상의 모델은 폭넓게 사용되지 않고 있습니다

 

이렇게 데이터 이상 현상을 줄이기 위해서는 정규화 이론은 필수 이론이라고 할 수 있습니다

숙지가 잘 안 되더라도 반복적으로 보며 생각하면서

정규화에 대한 개념을 확실히 잡는 것이 중요합니다

 

그래서 엔터티를 보기만 해도 데이터의 관계성을 파악해서

모델러의 의도를 파악하는 것이 개발자로도 필요한 덕목이라고 생각합니다.

 

그럼 앞으로 언젠가는 모델러가 될 여러분의 미래를 생각하며

오늘도 한걸음 나아갑시다!

 

파이팅!!

 

프로젝트 성패를 결정짓는 데이터 모델링 이야기 中 김상래 지음

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel