Notice
Recent Posts
Recent Comments
Link
yurim45 님의 블로그
4. 논리적 모델링과 정규화 본문
1. 논리적 모델링 개요
(1) 논리적 모델링의 개념과 특징
- 논리적 모델링(Logical Modeling) 의 개념
- 개념적 모델링을 기반으로 키, 속성, 관계 등 데이터의 논리적 구조를 정확하게 정의하는 과정
- 관계형 데이터베이스의 논리적 구조에 적합하도록 변환하고 정체하는 과정
- 논리적 모델링의 일반적인 특징
- 특정 DBMS 혹은 물리적 구현에 독립적인 설계
- 엔터티를 테이블로 변환
- 속성을 칼럼(속성)으로 변환
- 기본키와 외래키 설정
- 제약 조건 설정
⇒ 정규화를 통한 데이터 중복 최소화, 데이터 이상현상 방지, 무결성 및 일관성 유지
- 논리적 모델의 주요 고려사항
- 엔터티 정제: 유사한 엔터티의 통합 및 분리를 통한 구조화
- 식별자(Key) 선정: 릴레이션(테이블)의 튜플(레코드)를 대표하는 식별자(Key) 선정
- 관계 설정/해소: 교차 엔터티를 이용하여 M:N 관계 재 설정(해소)
- 다중값 속성 해소: 다중값 속성을 별도의 릴레이션으로 분리, 원래 엔터티의 기본키를 외래키로 포함
- 정규화 및 제약조건: 데이터 중복제거 및 이상현상 해소, 무결성 검사 및 제약 사항 적용
- 키(Key)의 종류와 특징
- 기본키(Primary Key)
- 주식별자, 여러 개의 후보키 중에서 하나를 선정
- 테이블을 대표하는 키
- 대표성
- 후보키(Candidate Key)
- 키의 특성인 유일성과 최소성을 만족하는 키
- 슈퍼키(Super Key)
- 유일성은 만족하나 최소성을 만족하지 않는 키
- 대체키(Alternative Key)
- 후보키 중 기본키로 선정되지 않는 키
- 기본키를 대체할 수 있는 키
- 외래키(Foreign Key)
- 한 릴레이션의 속성(집합)이 다른 릴레이션의 기본키로 이용되는 키
- 기본키(Primary 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 |