[SQL] 01. 데이터 모델의 이해
데이터 모델링의 이해: 데이터 모델의 이해
1. 모델링의 이해¶
1-1. 데이터 모델링¶
모델링(modeling)이란 현실 세계를 일정한 표기법에 의해 단순화하여 표기하는 것을 말한다. 데이터 모델링(data modeling)이란 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법으로 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말한다. 데이터베이스 모델링이라고도 불린다.
1-2. 모델링의 특징¶
- 추상화(Abstraction)
- 일정한 형식에 따라 현실 세계를 간략하게 표현함
- 단순화(Simplification)
- 제한된 표기법이나 언어로 누구나 쉽게 이해할 수 있도록 표현
- 명확성(Clarity)
- 누구나 이해하기 쉽도록 대상에 대한 애매모호함을 제거하고 보다 정확하게 현상을 기술
1-3. 데이터 모델링의 관점¶
- 데이터 관점
- 업무와 데이터 또는 데이터 간의 관계, 구조 분석/정적 분석
- 프로세스 관리
- 진행되고 있거나 진행되어야 하는 업무, 시나리오 분석/도메인 분석/동적 분석
- 데이터와 프로세스 상관 관점
- 업무 처리에 따른 데이터에 대한 영향, CRUD(Create, Read, Update, Delete) 분석
1-4. 데이터 모델링의 목적¶
- 정보에 대한 표기법을 통일하여 업무 내용 분석 정확도 제고
- DB 구성을 위한 데이터베이스 모델 설계
1-5. 데이터 모델링의 기능¶
- 시스템 가시화
- 시스템 구조와 행동 명세화
- 시스템 구축을 위한 구조화된 틀 제공
- 결정 사항 문서화
- 다양한 관점 제공
- 구체화된 상세 수준의 표현 방법 제공
2. 데이터 모델링의 중요성¶
- 파급효과(Leverage)
- 시스템 구축 과정에서 데이터 모델 변경이 발생하면 일련의 변경 작업이 발생함
- 간결한 표현(Conciseness)
- 구축할 시스템의 정보 요구사항과 한계를 명확하고 간결하게 표현함
- 데이터 품질(Data Quality) 문제 예방을 위한 유의점
- 유일성: 데이터 중복 저장 방지
- 유연성: 데이터 정의와 데이터 사용 프로세스 분리
- 일관성: 데이터의 중복이 없어도 비일관성 발생 가능
3. 데이터 모델링 3단계¶
- 개념적 모델링(Conceptual Data Modeling)
- 엔티티 및 속성 도출을 통한 ERD를 작성. 업무 중심적이고 포괄적인 수준의 모델링
- 논리적 모델링(Logical Data Modeling)
- 식별자 도출, 속성 및 관계 등 정의. 정규화 수행을 통한 데이터 모델의 독립성과 재사용성 확보
- 물리적 모델링(Physical Data Modeling)
- 논리 데이터 모델이 데이터 저장소로서 어떻게 구축될지를 결정
4. 데이터 독립성¶
- 논리적 데이터 독립성
- 외부 스키마가 개념 스키마의 변화에 무관함
- 물리적 데이터 독립성
- 개념/외부 스키마가 내부 스키마의 변화에 무관함
4-1. 데이터베이스의 3단계 구조¶
데이터베이스는 논리적/물리적 데이터 독립성을 확보하기 위해 3단계 스키마(3-level Schema)로 구성된다.
- 외부 스키마
- 여러 개의 사용자 관점으로 구성되는 View 단계, 개별 사용자나 응용 프로그램이 접근하는 DB를 정의함
- 개념 스키마
- 모든 사용자 관점을 통합한 조직 전체의 DB 스키마, 설계자 관점
- 내부 스키마
- 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조
5. 데이터 모델링의 요소¶
데이터 모델링은 엔티티(Entity), 속성(Attribute), 관계(Relationship)의 3요소로 구성됨
6. E-R Model¶
ERD(Entity Relationship Diagram)는 각 업무분석에서 도출된 엔티티와 엔티티 간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법으로, 실무에서는 해당 업무에서 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물이다. ERD를 작성하는 작업순서는 다음과 같다.
- 엔티티 작성
- 엔티티 배치
- 엔티티 간 관계 설정
- 관계명 기술
- 관계의 참여도(관계 차수) 기술
- 관계의 필수 여부 기술
7. 좋은 데이터 모델의 요소¶
- 완전성(Completeness)
- 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의
- 중복 배제(Non-Redundancy)
- 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록
- 업무 규칙(Business Rules)
- 데이터 모델링 과정에서 도출되고 규명되는 수많은 업무 규칙(Business Rules)을 데이터 모델에 표현 모든 사용자가 공유할 수 있도록 제공
- 데이터 재사용(Data Reusability)
- 데이터의 통합성과 독립성에 대한 고민을 통한 데이터의 재사용성 확보. 기업이 관리하고자 하는 데이터를 합리적으로 균형이 있으면서도 단순하게 분류해야 데이터 구조의 확장성 및 유연성 확보 가능
- 의사소통(Communication)
- 표현된 업무 규칙들을 해당 정보시스템을 운용, 관리하는 관련자들이 설계자가 정의한 업무 규칙들을 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할을 함
- 통합성(Integration)
- 동일한 데이터는 조직의 전체에서 한번만 정의되고 이를 여러 다른 영역에서 참조, 활용하여야 함