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