Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

yurim45 님의 블로그

4. 논리적 모델링과 정규화 본문

개발

4. 논리적 모델링과 정규화

yurim45 2025. 3. 29. 08:35

1. 논리적 모델링 개요

(1) 논리적 모델링의 개념과 특징 

  • 논리적 모델링(Logical Modeling) 의 개념
    • 개념적 모델링을 기반으로 , 속성, 관계 등 데이터의 논리적 구조를 정확하게 정의하는 과정
    • 관계형 데이터베이스의 논리적 구조에 적합하도록 변환하고 정체하는 과정
  • 논리적 모델링의 일반적인 특징
    • 특정 DBMS 혹은 물리적 구현에 독립적인 설계 
    • 엔터티를 테이블로 변환
    • 속성을 칼럼(속성)으로 변환
    • 기본키와 외래키 설정
    • 제약 조건 설정

⇒ 정규화를 통한 데이터 중복 최소화, 데이터 이상현상 방지, 무결성 및 일관성 유지 

 

  • 논리적 모델의 주요 고려사항
    • 엔터티 정제: 유사한 엔터티의 통합 및 분리를 통한 구조화
    • 식별자(Key) 선정: 릴레이션(테이블)의 튜플(레코드)를 대표하는 식별자(Key) 선정
    • 관계 설정/해소: 교차 엔터티를 이용하여 M:N 관계 재 설정(해소) 
    • 다중값 속성 해소: 다중값 속성을 별도의 릴레이션으로 분리, 원래 엔터티의 기본키를 외래키로 포함
    • 정규화 및 제약조건: 데이터 중복제거 및 이상현상 해소, 무결성 검사 및 제약 사항 적용 
  • 키(Key)의 종류와 특징
    • 기본키(Primary Key)
      • 주식별자, 여러 개의 후보키 중에서 하나를 선정
      • 테이블을 대표하는 키
      • 대표성
    • 후보키(Candidate Key)
      • 키의 특성인 유일성과 최소성을 만족하는 키 
    • 슈퍼키(Super Key)
      • 유일성은 만족하나 최소성을 만족하지 않는 키
    • 대체키(Alternative Key)
      • 후보키 중 기본키로 선정되지 않는 키
      • 기본키를 대체할 수 있는 키
    • 외래키(Foreign Key)
      • 한 릴레이션의 속성(집합)이 다른 릴레이션의 기본키로 이용되는 키 
  • 키(Key)의 상호 관계

 

 

 

 

2. 정규화

(1) 함수적 종속성의 개념과 종류 

  • 함수적 종속성의 개념
함수적 종속성이란?
데이터들이 결정자와 종속자의 관계로 상호 종속되는 관계

 

➜ X → Y: 결정자인 X가 종속자인 Y를 결정

➜ 한 릴레이션(R)의 X → Y인 관계에서 X가 기본키가 아닐 경우 이상현상이 발생할 수 있음

 

  • 함수적 종속성의 종류

 

종류 설명
완전함수 종속성 (X,Y) → Z일때, X→Z가 아니고
Y→Z가 아니면 Z는 완전함수 종속
부분함수 종속성  (X,Y)→Z일때, X→Z이거나 Y→Z인 경우
이행함수 종속성 X→Y, X→Z 인 상황에서 Y→Z를 만족하는 경우

 

 

 

(2) 이상현상의 개념과 특징

  • 이상현상(Anomaly)의 개념
이상현상(Anomaly)이란?
데이터의 중복성으로 인해 릴레이션을 조작 시 발생하는 비합리적인 현상

 

➜ 중복된 속성, 속성 간에 종속하는 다양한 종속관계에 따라 발생하는 문제

 

 

  • 이상현상의 종류와 특징
종류 특징
갱신 이상 릴레이션에서 특정 속성값을 갱신할 경우
중복 저장된 속성값 중 하나만 변경되어,
데이터간 불일치가 발생하는 문제
삭제 이상  릴레이션에서 특정 튜플을 삭제할 경우
보유하고자 하는 정보까지도 삭제되는 현상
삽입 이상 릴레이션에 특정 튜플을 삽입하고자 할 경우
원하지 않는 (불필요한) 정보까지도 추가해야 하는 현상

 

  • 이상현상의 사례

 

 

 

 

(3) 정규화의 개념과 특징

  • 정규화(Normalization)의 개념
정규화(Normalization)란?
- 이상현상(Anomaly)을 해결하기 위해 중복을 최소화 하면서 무손실 분해하는 과정
- 함수적 종속성을 참고하여 기본적으로 하나의 종속성이 하나의 릴레이션으로 표현되도록 분해하는 과정

 

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

 

  • 정규화의 특징
    • 이상현상 해결, 일관성과 무결성 확보
    • 중복 제거로 저장 공간 회소화
    • 연관 관계를 이용한 유연한 관리

➜  정보의 무손실, 데이터 중복 최소화, 분리의 원칙 

※ 조인(Join)을 위한 정보 구성 및 활용 시 성능 저하

 

  • 정규화의 유형별 특징
1차 정규화 - 속성의 원자값 확보(Atomic Value)
- 반복되는 속성 제거, 다중값 속성의 분리
2차 정규화 - 부분함수 종속성 제거
- 릴레이션 R이 1NF이고, 릴레이션의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속
3차 정규화 - 이행함수 종속성 제거
- 릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성의 관계를 가지지 않음
- 기본키 외의 속성들 간에 함수적 종속적을 가지지 않는 경우
기타 - BCNF, 4차 정규화, 5차 정규화

 

 

  • 1차 정규화의 예: atomic 하게 적용하기

 

 

  • 2차 정규화의 예: 부분 종속성 제거하기 

 

 

 

 

  • 3차 정규화의 예: 이행적 종속성 제거하기 

 

 

 

 

 

 

3. 반정규화

(1) 정규화의 고려사항과 반정규화

  • 정규화의 고려사항
    • 정규화의 장점
      • 데이터 이상현상 제거
      • 데이터 중복 최소화
      • 입력/수정/삭제 효율화
    • 정규화 고려사항
      • 조회 시 처리 조건에 따라 성능 저하 발생
      • Join 시 성증 저하 발생
        • Join: 논리적 관계를 기준으로 둘 이상의 테이블을 연결하여 결과 집합을 만드는 과정
        •  

 

  • 반정규화(Denormalization)의 개념
반정규화(Denormalization)란?
정규화 이후 조회(질의) 성능 향상을 위하여, 일부 데이터의 중복을 허용하거나 테이블의 구조를 변경하는 작업

 

  • 반정규화의 절차

 

  • 반정규화의 주요 기법
    • 테이블 반정규화: 테이블 병합, 테이블 분할, 테이블 추가
    • 컬럼 반졍규화: 중복 컬럼 추가, 파생 컬럼 추가, 집계 컬럼 추가
    • 관계 반정규화: 중복 관계 추가

 

 

 

 

'개발' 카테고리의 다른 글

6. SQL의 기본(2)  (0) 2025.04.12
5. SQL의 기본 (1)  (0) 2025.04.05
3. 데이터 모델링의 이해  (0) 2025.03.23
02. DBMS의 설치와 활용 - MySQL, Docker  (0) 2025.03.15
01. 데이터베이스와 SQL 개요  (1) 2025.03.08