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 관계 / 슈퍼타입, 서브타입
- 테이블 분할 : 수평분할, 수직분할 --> 기본키의 유일성 관리가 어려워진다.
- 중복 테이블 추가 : 집계 테이블 / 진행 테이블 / 특정 부분만을 포함하는 테이블
- 중복 속성 추가 : 자주 사용하는 속성을 하나 더 추가하는 것
'정처기 필기 > 3과목 - 데이터베이스 구축' 카테고리의 다른 글
| 트랜잭션 / 인덱스 / 뷰 / 클러스터 (0) | 2023.02.19 |
|---|---|
| 시스템 카탈로그 / 데이터베이스 저장 공간 설계 (0) | 2023.02.19 |
| 관계형 데이터베이스의 구조 / 키(KEY) / 무결성 (0) | 2023.02.19 |
| E-R(개체-관계) 모델 / 관계형 데이터 모델 (0) | 2023.02.19 |
| 속성 / 관계 / 식별자 (0) | 2023.02.19 |