정규화

04.Database 2020. 6. 8. 11:23
728x90
반응형

관계대수

(Relational Algebra)

 

합집합(∪),교집합(∩),차집합(-),카티션프로덕트(X)

셀렉트,프로젝트,조인,디비전,리네임셀프조디 유인디카

 

[개념] RDB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적언어

[유형] 1) 순수관계연산 - RDB에 적용가능하게 특별히 개발

SELECT(σ), PROJECT(π), JOIN(⋈), DIVISION(÷)

2) 집합연산 - 수학적 이론집합에서 출발

UNION, DIFFERENCE, INTERSECTION, CARTESIAN PRODUCT

 

σ(조건)(R) , R = 릴레이션 이름

π(속성리스트)( R)

R ⋈ 키속성 r = 키속성 s S (키속성 r = 릴레이션 R의 속성, 키속성 s = 릴레이션 S의 속성)

R[속성r ÷ 속성s]S (속성r은 릴레이션 R의 속성, s는 릴레이션 S의 속성, 속성 r = 속성 s)

 

함수적 종속성

 

기준 값:결정자,

종속되는 값:종속자

 

[개념] 애트리뷰트들 사이의 관계에 대한 제약조건으로 애트리뷰트 A가 B의 결정자이면 B는 A에 함수적으로 종속 (A->B)

o 완전함수종속 : XY→Z일 때 X→Z, Y→Z가 성립하지 않는 경우

o 부분함수종속 : XY→Z일 때 X→Z 또는 Y→Z가 성립, 제2정규화 필요

o 이행함수종속 : X→Y이고 Y→Z일 때 X→Z가 성립하는 경우, 제3정규화 필요

o 결정자함수종속 : X→Y이고 X가 후보키가 아닌 경우, BCNF 정규화 필요

o 다중치종속(MVD) : A,B,C 속성 R에서 속성 A가 B값 집합 결정, C는 독립적 : A->>B

o 조인종속성(JD) : R의 부분집합 A,B..Z, A,B..Z를 조인한 결과가 R이 같은 때 : *(A,B..Z)

 

X→Y에서 Y에 대응되는 X는 하나. X가 기본키이면 Y는 X에 함수적으로 종속

- 완전 함수종속

- 부분 함수종속

- 이행 함수종속

- 결정자 함수종속

- 다중치 종속

- 조인 종속

 

암스트롱 공리(axiom)

 

함수적종속성, 반가이결분의

반사(Y가 X의 부분집합이면 X->Y)

증가(X->Y이면 XZ->YZ)

이행(X->Y이고, Y->Z이면 X-Z)

결합(X->Y이고, X->Z이면 X-YZ)

분해(X->YZ이면 X->Y이고 X-Z)

의사이행(X->Y이고 YZ->W이면 XZ->W)

 

[개념] F의 폐포(closure, F+)를 구하기 위한 추론 규칙으로 어떤 릴레이션 R에 존재하는 함수종속에 대한 추론규칙(inference rule)

[기본]

1)반사:Y가 X의 부분집합 X->Y 2)증가:X->Y이면 XZ->YZ

3)이행:X->Y,Y->Z 면 X->Z

[유도] 4)결합:X->Y,Y->Z 면 X->YZ   5)분해:X->YZ 면 X->Y, X->Z

6)의사이행:X->Y,YZ->W 면 XZ->W

 

반사는 그냥…

증가는 ㅈ추가(Z추가)

이행은 이(2개인것)를 제거

결합은 X는 그대로 우변을 Merge(X->YZ)

분해는 결합의 역순(X-YZ로 시작)

의사이행(X->Y로시작)

 

순환적 폐포

(recursive closure)

 

내부참조, BOM관계대수로서는 표현할 수 없음

 

[개념] 동일한 테이블에서 튜플들간의 순환적 관계(Recursive Relationship)를 질의하는데 사용. 관계대수로서는 표현할 수 없음

[사례] emp테이블의 사원튜플에서 상사 또는 부서코드의 컬럼을 추가하여 재귀호출로 조회

 

[자기참조관계(BOM)] 부품이 자기를 참조,  (1:1, 1:M, M:N)

[개념] 하나의 Entity타입내에서 Entitiy-Entitiy간 관계를 맺고 있는 형태

[유형] 복합형(다중 entity), 통합형(단일 entity)

 

정규화

 

무중분, FD

3원칙(무손실,중복성감소,분리의원칙)

반부이결다후

 

[개념] 이상현상을 야기시키는 속성간의 종속관계를 제거하기 위해 릴레이션을 작은 여러 릴레이션으로 무손실 분해하는 과정

[1차]완전함수종속 (반복제거) ->갱신(삽입,수정,삭제)이상 발생방지

[2차]부분함수종속제거(기본키에 종속적이지 않은 속성분리), 다중키의 부분집합키가 다른 속성을 결정

[3차]이행함수종속성 제거, 기본키가 아닌 속성과 다른 속성과의 관계가 존재함을 의미

[BCNF]결정자(후보키 아닌)종속성 제거

- 3NF만족하면서 추가로 해당 릴레이션의 모든 결정자는 후보키여야 한다.

 

[4차] 다중종속 속성 분리

[5차] 결함 종속성 제거(후보키를 통하지 않은 종속 제거)

[사례] 결정자(민번) -> 종속자(이름,주소,성별)

[절차] 전제조건+정규형 - 1:N 식별, 비식별 생성

중복->비정규형->1정규형+부분종속->2정규형+이행종속

 

728x90

'04.Database' 카테고리의 다른 글

DB JOIN  (0) 2020.06.08
DB 유형 - DBaaS  (0) 2020.06.08
정규화 - 연결 함정 (Connection Trap)  (0) 2020.06.08
Migration - DB 성능개선 - 튜닝, 리팩토링, 마이그레이션  (0) 2020.06.08
동시성 제어 - MVCC  (0) 2020.06.08
Posted by Mr. Slumber
,