1. 정규화(Normalization)
- 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 무손실 분해해가는 과정
- 데이터베이스의 논리적 설계 단계에서 수행(RDB)
- 정규형들은 차수가 높아질수록 만족시켜야 할 제약조건 증가
1.1) 목적 20년 3회 기출문제
- 데이터 구조의 안정성 및 무결성을 유지
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듦
- 효과적인 검색 알고리즘 생성 가능
- 데이터 중복을 배제해 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화
- 개체와 속성의 누락 여부 확인 가능
- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
1.2) 이상(Anomaly) 현상 20년 3회 기출,22년1회 실기 기출
- 정규화를 거치지 않아 DB 내에 데이터들이 불필요하게 중복, 릴레이션 조작 시 곤란한 현상
(1) 삽입 이상(Insertion Anomaly) 릴레이션에 데이터를 삽입할 때 의도와 상관없이 원하지 않은 값들도 함께 삽입되는 현상
(2) 삭제 이상(Deletion Anomaly) 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
(3) 갱신 이상(Update Anomaly) 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
1.3) 정규화의 원칙
- 정보의 무손실
- 분리의 원칙
- 데이터의 중복성 감소
1.3) 정규화 과정 20년 1, 2, 3회 기출 #원부이결다조
- 1NF(제1정규형) 도메인 원자 값(Atomic Value)
- 2NF(제2정규형) 부분적 함수 종속을 제거, 완전 함수적 종속을 만족 21년 2회 실기 기출
- 3NF(제3정규형) *이행적 함수 종속 관계를 만족하지 않는 정규형
함수적 종속:결정자 → 종속자
속성 x값 각각에 대해 시간 관계없이 속성 Y값 오직 연관
X→Y Y는 X에 함수적 종속, X는 Y에 함수적 결정
이행적 함수 종속 관계 : X→ Y이고 Y → Z일 때 X → Z를 만족하는 관계
- BCNF(Boyce-Codd 정규형) 모든 결정자가 후보키인 정규형,
모든 BCNF가 종속성을 보존하는 것은 아님 (강한 제3정규형, 보이스/코드 정규형)
- 4NF(제4정규형) 다치 종속이 성립하는 경우(R의 모든 속성이 A에 함수적 종속 관계)
- 5NF(제5정규형) 조인 종속이 R의 후보키를 통해서만 성립
2. 반정규화(Denormalization)
- 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위
- 데이터의 일관성 및 정합성이 저하될 수 있음
2.1) 반정규화 방법 20년 1, 2회 기출
(1) 테이블 통합: 1:1 관계 | 1:N 관계 | 슈퍼타입/서브타입 {테이블 통합}
(2) 테이블 분할: 수평 분할, 수직 분할 → 기본키의 유일성 관리가 어려워짐
(3) 중복 테이블 추가: 집계 테이블 | 진행 테이블 | 특정 부분만을 포함하는 테이블 {추가}
(4) 중복 속성 추가: 사용 빈도 높은 속성을 하나 더 추가하는 것
'Challenges > 정보처리기사' 카테고리의 다른 글
[정보처리기사]3.데이터베이스 구축/물리 데이터베이스 설계/데이터베이스 저장 공간 설계 (0) | 2021.09.15 |
---|---|
[정보처리기사]3.데이터베이스 구축/물리 데이터베이스 설계/시스템 카탈로그,뷰 (0) | 2021.09.14 |
[정보처리기사]3.데이터베이스 구축/논리 데이터베이스 설계/관계대수 & 관계해석 (0) | 2021.09.08 |
[정보처리기사]3.데이터베이스 구축/논리 데이터베이스 설계/관계형 데이터모델 (0) | 2021.09.07 |
[정보처리기사]3.데이터베이스 구축/논리 데이터베이스 설계/E-R(개체-관계) 모델 (0) | 2021.09.06 |