Beny's Study
04. 논리 모델링(정규화) 본문
논리적 모델링 단계
정규화
■ 논리 데이터 모델 상세화 과정에 대표적인 활동으로 관계형 데이터베이스에서 데이터를 구조화하는 작업
(일관성 확보 및 중복 제거 → 엔티티에 적절한 속성을 배치하여 신뢰성 있는 데이터 구조를 얻음)
■ 일반적으로 정규화를 수행하면 입력, 수정, 삭제 등 종합적인 성능이 향상되지만
조회의 경우 처리 조건에 따라 성능이 향상 또는 저하될 수도 있음
정규화 목적
■ 데이터 중복을 방지하고 보다 효율적으로 데이터를 저장하기 위해
■ 자료의 손실이나 불필요한 정보의 도입 없이 데이터의 일관성, 데이터 중복을 최소화
■ 최대의 데이터 안정성 확보를 위하여 안정적인 자료구조로 변환 (하나의 테이블을 둘 이상으로 분리)
■ 하나의 엔티티에는 하나의 의미만 존재하도록 분해하는 작업
이상(Anomaly)
■ 갱신, 삽입, 삭제 이상을 통틀어 ‘변경 이상’이라고 함
■ 정규화를 미 진행하거나 제대로 진행되지 않은 엔티티를 대상으로 갱신, 삽입, 삭제 시 이상이 발생할 개연성을 가짐
→ 신뢰할 수 없는 데이터로 채워질 수 있음 (데이터의 일관성 및 무결성 침해)
1) 삭제 이상(delete) : 유용한 정보를 함께 삭제하지 않는 이상 어떤 정보를 삭제 불가능 (자료 손실)
2) 삽입 이상(insert) : 불필요한 정보를 함께 저장하지 않고는 어떤 정보를 저장 불가능 (불필요한 정보 도입)
3) 갱신 이상(update) : 반복된 데이터 중 일부만 수정하면 데이터의 불일치 발생 (데이터의 일관성 침해
정규화의 단점
■ 정규화를 통해 테이블이 많아질수록 join이 더 많이 일어남
■ 조회의 경우 처리 조건에 따라 성능이 향상 또는 저하될 수 있음
■ 저하되는 경우 반정규화를 통해 해결이 가능하지만 반정규화가 무조건적인 답은 아님
제 1정규화
■ 엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것
제 2정규화
■ 주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 것
제 3정규화
■ 주식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 것
정규화가 필요없는 설계기법
■ 원칙1 : 장부나 전표에서 머리부와 서술부는 별도의 엔티티로 저장한다.
■ 원칙2 : 코드-코드 값의 관계에 있는 속성들은 별도의 엔티티로 구성한다.
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."
'[DB] > 02. DB모델링' 카테고리의 다른 글
06. 반정규화(De-Nomalization) (0) | 2022.05.09 |
---|---|
05. 물리적 모델링 (0) | 2022.05.09 |
03. 개념 모델링(엔티티 도출 및 ERD 설명) (0) | 2022.05.09 |
02. 도메인 (0) | 2022.05.09 |
01. 모델링(UML)의 개요 및 DB모델링 개념 (0) | 2022.05.09 |