eunzae's develog
[데이터모델링] 정규화 본문
정규화의 의의
정규화란 속성들의 종속성을 분석해서 하나의 종속성이 하나의 표로 관리되도록 분해해가는 과정
함수종속: 하나의 집합 안에 존재하는 속성 사이의 연관 관계
- 집합 내 속성A가 속성B의 값을 유일하게 식별하는 결정자라면, 속성B는 속성A에 함수적으로 종속됨
개별 종속성은 모두 별도로 분리하여 관리해야 데이터를 안정적인 구조로 관리할 수 있음
정규화된 모델의 특징
- 오라클의 경우 블록I/O를 일으키므로 반정규화를 통해 하나의 인스턴스 길이가 길어질 경우, 한 불록에 저장되는 레코드 수가 줄어들게 되어 적중율(Hit Ratio)가 떨어져 성능에 좋지 않음
제 1 정규형: 모든 속성이 반드시 하나의 값을 가져야 한다.
• 다수의 값: 어떤 속성이 값을 여러 개 갖는 경우
ex) 연락처: honggd@abcde.com, 010-1234-5678
• 반복 속성: 어떤 속성이 물리적으로는 하나의 값만 갖지만 유사한 형태의 반복 속성이 존재해서 논리적으로는 다수의 값을 갖는 것과 마찬가지인 경우
ex) 자격증: 정보처리기사, SQLd, DAsP
① 사원 엔터티에 제 1 정규화 적용
② 자격증 정보를 독립 개체로 관리
제 2 정규형: 모든 속성이 반드시 주 식별자 전부에 종속되어야 한다.
제 2 정규화: 주 식별자 일부에만 종속된 속성은 별도의 엔터티로 분리한다.
• 주 식별자는 집합 내 속성의 결정자로서 집합의 성격을 규정하는 등 다양한 역할을 수행
• 제 1 정규화로 생성된 집합은 자식(Child)이 되지만, 제 2 정규화로 분리된 집합은 부모(Parent)가 된다.
주 식별자 중 <단체번호>에만 종속된 속성을 별도의 <단체> 엔터티로 분리
제 3 정규형: 주 식별자가 아닌 모든 속성이 상호 종속 관계가 아니여야 한다.
제 3 정규화: 속성 간 종속성이 있으면 별도 엔터티로 분리한다.
• 3 정규형에서는 주 식별자가 아닌 모든 속성이 상호 종속관계여서는 안 된다.
• 속성들 간 종속성이 존재한다면 별도 엔터티로 분리하여야 한다.
고객 집합을 별도로 분리하여 <고객> 엔터티를 만드는 과정 필요
참고: 프로젝트 성패를 결정짓는 데이터 모델링 이야기
'Database > Data Architecture' 카테고리의 다른 글
[데이터품질관리]데이터 값 핵심품질항목 정의(CTQ) (0) | 2023.11.16 |
---|---|
[정보계]OLTP vs OLAP (1) | 2023.03.14 |
[데이터 모델링] 논리적 데이터 모델링(Logical Data Modeling) (0) | 2022.12.26 |
[데이터 모델링]개념 데이터 모델링(Conceptual Data Modeling) (0) | 2022.12.21 |
[DA] 코드, ID, 번호 도메인의 차이점 (0) | 2022.08.09 |