논리적 모델링과 데이터베이스 정규화의 이해
데이터베이스에서 데이터를 효과적으로 구성하는 것의 중요성을 간략하게 소개합니다.
데이터베이스 설계에서 논리적 모델링과 정규화가 어떻게 중요한 역할을 하는지 알아보겠습니다.
논리적 모델링
- 개념적 설계에서 추출된 실체와 속성들으미 관계를 구조적으로 설계하는 단계
- 모든 데이터를 정규화(Normalization)하여 모델링
- 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분
논리적 데이터 모델 종류
- 계층형 데이터 모델(Hierarchical Data Model)
- 네트워크(망)형 데이터 모델(Network Data Model)
- 관계형 데이터 모델(Relational Data Model)
- 객체 지향형 데이터 모델(Object Oriented Data Model)
정규화의 개념
- 관계형 데이터 베이스의 설계에서 중복을 최소화하게 데이터를 구조화
정규화의 목적
- 데이터의 중복을 최소화
- 정보의 무손실 : 정보가 사라지지 않아야 함
- 독립적인 관계는 별개의 릴레이션으로 표현
- 정보의 검색을 보다 용이하게 함
- 이상 현상 최소화
정규화의 장/단점
장점 |
- 데이터 중복의 최소화 - 저장 공간의 효율적 사용 - 릴레이션에서 발생 가능한 이상 현상 제거 |
단점 |
- 처리 명령의 복잡 - 실행 속도 저하 - 분리된 두 릴레이션 간 참조 무결성 유지를 위한 노력 필요
|
이상 현상(Anomaly) (★)
- 데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생
이상의 종류 (★)
- 삽입 이상
- 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
- 삭제 이상
- 한 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실
- 갱신 이상
- 튜플의 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
함수적 종속(Functional Dependency)
- 어떤 릴레이션 R의 X와 Y를 각각 속성의 부분집합이라고 가정했을 때
- X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 함.
- 이를 기호로 표현하면 X→Y
함수적 종속 관계
- 완전 함수적 종속(Full Functional Dependency)
- 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우
완전 함수 종속 - 기본키가 하나일 때
완전 함수 종속 - 기본키가 두개일 때
- 부분 함수적 종속(Partial Functional Dependency)
- 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 속성 중 일부만 종속되는 경우
부분 함수적 종속
- 이행적 함수 종속(Transitive Functional Dependecy)
- X→Y, Y→Z 이러한 종속 관계가 있을 경우, X →Z가 성립되는 경우
이행적 함수 종속
데이터베이스 정규화 (Normalization)
정규화 과정 (★)
정규화 단계
- 제 1정규형(1NF)
- 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있다.
- 제 2정규형(2NF)
- 부분 함수적 종속을 모두 제거하여 완전 함수적 종속으로 만든다.
- 보이스/코드(BCNF) 정규형
- 제 4정규형(4NF)
- 제 5정규형(5NF) 정규형
이 구조를 따르면 데이터베이스 설계 원리에 대한 깊은 이해를 원하는 사용자 모두에게 논리 모델링 및 정규화에 대한 포괄적인 가이드를 독자에게 제공할 수 있습니다. 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!