데이터 모델링
업무에 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석/설계하여 DB를 구축하고 개발 및 데이터 관리에 사용
데이터 모델링의 특징
- 추상화 : 현실 세계를 간략하게 표현
- 단순화 : 누구나 쉽게 이해할 수 있도록 표현
- 명확화 : 대상의 애매모호함을 제거하여 정확하게 표현 (한 가지 의미로 해석되도록 표현)
모델링 관점
- 데이터 관점 : 업무가 어떤 데이터와 관련이 있으며, 무슨 관계인지에 대해 모델링 (What, Data) → 구조 분석, 정적 분석
- 프로세스 관점 : 업무가 실제로 하고 있는 일은 무엇이며 어떻게 해야 하는지에 대해 모델링 (How, Process) → 시나리오 분석, 도메인 분석, 동적 분석
- 데이터와 프로세스의 상관 관점 : 업무를 처리하는 방법에 따라 어떤 영향을 받는지에 대해 모델링 (Interaction) → CRUD (Create Read Update Delete) 분석
현실세계와 데이터베이스 사이의 모델
1. 개념적 데이터 모델링 (Conceptual Data Modeling)
- 엔티티와 속성을 도출하고, 개념적 ERD를 작성하는 단계
- 추상화, 업무중심적, 포괄적, 개념적
2. 논리적 데이터 모델링 (Logical Data Modeling)
- 특정 DB모델에 종속되며, 식별자를 정의하고 관계, 속성 등을 표현하는 단계
- 정규화, 재사용성, 신뢰성
3. 물리적 데이터 모델링 (Physical Data Modeling)
- 성능, 보안, 가용성 등을 고려하여 데이터베이스를 실제로 구축하는 단계
- 테이블, 인덱스, 함수 등을 생성
ERD
- 테이블간 서로 상관 관계를 그림으로 도식화한 것
- 현실 세계의 데이터는 엔티티(Entity), 관계(Relationship), 속성(Attribute)으로 모두 표현 가능
ERD 작성 절차
- 엔티티 도출하고 그리기
- 엔티티 배치
- 엔티티 간의 관계 설정
- 관계 서술
- 관계 참여도 표현
- 관계의 필수 여부 표현
데이터 모델링 유의점
- 데이터 모델의 독립성
- 독립성이 확보되어야 업무 변화에 능동적인 대응 가능
- 정규화를 통해 중복된 데이터를 제거해야 함
- 고객 요구사항 표현
- 데이터 정합성을 유지하며 정보 요구 사항을 이해하고 정확,간결하게 표현해야 함
- 데이터 품질 확보
- 중복 (Duplication) : 여러 장소에 같은 정보를 저장하지 않아야 함
- 비유연성 (Inflexibility) : 사소한 업무변화에 데이터모델이 수시로 변경되지 않도록 해야 함 → 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높임
- 비일관성 (Inconsistency) : 모델링 시 데이터간 상호 연관관계를 명확히 정의해야 함
데이터 독립성
특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질