본문 바로가기
정보처리기사

정규화

by 두두리안 2022. 7. 4.
728x90

목차

1.함수종속(Functional Dependency)
2.관계대수
3.정규화
4.정규형(NF: Normal Form)

1.함수종속(Functional Dependency)

1-1. 함수 종속의 개념

* 관계형 모델을 설계할 때 가장 중요한 요소로서 개체 내에 존재하는 속성 간의 종속성을 의미
* 3가지의 종속(Functional, Multivalued, Join)중 가장 대표적인 종속

1-2. 결정자(Determinant)와 종속자(Dependent)

* 결정자는 관계된 속성의 종속성을 규명할때 기준이 되는 속성
* 종속자는 결정자에 의해 값이 정해지는 속성
* 종속자는 결정자에 의해 종속
* 결정자 -> 종속자 또는 종속자 = 결정자 등으로 표현

1-3. 폐포(Closure)

* 해당 속성에 종속되었다고 추론 가능한 모든속성의 집합
* 특정 속성의 폐포에는 자기자신이 포함
* 회원번호 속성의 폐포는 회원번호, 이름, 연락처이다
* 함수 종속일때의 추론규칙
    - 반사규칙: B ⊂ A 이면 A -> B
    - 첨가규칙: A -> B 이면 AC -> BC
    - 이행규칙: A -> B 이고 B -> C 이면 A -> C
    - 분해규칙: A -> BC 이면 A -> B 또는 A -> C
    - 결합규칙: A -> B 이고 A -> C 이면 A -> BC

2.관계대수

2-1. 관계대수의 개념

* 연산자 또는 연산 규칙을 사용하여 기술하는 절차식 언어
* 주어진 관계로부터 원하는 데이터와 그 데이터를 유도하는 연산자
* 릴레이션을 조작하여 특정 릴레이션을 만들어 낸다
* 일반 집합 연산과 순수 관계 연산자로 구분된다

2-2. 일반 집합 연산자

1. 합집합(Union)
    * 두 릴레이션의 차수가 같아야 하며, 대응되는 속성의 도메인도 같아야 한다
    * 중복되는 튜플은 결과에서 제외된다
    * 두 릴레이션을 비교하여 누락되거나 추가된 정보를 확인
2. 교집합(Intersection)
    * 두 릴레이션의 차수가 같아야 하며, 대응되는 속성의 도메인도 같아야 한다
    * 두 릴레이션에서 동일한 데이터를 추출할때 사용한다
3. 차집합(Difference)
    * 두 릴레이션의 차수가 같아야 하며, 대응되는 속성의 도메인도 같아야 한다
    * 차집합의 결과는 항상 릴레이션 R의 부분집합이다
4. 곱집합(Cartesian Product)
    * 두 릴레이션의 튜플을 합쳐서 순서쌍의 집합을 만드는 연산
    * 두 릴레이션의 차수와 도메인이 같이 않아도 된다
    * 결과 릴레이션의 튜플의 수는 두 릴레이션의 튜플의 곱이고 속성의 수는 속성의 합이다

2-3. 순수 관계 연산자

1. SELECT
    * 하나의 릴레이션에서 조건에 맞는 튜플을 분리하는 연산
    * 하나의 릴레이션에서 수평적(튜플)부분 집합을 취한다
2. PROJECT
    * 하나의 릴레이션에서 조건에 맞는 속성을 분리하는 연산
    * 하나의 릴레이션에서 수직적(속성)부분 집합을 취한다
3. 세타조인(Θ-join)
    * 릴레이션 R과 S의 속성이 포함된 조건을 성립하는 요소
4. 자연조인(Natural-join)
    * 두 릴레이션은 적어도 한개 이상이 같은속성이 존재해야 한다
5. 디비전(Division)
    * 릴레이션 S의 모든 튜플에 연관되어 있는 릴레이션 R의 요소중 릴레이션 S와 중복되지 않은 속성만 출력

2-4. 질의 최적화의 일반적인 규칙

* 질의(Query)는 데이터베이스에 존재하는 데이터를 사용자가 원하는 조건을 통해 조회, 생성, 변경, 삭제할수 있는 기능을 지원
* 쿼리는 관계 대수를 바탕으로 만들어지며 최적화를 고려한다
* 사용방법에 따라 다양하기 때문에 경험에 의한 최적화 규칙이 우성
    - 추출(project) 연산을 일찍 수행
    - 선택(select) 연산은 가급적 일찍 수행
    - 조인(join) 연산은 가급적 마지막에 수행

3.정규화

3-1. 정규화의 개념

* 데이터 모델링의 단계중 가장 중요한 단계로써 논리 데이터 모델링을 상세화 하는 단계
* 정확성, 일치성, 단순성, 비중복성, 안정성이 보장
* 하나의 릴레이션에 하나의 의미만 존재할수 있도록 릴레이션을 분해하는 과정

3-2. 정규화의 목적

* 중복되는 튜플없이 효과적인 데이터 표현 및 저장이 가능하도록 구성
* 비교적 간단한 연산자로 효과적인 연산이 가능하도록 구성
* 새로운 데이터에 의해 릴레이션이 영향을 받지 않도록 구성
* 데이터 검색과 추출등의 효율성을 높여 DBMS의 성능향상에 기여하도록 구성

3-3. 정규화의 필요성

* 저장 공간을 최소화한다
* 불일치를 최소화한다
* 자료구조를 안정화한다
* 이상현상을 방지한다

3-4. 정규화의 장단점

1. 정규화의 장점
    * 데이터의 정확성이 높아진다
    * 데이터 구축이 유연해진다
2. 정규화의 단점
    * 물리적 접근이 복잡해진다
    * 다양하고 많은양의 조인이 발생

3-5. 정규화 과정

1. 비정규형: 정규화가 전혀 진행되지 않은 상태
2. 제1정규형: 도메인이 원자값만 가지도록 분해
3. 제2정규형: 부분 함수종속을 제거
4. 제3정규형: 이행적 함수종속을 제거
5. 보이스코드 정규형: 결정자가 후보키가 아닌 종속을 제거
6. 제4정규형: 다치 종속을 제거
7. 제5정규형: 후보키를 통하지 않는 조인 종속을 제거

4.정규형(NF: Normal Form)

4-1. 정규형의 개념

* 특정 조건에 만족하는 릴레이션 스키마의 형태를 의미
* 어떠한 관계구조가 바람직한 것인지, 바람직하지 못한 관계를 어떻게 분해해야 하는지 판단기준 제공
* 기본정규형: 1NF, 2NF, 3NF, BCNF
* 고급정규형: 4NF, 5NF

4-2. 제1정규형(1NF)

* 원자성을 가지지 못하는 반복 그룹 속성이 제거된 릴레이션 스키마
* 릴레이션의 모든 속성 및 도메인이 원자성을 가진다면 제1정규형에 해당

4-3. 제2정규형(2NF)

* 부분 함수 종속을 제거한 릴레이션 스키마 이다
* 기본키가 아닌 모든 속성들이 기본키에 완전 함수종속이면 제2정규형에 속한다
* 완전 함수 종속관계를 만들기 위해 릴레이션을 기본키 중심으로 분해

4-4. 제3정규형(3NF)

* 이행적 함수 종속(Transitive Dependency)을 제거한 릴레이션 스키마
* 이행적 함수 종속: (A->B, B->C)  A->C

4-5. 보이스 코드 정규형(BCNF: Boyce-Codd NF)

* 결정자이면서 후보키가 아닌 함수종속을 제거한 릴레이션 스키마
* 모든 결정자가 후보키이면 BCNF에 속한다

4-6. 제4정규형(4NF)

* 다치 종속을 제거한 릴레이션 스키마

4-7. 제5정규형(5NF)

* 후보키를 통하지 않은 조인종속을 제거한 릴레이션 스키마
* 릴레이션에 존재하는 모든조인 종속성이 릴레이션의 후보키를 통해서만 성립

참고자료 : 이기적 환상콤비 정보처리기사

728x90

'정보처리기사' 카테고리의 다른 글

병행제어(Concurrency Control)와 로킹(Locking)  (0) 2022.07.05
인덱스(Index)와 뷰(View)  (0) 2022.07.04
데이터제어어(DCL)  (0) 2022.07.03
데이터조작어(DML)  (0) 2022.07.03
데이터정의어(DDL)  (0) 2022.07.02