파게로그

데이터 모델링의 이해 본문

콤퓨타 왕기초/SQLD/JDBC/Oracle DB

데이터 모델링의 이해

파게 2021. 3. 14. 01:08

데이터 모델링

  • 현실 세계를 데이터베이스로 표현하기 위해서 추상화하는 것

 

데이터 모델링의 특징

  • 추상화(abstraction)
    현실 세계를 간략하게 표현함
  • 단순화(simplification)
    누구나 쉽게 이해할 수 있도록 표현함
  • 명확화(clarification)
    의미가 명확하게 해석되어야 하며, 한 가지 의미를 지녀야 함

 

데이터 모델링의 단계

  • 개념적 모델링(conceptual data modeling)
    - entity와 attribute를 도출하고 개념적 ERD를 작성한다.
    - 비즈니스 프로세스를 분석하고 업무 전체에 대해 데이터 모델링을 수행한다.
    - 업무적 관점에서 모델링한다.
    - 기술적인 용어 사용은 자제한다.
    - 중요한 부분을 위주로 모델링한다.
  • 논리적 모델링(logical data modeling)
    - 정규화를 수행해서 데이터 모델의 독립성을 확보한다.
    - 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.
    - 개념적 모델링을 논리적 모델링으로 변환하는 작업이다.
    - 계층형 데이터 모델, 네트워크 모델, 관계형 모델 등 특정 데이터베이스 모델에 종속된다.
  • 물리적 모델링(physical modeling)
    - 테이블, 인덱스, 함수 등을 생성하여 실제로 데이터베이스를 구축한다.
    - 성능, 보안, 가용성 등을 고려한다.

 

데이터 모델링의 관점

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

 

데이터 모델링을 위한 ERD(Entity Relationship Diagram)

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

 

Crow's Feet Notation

  • relation cardinality
    - ring: 0
    - dash: 1
    - crow's feet: n(다수 혹은 그 이상)
  • identification relationship
    - solid line: identifying(부모테이블의 PK를 자식테이블의 PK로 사용)
    - dotted line: non-identifying
  • 예시
    고리와 실선 → 0 혹은 1
    실선과 실선 → 정확히 1
    고리와 까마귀 발 → 0개 이상
    실선과 까마귀 발 → 1개 이상

'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글

엔티티 식별자(entity identifier)  (0) 2021.03.15
관계(relationship)  (0) 2021.03.15
속성(attribute)  (0) 2021.03.15
엔티티(entity)  (0) 2021.03.14
3층 스키마(3-Level Schema)  (0) 2021.03.14
Comments