2025-11-03
오늘 배운 것
데이터베이스 모델링 (Database Modeling)
Modeling 기본 개념
- 모델링(Modeling): 현실 세계의 복잡한 현상을 간단하게 표현하여 이해·분석·예측하기 위한 과정
- Database Modeling: 현실 데이터를 체계적으로 분석해 DB 구조를 설계하는 일 → 데이터의 논리적·물리적 구조 정의, 저장 효율화 및 무결성 보장
데이터베이스 모델링의 필요성
- 데이터 무결성 유지: 일관성·정확성 보장
- 중복 최소화: 저장 공간 절약
- 효율적 검색 구조 설계
- 유지보수 용이성 확보
모델링 과정 (전체 흐름)
- 요구사항 수집 및 분석
- 개념적 모델링 (ERD 작성)
- 논리적 모델링 (릴레이션 변환 및 정규화)
- 물리적 모델링 (DBMS 구현 구조 설계)
요구사항 수집 및 분석
- 자료 수집 방법: 문서, 시스템 분석, 워크샵·인터뷰, 설문조사, 프로토타입
- 분석 목적: DB가 저장해야 할 데이터, 관계, 제약조건을 명확히 정의
- 산출물
- 요구사항 명세서
- 도메인 용어 사전 (공통 개념 정립용)
개념적 데이터 모델링
- 목표: 업무 요구사항을 개체(Entity), 속성(Attribute), 관계(Relationship)로 표현
- 산출물: 개념 ERD (Entity Relationship Diagram)
▪ 개체(Entity)
- 지속적으로 저장해야 할 대상 (사원, 고객, 주문 등)
- 유형별 분류
- 유형 / 개념 / 사건
- 기본 / 중심 / 행위 엔티티
▪ 속성(Attribute)
- 엔티티의 특성 (회원번호, 이름 등)
- 종류: 기본 / 설계 / 파생 속성
▪ 키(Key)
- 엔티티 식별용 속성
- 슈퍼키 → 후보키 → 기본키 / 대체키 / 인조키
▪ 관계(Relationship)
- 두 엔티티 간의 연관성
- 1:1, 1:N, N:M (→ 관계 엔티티로 해소 필요)
- 관계 필수 여부 정의
논리적 데이터 모델링
- 개념 ERD → 관계형 데이터 모델로 구체화
- 엔티티 → 릴레이션, 관계 → 외래키, N:M → 별도 릴레이션
- 산출물: 논리 ERD (릴레이션 스키마)
▪ 정규화 (Normalization)
데이터 중복 제거 및 무결성 유지 목적
- 1NF: 컬럼은 원자값만 가짐
- 2NF: 복합키의 부분 종속 제거
- 3NF: 이행적 종속 제거 → 주로 3NF까지 수행
장점: 중복 최소화, 무결성 유지
단점: 조인 증가로 인한 접근 복잡도 상승
물리적 데이터 모델링
- 논리 모델을 DBMS 구현 가능한 형태로 변환
- 릴레이션 → 테이블, 속성 → 컬럼, 키 → 제약조건(PK, FK, UNIQUE)
- 성능·무결성·보안 고려
▪ 역정규화 (Denormalization)
- 조회 성능 개선을 위해 일부 중복 허용
- 컬럼 역정규화: 잦은 조인 발생 컬럼 추가
- 테이블 역정규화: 집계 테이블 추가, 테이블 통합
▪ 테이블 분할
- 성능, 관리 목적에 따라 수평/수직 분할