Skip to content

Commit

Permalink
feat: 데이터베이스 정규화 02
Browse files Browse the repository at this point in the history
  • Loading branch information
choijy1705 committed Sep 16, 2021
1 parent 7d2a631 commit c6735cc
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions database/q6_정규화에 대하여 설명해주세요/02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## 정규화란?

관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화 하는 프로세스. 데이터의 중복성을 제거, 사입/삭제/갱신 이상을 제거하는 것이 핵심

## 데이터베이스 정규화의 목적

- 중복 데이터를 최소화하여 데이터 불일치 위험 최소화
- 수정, 삭제 시 이상현상을 최소화하여 데이터 구조의 안정성을 최대화
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다
- 데이터 삽입시 릴레이션 재구성에 대한 필요성을 줄인다
- 효과적인 검색 알고리즘을 생성할 수 있다

## 이상 현상

정규화 되지 않는 경우 발생하는 현상

- 데이터 중복성으로 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입, 삭제, 갱신 이상

## 데이터베이스 정규화 단계

- 1정규형 : 원자 값으로 구성
- 2정규형 : 부분 함수 종속 제거
- 3정규형 : 이행 함수 종속 제거
- 보이스-코드 정규형 : 결정자 함수 종속
- 4정규형 : 다치(다중 값) 종속성 제거
- 5정규형 : 조인 종속성 제거

## 1정규화

1. 모든 Domain 이 원자값 만으로 되어 있다
2. 반복되는 그룹이 나타나지 않는다
3. 기본키를 이용하여 관련 데이터의 집합을 고유하게 식별할 수 있다.
- 테이블 내의 속성 값은 원자값위반

![image](https://user-images.githubusercontent.com/63634505/133640725-58d9ccc4-bad3-4593-8d74-f74aee911a86.png)

- 반복되는 그룹 (2 위반)

![image](https://user-images.githubusercontent.com/63634505/133640824-eb3f6e51-2b2a-4d35-985c-0c21c46524ab.png)

- 기본키를 이용하여 데이터 집합 고유 식별 불가

![image](https://user-images.githubusercontent.com/63634505/133640902-0be09a31-1990-4c3c-9279-97f6a3bd2b33.png)

## 2정규화

제2 정규화를 수행하면 테이블의 모든 컬럼이 완전 함수적 종속을 만족한다

- 함수적 종속 : X의 값에 따라 Y 값이 결정될 때

![image](https://user-images.githubusercontent.com/63634505/133640290-52848acc-88f5-4a44-8bcb-f756dc42430e.png)

![image](https://user-images.githubusercontent.com/63634505/133640398-0a27f1be-14be-4c32-9c44-bfa24b935023.png)

![image](https://user-images.githubusercontent.com/63634505/133640512-4998e563-5c48-4ea5-92fb-b4c67ca134ad.png)

## 3정규화

1. Relation 이 2정규화 되었다.
2. 기본키가 아닌 속성들은 기본키에만 의존해야한다.
- 2번째 조건 위반

![image](https://user-images.githubusercontent.com/63634505/133640064-55aa6101-2513-428c-9e81-cc65dde8e2c9.png)
Empty file.

0 comments on commit c6735cc

Please sign in to comment.