Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Ga0's

SQLD_정규화 본문

Study IT/SQLD

SQLD_정규화

Ga0Kwon 2023. 4. 28. 21:45

정규화와 성능

1. 정의

  ▪ 다양한 유형의 검사를 통해 데이터 모델을 좀 더 구조화하고 개선시켜 나가는 절차이며, 중복을 제거하고, 관심사별로 처리되는 경우가 많아 성능이 향상된다.

  ▪ 정규화 : 데이터 분해 과정, 이상현상(삽입이상, 갱신이상, 삭제이상) 제거

  ▪ 정규형 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성

  → 일반적으로 정규화를 수행해야 데이터 처리의 성능이 향상되고, 데이터 조회처리 트랜잭션시에 성능 저하가 나타날 수 있다.

  ▪ 함수적 종속 : 결정자와 종속자의 관계로서, 결정자의 값으로 종속자의 값을 알 수 있는 것을 말한다.

  ▪ 다치 종속 : 여러 칼럼이 동일한 결정자의 종속자인 것을 말한다.

 

2. 이론

도부이결다조!!

 제 N 정규화  수행하는 과정(내용)
비정규 릴레이션, 제 1정규화 메인이 원자 값, 다중 속성을 분리
1NF(제 1 정규형), 제 2정규화 분적 함수 종속 제거, 일부 기본키에만 종속된 속성을 분리, 기본키가 하나의 칼럼일 때 생략 가능
2NF(제 2 정규형), 제 3정규화 행적 함수 종속 제거, 서로 종속관계가 있는 일반 속성을 분리, 주식별자와 관련성이 가장 낮음
3NF(제 3 정규형),
보이스코드 정규화
(BCNF;
 Boyce-Codd Normal Form)
정자이면서 후보키가 아닌 것 제거, 후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리
BCNF, 제 4정규화 치 종속 제거
4NF(제 4 정규형), 제 5정규화 인 종속성 이용
5NF(제 5 정규형)  

  ▪ 1, 2, 3, 보이스코드 정규화는 함수적 종속성에 근거한다.

  ▪ 4차 정규화는 다치 종속을 제거한다.

  ▪ 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행한다.

  ▪ 수행하는 과정은 만족한다는 것이 아니라 그 단계에 그러한 정규 과정을 거친다는 것이다. (다음 정규화를 위해, 즉 같은 행에 있는 것은 만족한다는 뜻은 아니다.)

 

3. 성능

  ▪ 정규화는 입출력 데이터의 양을 줄여 성능을 향상시킨다.

  ▪ 정규화로 인한 성능 향상

     ▫ 입력/수정/삭제 시 성능은 항상 향상

     ▫ 유연성 증가 : High Cohesion & Loose Coupling(높은 응집도, 낮은 결합도)원칙에 충실해짐

     ▫ 재활용 가능성 증가 : 개념이 세분화 됨

     ▫ 데이터 중복 최소화

 

정규화로 인한 성능 저하

    ▪ 조회 시 처리 조건에 따라 성능이 저하될 수 있다

     ▫ 데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨

         ▫ 반정규화로 해결이 가능하다.

         ▫ 조인이 발생하더라도 인덱스를 사용하여 조인 연산을 수행하면 성능 저하가 거의 없고, 정규화를 통해 필요한 인덱스의 수를 줄일 수 있다.

         ▫정규화를 통해 소량의 테이블이 생성된다면 성능 상 유리할 수 있음. 

7

'Study IT > SQLD' 카테고리의 다른 글

SQLD_대량 데이터에 따른 성능  (0) 2023.04.30
SQLD_반정규화  (0) 2023.04.28
SQLD_성능 데이터 모델링의 개요  (0) 2023.04.27
SQLD_식별자  (0) 2023.04.27
SQLD_관계(Relationship)  (0) 2023.04.26