데이터 모델링 및 설계
데이터 모델링 기법
개념적 모델링 기법
- E-R 다이어그램(Entity-Relationship Diagram): 엔티티, 속성, 관계를 시각적으로 표현
- UML(Unified Modeling Language): 클래스 다이어그램을 통한 객체지향 모델링
- 온톨로지 모델링(Ontology Modeling): 개념과 관계를 의미론적으로 정의
논리적 모델링 기법
- 관계형 모델링(Relational Modeling): 테이블, 키, 관계를 정의
- 차원 모델링(Dimensional Modeling): 팩트 테이블과 차원 테이블로 구성
- 스타 스키마(Star Schema): 중앙의 팩트 테이블과 주변의 차원 테이블
- 스노우플레이크 스키마(Snowflake Schema): 차원 테이블이 정규화된 형태
- 데이터 볼트(Data Vault): 허브, 링크, 새틀라이트 구조로 구성
물리적 모델링 기법
- 정규화(Normalization): 데이터 중복 최소화 및 무결성 보장
- 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
- 역정규화(Denormalization): 성능 향상을 위한 의도적 중복 허용
- 인덱싱 전략(Indexing Strategy): 데이터 접근 속도 향상을 위한 인덱스 설계
- 파티셔닝(Partitioning): 대용량 데이터 관리를 위한 분할 전략
특수 목적 모델링 기법
- NoSQL 모델링: 비관계형 데이터베이스를 위한 모델링
- 문서형(Document), 키-값(Key-Value), 컬럼형(Column-Family), 그래프(Graph)
- 빅데이터 모델링: 대용량 데이터 처리를 위한 모델링
- 실시간 데이터 모델링: 스트리밍 데이터 처리를 위한 모델링
- 그래프 모델링(Graph Modeling): 노드와 엣지를 통한 관계 중심 모델링
모델링 프로세스
- 요구사항 분석: 비즈니스 요구사항 파악
- 개념적 모델링: 핵심 엔티티와 관계 정의
- 논리적 모델링: DBMS에 독립적인 상세 모델 설계
- 물리적 모델링: 특정 DBMS에 최적화된 구현 모델 설계
- 검증 및 최적화: 모델 검증 및 성능 최적화
논리적 모델링에서 물리적 모델링으로의 변환
주요 변환 요소
- 엔티티(Entity) → 테이블(Table): 논리적 모델의 엔티티는 물리적 모델에서 테이블로 구현
- 속성(Attribute) → 컬럼(Column): 엔티티의 속성은 테이블의 컬럼으로 변환
- 식별자(Identifier) → 기본 키(Primary Key): 논리적 모델의 식별자는 물리적 모델에서 기본 키로 구현
- 관계(Relationship) → 외래 키(Foreign Key): 엔티티 간 관계는 외래 키 제약조건으로 구현
- 도메인(Domain) → 데이터 타입(Data Type): 속성의 도메인은 특정 DBMS의 데이터 타입으로 매핑
- 필수/선택 사항(Mandatory/Optional): 논리적 모델의 필수/선택 속성은 물리적 모델에서 NOT NULL/NULL 제약조건으로 구현
변환 시 고려사항
- 성능 최적화: 인덱스, 파티셔닝, 클러스터링 등 성능 향상 기법 적용
- 물리적 제약조건: 스토리지 크기, I/O 처리량, 메모리 사용량 등 하드웨어 제약 고려
- DBMS 특성: 특정 DBMS의 고유 기능과 제약사항 반영