관계대수 및 관계해석 / 정규화 및 반정규화

2023. 2. 19. 18:34정처기 필기/3과목 - 데이터베이스 구축

관계대수 및 관계해석

 

1. 관계대수

* 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어

 

* 순수관계 연산자

 

* 일반적인 연산자

 

2. 관계해석

- 관계 데이터 모델 제안자 코드가 수학의 술어해석에 기반을 두고 관계 데이터베이스를 위해 제안

- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성

- 튜플 관계해석, 도메인 관계해석

- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다.

- 관계대수로 표현한 식은 관계해석으로 표현이 가능하다.

 

 

3. 관계대수와 관계해석 비교

  관계대수 관계해석
특징 절차적 언어 비절차적 언어
술어해석(Predicate Calculus) 기반
목적 어떻게 유도하는가 ? (How) 무엇을 얻을 것인가 ? (What)
종류 순수관계 연산자, 일반집합 연산자 튜플 관계 해석, 도메인 관계 해석

 

 


정규화 및 반정규화

* 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정

* 데이터베이스의 논리적 설계 단계에서 수행

 

1. 정규화의 목적

- 데이터 구조의 안정성 및 무결성을 유지

- 어떤 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듦

- 효과적인 검색 알고리즘 생성

- 데이터 중복을 배제해 이상의 발생 방지 및 자료 저장 공간의 최소화

- 개체와 속성의 누락 여부 확인 가능

- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임

 

2. 이상(Anomaly)의 개념 및 종류

* 정규화를 거치지 않아 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못하게 발생하는 곤란한  현상

 

* 삽입 이상

  : 릴레이션에 데이터를 삽입할 때 의도와 상관없이 원하지 않은 값들도 함께 삽입

 

* 삭제 이상

  : 릴레이션에서 한 튜플을 삭제할 때 의도와 상관없는 값도 함께 삭제

 

* 갱신 이상

  : 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

 

3. 정규화의 원칙

- 정보의 무손실

- 분리의 원칙

- 데이터의 중복성 감소

 

4. 정규화 과정

정규형 설명
1NF 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형
2NF  부분 함수 종속을 제거 --> 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이 된 정규형
3NF 이행함수 종속 제거 --> ex) A->B, B->C = A->C 를 만족하는 관계
BCNF 결정자가 후보키인 정규형, 모든 BCNF가 종속성을 보존하는 것은 아니다.
4NF 다치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
5NF 릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
다대다 관계 -- > 각각 나누어줘야 함.

 

5. 반정규화 개념

* 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위

* 데이터의 일관성 및 정합성이 저하될 수 있음

 

6. 반정규화 방법

- 테이블 통합 : 1:1관계 / 1:N 관계 / 슈퍼타입, 서브타입

- 테이블 분할 : 수평분할, 수직분할 --> 기본키의 유일성 관리가 어려워진다.

- 중복 테이블 추가 : 집계 테이블 / 진행 테이블 / 특정 부분만을 포함하는 테이블

- 중복 속성 추가 : 자주 사용하는 속성을 하나 더 추가하는 것