🎶 정규화에 대해 알아보자!
정규화란,
- 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 '관계형 스키마'를 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만들어 가는 과정이다.
- 정규형에는 제1정규형(1NF) 부터 제5정규형(5NF)까지 있으며, 차수가 높아질수록 만족시켜야 할 제약조건이 늘어난다.
- 정규화는 DB의 '논리적 설계 단계'에서 수행한다.
- 정규화 수준이 높아질수록 유연한 데이터 구축, 데이터의 정확성이 높아지지만, 물리적 접근이 복잡하고, 너무 많은 조인으로 인해 조회 성능이 저하될 수 있다.
(🎃 스키마란 DB에서 자료의 구조, 자료의 표현 방법, 자료간의 관계를 정의한 구조를 말한다.)
정규화의 목적은,
데이터 구조의 안정성 및 무결성을 유지하기 위함이다. 어떠한 릴레이션이라도 DB내에서 표현 가능하게 만들고, 효과적인 '검색 알고리즘'을 생성할 수도 있게 만든다. 또한, 데이터 중복을 배제해 '이상(Anomaly)'의 발생 방지 및 자료 저장 공간의 최소화가 가능하다.
여기서 이상(Anomaly)이란,
정규화를 거치지 않아 DB내에서 데이터들이 불필요하게 중복되어 '릴레이션' 조작 시 예기치 못한 곤란한상황이 발생하는 현상을 말하는데, 삽입 이상, 삭제 이상, 그리고 갱신 이상이 있다.
(🎃 릴레이션이란 정보를 구분하여 저장하는 기본 단위로써, DB 테이블을 의미한다.)
- 삽입 이상(Insertion Anomaly) : 릴레이션에 데이터 삽입 시 의도와는 다른 값들도 입력되는 현상.
- 삭제 이상(Deletion Anomaly) : 릴레이션에 한 튜플을 삭제 시 의도와는 다른 값들도 삭제되는 현상.
- 갱신 이상(Update Anomaly) : 릴레이션에 있는, 튜플에 있는 속성값을 갱신할 시 일부 튜플의 정보만 갱신되는 현상.
(🎃 튜플이란 릴레이션의 행을 구성하는 한 줄의 데이터 값을 의미하는데, 이 튜플의 개수를 '카디널리티(cardinality)'라고 부른다.)
정규화의 종류는 다음과 같다.
1NF(제1정규형)
릴레이션에 속한 모든 도메인(Domain)이 원자값만으로 되어 있는 정규형.
(🎃 도메인이란 하나의 속성이 가질 수 있는 같은 타입의 원자값들의 집합을 의미한다. 예를 들어, 고등학교 생활기록부에서의 학년의 도메인은 {1학년, 2학년, 3학년} 이다.)
2NF(제2정규형)
릴레이션이 1NF를 만족하고, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형.
3NF(제3정규형)
릴레이션이 2NF를 만족하고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형.
(🎃 이행적 종속이란 A->B 이고 B->C일 때, A->C를 만족하는 관계를 의미한다.)
BCNF(Boyce-Codd 정규형)
릴레이션의 결정자가 모두 후보키인 정규형.
(🎃 결정자는 속성 간 종속성을 정할 때 기준이 되는 값으로써, 예로 학번에 따라 학과가 정해질 때 학번을 결정자라고 한다.)
4NF(제4정규형)
릴레이션에 다치 종속 A - >> B 이 성립하는 경우 릴레이션의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형.
5NF(제5정규형)
릴레이션의 모든 조인 종속이 릴레이션의 후보키를 통해서만 성립되는 정규형.
(🎃 후보키는 유일성과 최소성을 만족하는 속성으로써, 튜플을 유일하게 구분짓는 속성값이다. 후보키들 중 하나가 기본키가 된다.)
'정보처리기사' 카테고리의 다른 글
SW 신기술 - 증발품, OGSA, SOA, SaaS, CEP, 디지털 트윈, 텐서플로, 도커, 그리고 스크래피 (2) | 2025.01.23 |
---|---|
SW 신기술 - 인공지능, 뉴럴링크, 딥 러닝, 전문가 시스템, 가상현실, 증강현실, 혼합현실, 그레이웨어, 매시업, RIA, 그리고 시맨틱 웹 (0) | 2025.01.22 |
OSI 참조 모델 - 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층 (0) | 2025.01.18 |
운영체제(OS) - Windows(GUI, PnP, OLE), UNIX, LINUX 그리고 MacOS (2) | 2025.01.17 |
데이터베이스 설계 - 개념적, 논리적, 물리적 설계 (0) | 2025.01.06 |
자료 구조 - 선형 리스트, 스택, 큐, 데크, 그리고 그래프 (0) | 2025.01.04 |
정렬(SORT) - 퀵 정렬, 힙 정렬, 합병 정렬, 기수 정렬 (0) | 2025.01.03 |
정렬(SORT) - 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬 (0) | 2025.01.02 |