재미로하는 공부

[sqld] 데이터 모델링 이론 및 ERD

lowcodingpython 2022. 3. 24. 17:46
반응형

참고한 문서는 sqld 이론서입니다. 

데이터 베이스 => DB 

data modeling
https://www.istockphoto.com/kr

데이터 모델링 (Data Modeling) 

  1. 현실세계를 DB로 표현하기 위해서 추상화한다.
  2. 고객사의 의사소통을 통해 고객의 어부 프로세스를 이해를 해야 한다.
  3. 데이터 모델링 표기법을 사용해서 모델링을 해야 한다.
  4. 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링해야 한다.
  5. 고객의 비즈니스 프로세스를 이해하고 비즈니스 프로세스의 규칙 정의  (정의된 비즈니스 규칙을 데이터 모델로 표현)
  6. 고객의 업무 프로세스를 추상화, S/W를 분석 및 설계

데이터 모델링의 특징

  1. 데이터 모델링 추상화 (Abstraction) : 공통적인 특징을 찾고 간략하게 표현
  2. 데이터 모델링 단순화 (Simplification) : 복잡한 문제를 피하며 누구나 이해할 수 있게 표현
  3. 데이터 모델링 명확성 (Clarity) : 의미적 해석이 모호하지 않고 명확하게 해석되어야 함 

데이터 모델링의 단계

1) 개념적 모델링 (Conceptual Data Modeling)

  1. 고객의 비즈니스 프로세스를 분석하며 업무 전체에 대해서 모델링을 수행한다.
  2. 복잡하게 표현 X, 중요한 부분을 위주로 모델링하는 단계
  3. 업무적 관점에서 모델링하며 기술적인 용어 사용을 X
  4. 엔터티와 속성을 도출하고 개념적 ERD를 작성
- 전사적 관점에서 기업의 데이터 모델링 
- 추상화 수준이 가장 높은 수준의 모델링 
- 계층형 데이터 모델, N/W모델, 관계형 모델에 관계없이 업무 측면에서 모델링 한다.

 

2) 논리적 모델링 (Loogical Data Modeling)

  1. 개념적인 모델링 -> 논리적 모델링으로 변환 (***)
  2. 식별자를 도출하고 필요한 모든 릴레이션 정의
  3. 정규화를 수행해서 데이텀 모델의 독립성을 확보한다.
- 특정 DB 모델에 종속
- 식별자를 정의하고 관계,속성들을 모두 표현한다.
- 정규화를 통해서 재사용성을 높인다.

 

3) 물리적 모델링 (Phusical Modeling)

  1. DB를 실제 구축, 즉 테이블, 인덱스, 함수 등을 생성
  2. 성능, 보안, 가용성을 고려해야 한다.
- 구축할 DB관리 시스템에 테이블, 인덱스 등을 생성하는 단계
- 성능, 보안, 가용성 등을 고려하여 DB 구축

 

데이터 모델링의 관점 

  관점                                                                       설명
데이터 - 비즈니스 프로세스에서 사용되는 데이터를 의미
- 구조 분석, 정적분석
프로세스  - 비즈니스 프로세스에서 수행하는 작업을 의미
- 시나리오 분석, 도메인 분석, 동적 분석
데이터와 프로세스 - 프로세스와 데이터 간의 관계
- CRUD 분석 (CRUD = Create, Read, Update, Delete)

 

ERD (Entity Relationship Diagrem) 작성 절차

  1. 엔터티를 도출하고 그린다.
  2. 엔터티 배치
  3. 엔터티 간의 관계를 설정
  4. 관계명을 서술
  5. 관계 참여도 표현
  6. 관계의 필수 여부 확인

ERD 작성 시 

- 중요한 엔터티를 가급적이며 왼쪽 상단에 배치 

- ERD는 이해가 쉬워야 하며 너무 복잡하지 않아야 한다.

ERD 작성 절차
직접 정리한 노트

반응형