[SQLD] 데이터 모델링의 이해
[SQLD] 데이터 모델링의 이해
데이터 모델링의 이해
정의
업무에 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석/설계하여 정보시스템(DB)를 구축하고 개발 및 데이터 관리에 사용
특징
특징 | 설명 |
---|---|
추상화 | 현실세계를 간략하게 표현 |
단순화 | 누구나 쉽게 이해하도록 표현 |
명확화 | 명확하게 한 가지의 의미로 해석되도록 표현 |
좋은 데이터 모델링의 6대 요소
- 중복 배제(Non-Redundancy)
- 동일한 사실은 1번만 기록되어야 한다.
- 업무규칙(Business Rules)
- 업무 규칙을 데이터 모델에 표현하고 사용자가 공유할 수 있도록 한다.
- 완전성(Completeness)
- 모든 데이터가 모델에 정의되어 있어야한다.
- 데이터 재사용(Data Reusability)
- 데이터의 통합성과 독립성에 대해서 고려하여 재사용할 수 있어야한다.
- 의사소통(Communication)
- 관련자들이 동일한 의미로 받아들이고 활용할 수 있어야한다.
- 통합성(Integration)
- 여러 업무 영역에서 공동으로 사용하기 용의하게 정의해야한다.
데이터 모델링의 관점
데이터 관점
- 데이터 👉 비즈니스 프로세스에서 사용되는 데이터
- 업무가 어떤 데이터와 관련이 있으며 무슨 관계인지에 대해서 모델링
What, How
- 구조 분석, 정적 분석
프로세스 관점
- 프로세스 👉 비즈니스 프로세스에서 수행하는 작업
- 업무가 실제하고 있는 일은 무엇이며 어떻게 해야 하는지에 대한 모델링
How, Process
- 시나리오 분석, 도메인 분석, 동적 분석
데이터와 프로세스의 상관 관점
- 프로세스와 데이터 간의 관계
- 업무를 처리하는 방법에 따라 어떤 영향을 받는지에 대해 모델링 👉 Interaction 고려
- CRUD 분석
데이터 모델링의 과정
- 개념적 데이터 모델링 (Conceptual Data Modeling)
- 전사적 관점, 업무 관점 모델링
- 추상화 수준이 가장 높은 모델링
- Entity와 속성을 도출하고, 개념적 ERD를 작성하는 단계
추상화, 업무 중심적, 포괄적, 개념적
특성을 가짐
- 논리적 데이터 모델링 (Logical Data Modeling)
- 특정 DB모델에 종속됨
- 식별자를 정의하고 관계, 속성 등을 모두 표현하는 단계
- 정규화를 통하여 재사용성을 높힌다.
정규화, 재사용성, 신뢰성
의 특성을 가짐
- 물리적 데이터 모델링 (Physical Data Modeling)
- 성능, 보안, 가용성 등을 고려하여 데이터베이스를 실제 구축
- 테이블, 인덱스, 함수 등을 생성하는 단계
ERD
- 테이블 간 서로의 상관관계를 그림으로 도식화 한 것
Entity, Relationship, Attribute
3가지 요소로 구성된다.- 현실 세계의 데이터는 3가지 요소로 모두 표현이 가능
작성 절차
- 엔티티를 도출하고 그린다.
- 엔티티를 배치한다.
- 엔티티 간의 관계를 설정한다.
- 관계를 서술한다.
- 관계 참여도를 표현한다.
- 관계의 필수 여부를 표현한다.
데이터 모델링 과정에서의 고려사항
데이터 모델의 독립성
- 업무 변화에 능동 대응하기 위함
- 정규화를 통한 중복된 데이터 제거
- 잘못된 데이터 모델링 이후의 변경 작업은 side effect가 크다
고객 요구사항의 표현
- 데이터 정합성을 유지하며 정보요구사항을 이해하고 정확, 간결하게 표현해야한다.
데이터 품질 확보
- 데이터 표준을 정의하고 표준 준수율을 관리해 데이터 품질을 향상시켜야 한다.
- 중복, 비유연성, 비일관성을 주의한다.
- 중복: 여러 테이블에 같은 정보를 저장하지 않는다.
- 비유연성 주의: 데이터의 정의를 데이터 사용 프로세스와 분리하여 유연성을 높인다.
- 비일관성: 다른 데이터에 모순된다는 고려없이 데이터 수정을 하지 않고, 모델링 시 데이터 사이 상호연관관계에 대해 명확하게 정의하여 일관성을 높인다.
데이터 독립성
- 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질
- 효과
- 데이터 중복 제거
- 사용자 요구사항 변경에 따른 대응력 향상
- 관리 및 유지보수 비용 절감
3-Level Schema
- 외부 스키마
- 사용자 개개인, DB 이용자의 관점(view 단계) 로 구성된 개인적 DB스키마
- 응용 프로그램이 접근하는 DB를 정의
- 개념 스키마
- 설계자 관점, 사용자 관점을 통합한 기관, 조직 전체 관점의 DB구조
- 통합 DB구조
- 개념 단계 하나의 개념적 스키마로 구성되어 있으며 전체 DB내 규칙과 구조를 표현
- 내부 스키마
- 개발자 관점, 저장 장치 관점
- DB의 물리적 저장 구조
3 level schema의 독립성과 매핑
각 계층 구조를 유기적으로 연결해주는 매핑 과정을 통해, 3-level schema는 데이터 독립성을 가진다.
특정 스키마가 바뀌더라도 매핑을 다시 하면, 다른 계층의 스키마 내용은 변하지 않아도 된다. (추상화)
- 데이터 독립성 보장
- 데이터 독립성 보장을 위해서는 DBA가 필요할 때마다 DDL을 변경해주어야한다.
- 각 단계(외부/내부/개념적 스키마)의 독립성을 보장하기 위해서 변경사항이 생겼을 때 DBA가 적절한 작업을 해주기 떄문에 독립성이 보장된다고 할 수 있다.
논리적 사상 = 외부적/개념적 사상 = 논리적 데이터의 독립성 (외부 스키마 👉 개념 스키마)
- 논리적 스키마가 변하더라도 상위 단계에 존재하는 외부 스키마가 영향을 받지 않는 성질
- 외부적 뷰와 개념적 뷰의 상호 관련성을 정의
- 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있고 개념적 뷰의 필드 타입은 변화가 없는 것과 같다.
- 외부 인터페이스를 위한 스키마 구조는 전체 통합된 개념적 스키마와 연결된다.
물리적 사상 = 개념적/내부적 사상 = 물리적 데이터 독립성 (개념 스키마 👉 내부 스키마)
- 데이터베이스 관리 시스템의 성능 향상을 위해 시스템을 바꾸거나 물리 스키마 구조를 변경하는 경우에 물리 스키마가 바뀌더라도 개념스키마나 사용자가 이용하는 응용 프로그램은 영향을 받지 않는다.
- 개념적 뷰와 저장된 DB의 상호 관련성을 정의
- 만약 저장된 DB구조가 바뀌면 개념적 스키마는 그대로 남아있게 개념적/내부적 사상이 바뀌어야함
- 통합된 개념적 스키마 구조와 물리적 테이블 스페이스(물리 저장된 구조)가 연결되는 구조
This post is licensed under CC BY 4.0 by the author.