DB 논리적 모델링과 정규화 방법에 대해 알아보자.


1. 논리적 모델링이란?

2. 정규화

3. 정규화 방법

4. 이상


1. 논리적 모델링이란?

데이터 모델링이라고도 불리는 논리적 모델링은, database 모델링 중 핵심 요소이다.

논리적 모델링은 ERD라고 하는 개념적 모델링을 먼저 진행하고,  이를 기반으로 정규화 및 테이블 상세화 순으로 작업이 진행된다.




2. 정규화


-> 정규화란

관계형 DB에서 중복값을 제거하는 과정이다.


-> 목적 

데이터 중복 방지 및 효율적으로 데이터를 저장하기 위한 목적으로 사용한다.

또한, 삽입, 삭제, 갱신 이상 발생 가능성 등을 줄이기 위해 사용하기도 한다.




3. 정규화 방법

먼저, 속성의 원자성을 확보하고, 다중값을 가진 속성을 분리한다. 속성값을 분리하는 1차 과정을을 진행하였다면, 그 다음 단계로 부분 함수의 종속성을 삭제하고 몇몇 키에 종속된 값을 분리한다. 이떄, key가 하나의 컬럼값이라면 이 과정은 생략하고 진행을 할 수 있다. 여기까지 진행 하였다면, 남아 있는 값 중 서로 종속된 관계가 있는 속성들을 나누고, 보이스 코드 정규화를 진행한다. 그리고 마지막으로 다중 값의 종속성 및 조인 종속성을 제거한다. 이러한 과정을 거치면, 정규화는 마무리된다.



4. 이상이란?

삽입 이상, 갱신  이상, 삭제 이상이 있으며, 다음과 같다.


삽입 이상: 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 어려운 상태

->예:  주문에 대한 정보만 입력해도 제품정보 까지 동시에 입력이 되는 케이


갱신 이상: 반복된 데이터 중, 특정 부분만 수정하면 데이터의 불일치가 발생하는 상태

->예: 동일한 제품명을 중복되어 있는 수만큼 수정하지 않고, 한번만 수정하거나 일부만 수정하면 일관성이 맞지 않는 문제가 발생함


삭제 이상: 유용한 정보와 같이 삭제 하지 않고서는 어떤 정보를 제거하는 것이 어려운  상태

-> 예: 주문에 대한 정보 (주문번호, 주문수량) 을 삭제하면 제품번호, 제품명, 단가 까지 동시에 제거되는 케이스


---------

CH3-2




여기서 중복되는 것들을 뽑고 지워준다. 그 다음 식별 관계로 연결한다.




CH 3-3


주 식별자가 아닌 속성 중, 주 식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거한다.

관계 설정을 통해 식별자와 연결한다.







댓글