본문 바로가기
  • Be curious
일상 기록

2024 SQLD 시험 준비 - 개념 정리 4편 <성능 데이터 모델링, 정규화, 반정규화>

by Minbook 2024. 3. 8.

 

SQLD 시험준비 (벼락치기) 개념정리 4번째 글

개념정리 1 ~ 3편은 아래 글을 참조

 

2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해>

1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다. 물론 개인적으로 진짜 바쁘긴 했지만, 이렇게 코앞에 다가올 때까지 하지 않을 줄 몰랐다. 사실 사이트에 가서

minbook.tistory.com

 

2024 SQLD 시험 준비 - 개념 정리 2편 <엔터티, 속성, 관계>

SQLD 시험준비 (벼락치기) 개념정리 2번째 글 첫 번째 글인 정리는 아래를 참고. 2024.03.03 - [일상 기록] - 2024 SQLD 시험 준비 - 개념 정리 1편 엔터티 (Entity) 엔터티 (Entity) 정의 및 개념 데이터의 집합

minbook.tistory.com

 

2024 SQLD 시험 준비 - 개념 정리 3편 <식별자>

SQLD 시험준비 (벼락치기) 개념정리 3번째 글 개념정리 1, 2편은 아래 글을 참조 2024 SQLD 시험 준비 - 개념 정리 1편 1월 말일에 SQLD 시험을 등록하고 한 달이 지났는데 아직 공부 시작을 하지 않았다.

minbook.tistory.com

 

성능 데이터 모델링 개요

모델링 시 최대한 중복 데이터를 허용하지 않아야 저장공간 효율적 사용 & 업무 프로세스 성능 UP

→ 중복 데이터를 허용하지 않는 방식으로 테이블을 설계하는 방식 = 정규화 (필수)

  • 성능 데이터 모델링: DB 성능 향상을 위한 사항이 데이터 모델링에 반영되도록 하는 것
  • 수행 시점: 분석 / 설계 단계 (늦어질수록 재업무 비용 증가)
  • 고려 사항: 정규화 수행, DB 용량 산정 & 트랜잭션 유형 파악 → 반정규화 수행

 

정규화(DB Normalization) 개념

  • 하나의 엔터티에 많은 속성 → 엔터티 조회마다 많은 양 데이터가 조회됨 : 최소한 데이터만을 하나의 엔터티로 넣는 데이터 분해 과정
  • 데이터 일관서으 최소한의 데이터 중복, 최대한의 데이터 유연성 과정
  • 데이터 중복을 제거 & 데이터 모델의 독립성 확보
  • 데이터 이상현상 (anomaly) 줄이기 위한 데이터베이스 설계 기법
  • 엔터티를 상세화하는 과정 → 논리 데이터 모델링 수행 시점에서 고려됨
  • 제 1 정규화 - 제 5 정규화 (실질적으로는 제3 정규화까지만 진행)

 

이상 현상 (Abnormality)

  • 정규화를 하지 않아 발생하는 현상 (삽입 이상 / 갱신 이상 / 삭제 이상)
  • 삽입 이상: 특정 인스턴스가 삽입될 때 정의되지 않아도 될 속성까지 반드시 입력해야 하는 현상 (불필요한 값까지 입력해야 함)
  • 갱신 이상: 데이터 갱신 시 일부 데이터만 갱신되며 일관성 유지되지 않음
  • 삭제 이상: 관련 정보를 같이 삭제해야 하는 현상, 행 삭제 시 원하지 않는 연쇄 삭제 발생

 

정규화 단계

제 1 정규화 (1NF)

  • 테이블의 컬럼이 원자성을 갖도록 분해함 (원자성을 확보하는 단계)
  • 기본키를 설정하는 과정
  • 한 속성이 하나의 값을 갖는 특성
  • 하나의 행, 컬럼에 하나의 값만 있도록 분리함

제 2 정규화 (2NF)

  • 완전 함수 종속을 만들도록 테이블을 분해 / 부분 함수 종속성을 제거
  • 완전 함수 종속: 기본키를 구성하는 모든 컬럼의 값이 다른 컬럼을 결정짓는 상태
  • 기본키의 부분집합이 다른 컬럼과 1:1 대응을 갖지 않는 상태
  • 예) 기본키로 결정되지 않는 값, 부분 함수 종속성을 가짐 = 완전 함수 종속을 위배함

제 3 정규화 (3NF)

  • 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분리 (이행 함수 종속성 제거)
  • 이행적 종속: A → B, B → C 의 관계가 성립할 때, A → C 관계가 성립됨
  • 이 상태에서 (A, B)와 (B, C) 로 분리하는 것 = 제 3 정규화

--- 아래부터는 시험에 자주 등장하진 않음 ---

 

제 4 정규화

  • 여러 컬럼들이 하나의 컬럼으로 종속되는 경우 분해하여 다중값 종속성 제거

제 5 정규화

  • 조인에 의해서 종속성 발생되는 경우 분해

 

--- 2024년 개정부터 아래 내용은 제외된 것으로 보이지만 개념상 정리 ---

 

반정규화 (역정규화, De-Normalization) 개념

  • 데이터베이스 성능 향상 목적으로 데이터 중복을 허용, 조인을 줄이기 위한 목적
  • 시스템 성능 향상
  • 다량 범위의 잦은 처리, 요약/집계 정보 자주 요구, 수행 속도 저하 등 대량의 데이터가 자주 활용될 때 시행

 

반응형

댓글