데이터 모델링
정의
\1. 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업, 데이터베이스를 구축하기 위한 분석/설계 과정
\2. 데이터베이스 골격 이해를 바탕으로 모델의 기능과 성능적인 측면에서 효율적으로 작성하기 위한 핵심 요소
\3. 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업
\4. 데이터에 존재하는 업무 규칙에 대해 참, 거짓을 판별이 가능한 데이터에 접근하는 방법 ▶ 현실 세계의 데이터(waht)에 대해 약속된 표기법에 의해 표현하는 과정
모델링 다양한 현상에 대해 일정한 표기법으로 표현한 모형 - 현실 세계를 단순화 시킨 표현 - 모델: 현실 세계의 추상화된 반영
◽ 특 \1. 추상화: 현실세계를 일정한 형식에 맞춰 표현 \2. 단순화: 복잡한 현실세계를 특정 표기법/언어로 표현하여 쉽게 표현하는 개념 \3. 명확화: 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술
◽ 관점 \1. 데이터 관점: 데이터간의 관계, 업무와 데이터의 관련에 대해 모델링 하는 방법 \2. 프로세스 관점: 업무가 실제 하고 있는 일이 무엇인지, 무엇을 해야하는 지 모델링하는 방법 \3. 데이터와 프로세스의 상관관점: 업무가 처리하는 일의 처리 방법에 따라 데이터는 어떻게 영향 받는 지 모델링하는 방법 🚩 모델링 = 데이터관점 + 상관관점 + 프로세스 관점
데이터 모델링의 중요성 및 유의점
\1. 파급효과 (Leverage)
- 테스트 단계에서 데이터 모델의 변경이 필요한 상황이 발생했을 때, 처음부터 다시 시작해야 하는 상황이 발생할 수 있음
- 데이터 구조의 변경으로 인한 작업은 시기 및 정도에 따라 전체 시스템 구축 프로젝트에서 큰 위험요소
\2. 간결한 표현 (Conciseness)
- 데이터 정합성 유지: 시스템 구축에 필요한 많은 관련자들이 설계자의 생각대로 정보 요구사항 이해 필요
- 정보 요구사항이 정확하고 간결하게 표현
\3. 데이터 품질 (Data Quality)
- 데이터 품질 문제 발생 시, 활용 가치 및 기업의 자산 하락
- 중복, 미정의, 데이터 구조의 비즈니스 정의 불충분, 데이터 불일치 등
🔴 데이터 품질 발생 방지를 위한 유의사항
\1. 중복 (Duplication): 데이터를 여러 장소에 같은 정보를 저장하지 않도록 주의
\2. 비유연성 (Inflexibility): 데이터 정의와 데이터 사용 프로세스를 분리 ▶ 데이터 모델링 OR 프로세스의 작은 변화로 인해 앱/DB에 중대한 변화를 일으킬 가능성 감소
\3. 비일관성 (Inconsistency): 데이터와 데이터 상호 연관 관계에 대한 명확한 정의 필요 ▶ 데이터 중복이 없어도 비 일관성이 발생할 수 있음
관계형 데이터 모델링 과정
참조: https://mangkyu.tistory.com/27
1. 요구사항 수집 및 분석
데이터가 어떤 형태, 목적으로 사용 될 지 고려
- 항공 예약 시스템이 Users, Booking, Journeys, Fights, Passengers의 데이터를 가짐
- 데이터 저장과 조회 등 효율화하여 요구 조건을 충족할 수 있도록 설계
- 항공 예약 시스템을 확인하고 요구사항을 파악
2. 개념적 데이터 모델 설계 (E-R다이어그램 작성)
개체들간의 관계를 정의하여 E-R 다이어그램 생성
엔티티(Entity): 실체, 객체 업무에 필요하고 유영한 정보를 저장하고 관리하기 위한 집합적인 것 - 사람, 장소, 물건, 사념 등 명사 - 업무상 관리가 필요한 관심사 - 저장되기 위한 어떤 것
엔티티 분류 \1. 유무형에 따른 분류 - 유형엔티티: 물리적인 형태가 있고, 안정적이며 지속적으로 활용되는 엔티티 ex) 사원, 물품, 강사 - 개념엔티티: 물리적인 형태X, ㅇ개념적 정보로 구분되는 엔티티 ex) 조직, 보험상품 - 사건엔티티: 업무를 수행함에 따라 발생되는 엔티티, 발생량이 많음 ex) 주문, 청구, 미납
\2. 발생 시점에 따른 분류 - 기본엔티티: 업무에 원래 존재하는 정보. 엔티티와의 관계에 의해 생성되지 않고 독립적으로 생성 가능, 타 엔티티의 부모 역할 ex) 사원, 부서, 고객, 상품, 자재 - 중심엔티티: 기본엔티티로부터 발생. 업무에서 중심적인 역할, 데이터 양이 많고 다른 엔티티와 관계를 통해 많은 행위엔티티 생성 ex) 계약, 사고, 예금원장, 청구 - 행위엔티티: 두 개 이상이 부모엔티티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가, 상관모델링을 진행하며 도출 ex) 주문목록, 사원변경이력
참조
https://woongsin94.tistory.com/186
E-R 다이어그램(Entity Realtionship Diagram), ER Model
데이터들의 관계를 나타낸 도표
ERD 규칙
**ERD 구성요소 **- 개체 (Entity)
표현할 정보를 가지고 있는 독립적인 객체 또는 실체
- 속성 (Attributes)
개체가 지니고 있는 특성, 성질, 기본적으로 타원으로 표현
- 관계성 (Relationship)
개체들간의 관계를 표현
3. 논리적 데이터 모델 설계
비즈니스 정보의 논리적 구조와 규칙을 명확하게 표현하는 과정, 시스템 구축을 위한 사항을 모두 정의
- 누가, 어떻게 데이터에 엑세스 할 것인지, 비즈니스 데이터에 존재하는 사실들을 인식하여 기록
- 논리 데이터 모델의 상세화 - 정규화 진행 ▶️ 모델 일관성 확보, 중복 제거, 속성들을 적절한 엔티티에 배치 - 식별자 확정, M:M 관계 해소, 참조 무결성 규칙 정의 등
- E-R 다이어그램에 개념적으로 구체화한 모델을 관계형 데이터베이스에 맞게 구축
- 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다루는 부분
4. 물리적 데이터 모델 설계
데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대해 고려하여 데이터베이스 설계 및 구현
- 물리적 스키마: 데이터가 물리적으로 어떻게 저장될 것인가에 대한 정의 ▶️ 테이블, 컬럼 등 물리적인 저장 구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등 결정
- 관계형 데이터베이스: 인덱스 조회 및 테이블 조인에 의존하여 서로 다른 엔티티 연결 📌 조인된 테이블 등 복잡한 쿼리로 인해 성능 문제 발생
- 그래프 모델 데이터: 각각 개별 항목 및 다른 개별 항목과의 관계로 구성 ▶️ 조인 및 인덱스 신경 ❌