ss__jae2
타닥타닥 IT
ss__jae2
전체 방문자
오늘
어제

Github

  • 타닥타닥 IT (179)
    • 웹개발 (86)
      • JAVA (23)
      • DBMS (6)
      • HTML (9)
      • CSS (7)
      • JavaScript (12)
      • JSP (14)
      • Spring (15)
    • FrontEnd (63)
      • HTML (5)
      • CSS (12)
      • JavaScript (16)
      • React.js (14)
      • Node.js (16)
    • API (5)
    • SQLD (21)
      • SQLD (1)
      • 1과목 데이터 모델링의 이해 (11)
      • 2과목 SQL 기본 및 활용 (9)
    • CS Study (4)
      • 네트워크 (4)

공지사항

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
ss__jae2

타닥타닥 IT

[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 2절 정규화와 성능
SQLD/1과목 데이터 모델링의 이해

[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 2절 정규화와 성능

2022. 3. 23. 17:34
반응형

1. 정규화

  • 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다.
  • 정규화 : 데이터 분해 과정, 이상현상 제거
  • 정규형 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성

정규화 수행과 성능

  • 함수적 종속성 : 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음
  • 다치 종속 : 여러 칼럼이 동일한 결정자의 종속자 일 때

2. 정규화 이론

  • 정규화 이론
    • 1차, 2차, 3차, 보이스코드 정규화는 함수적 종속성에 근거
    • 4차 정규화는 다치 종속을 제거
    • 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함
  • 1차 정규화
    • 속성의 원자성 확보
    • 다중값 속성을 분리함
  • 2차 정규화
    2차 정규화
    • 부분 함수 종속성 제거
    • 일부 기본키에만 종속된 속성을 분리함
    • 기본키가 하나의 칼럼일 때 생략 가능
  • 3차 정규화
    3차 정규화
    • 이행 함수 종속성 제거
    • 서로 종속관계가 있는 일반 속성을 분리함
    • 주식별자와 관련성이 가장 낮음
  • 보이스코드 정규화(BCNF; Boyce-Codd Normal Form)
    • 후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리함
  • 4차 정규화, 5차 정규화
    • 다치 종속 분리
    • 결합 종속 분리

3. 정규화와 성능

  • 정규화는 입출력 데이터의 양을 줄여 성능을 향상시킴
  • 정규화로 인한 성능 향상
    - 입력/수정/삭제 시 성능은 항상 향상됨

    • 유연성 증가: High Cohesion & Loose Coupling 원칙에 충실해짐
    • 재활용 가능성 증가: 개념이 세분화됨
    • 데이터 중복 최소화
  • 정규화로 인한 성능 저하
    - 조회 시 처리 조건에 따라 성능 저하가 발생할 수도 있음

    • 데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨
      • 반정규화로 해결 가능
      • 조인이 발생하더라도 인덱스를 사용하여 조인 연산을 수행하면 성능 상 단점이 거의 없고, 정규화를 통해 필요한 인덱스의 수를 줄일 수 있음
      • 정규화를 통해 소량의 테이블이 생성된다면 성능 상 유리할 수 있음
반응형
저작자표시 (새창열림)

'SQLD > 1과목 데이터 모델링의 이해' 카테고리의 다른 글

[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 4절 대량 데이터에 따른 성능  (0) 2022.03.24
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 3절 반정규화와 성능  (0) 2022.03.24
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 1절 성능 데이터 모델링의 개요  (0) 2022.03.23
[SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 5절 식별자  (0) 2022.03.22
[SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 4절 관계  (0) 2022.03.21
    'SQLD/1과목 데이터 모델링의 이해' 카테고리의 다른 글
    • [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 4절 대량 데이터에 따른 성능
    • [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 3절 반정규화와 성능
    • [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 1절 성능 데이터 모델링의 개요
    • [SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 5절 식별자
    ss__jae2
    ss__jae2

    티스토리툴바