여니의 성장 diary
728x90
반응형

데이터 모델의 이해

🔎 모델링(Modeling)이란?

  • '설계'나 '디자인', '형상'
  • 데이터베이스의 모델링 : 현실 세계를 단순화하여 표현하는 기법
  • 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형
  • 현실 세계에서 필요한 데이터를 저장하는 데이터베이스를 구축하기 위한 분석/설계의 과정

 

💡 모델링이 갖춰야 할 조건

  • 현실 세계를 반영해야 한다.
  • 단순화하여 표현해야 한다.
  • 관리하고자 하는 데이터를 모델로 설계한다.

 

💡 모델링의 특징

  1. 추상화(Abstraction)
    현실 세계를 일정한 형식으로 표현하는 것, 아이디어나 개념을 간략하게 표현하는 과정
  2. 단순화(Simplification)
    복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현
  3. 명확화(Clarity)
    불분명함을 제거하고 명확하게 해석할 수 있도록 기술

 

💡 모델링의 세 가지 관점

  1. 데이터 관점 (What, Data)
    어떤 데이터들이 얽혀있는지, 데이터 간에는 어떤 관계가 있는지에 대해 모델링
  2. 프로세스 관점 (How, Process)
    실제로 처리하고 있는 일은 무엇인지, 앞으로 처리해야 하는 일은 무엇인지를 모델링
  3. 데이터와 프로세스의 상관 관점 (Data vs. Process, Interaction)
    프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링

 

💡 데이터의 품질을 보장하기 위해 데이터 모델링 시 유의해야할 점

* 데이터의 신뢰도, 정확성 등을 나타내는 척도

  • 중복 (Duplication)
    같은 데이터가 여러 엔터티에 중복으로 저장되는 현상 지양
  • 비유연성 (Inflexibility)
    데이터 모델과 프로세스를 분리하여 유연성을 높이는 것이 바람직
  • 비일관성 (Inconsistency)
    데이터 모델링을 할 때 데이터 간의 연관 관계에 대해 명확하게 정의

 

💡 모델링의 세 가지 단계

  1. 개념적 데이터 모델링 (Conceptual Data Modeling)
    전사적 데이터 모델링 수행 시, 추상화 레벨이 가장 높은 모델링, 업무 중심적이고 포괄적인 수준의 모델링 진행
  2. 논리적 데이터 모델링 (Logical Data Modeling)
    재사용성이 가장 높은 모델링, 데이터 베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계
  3. 물리적 데이터 모델링 (Physical Data Modeling)
    실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계

 

💡 데이터의 독립성

📌 ANSI-SPARC
(American National Standard Institute, Standards Planning And Requirements Commitee)

  • 데이터베이스 관리 시스템(DBMS)의 추상적인 설계 표준
  • 애플리케이션에 영향을 주지 않고 데이터베이스의 구조를 변경할 수 있어야 독립성이 보장된다.

 

📌  3단계 스키마 구조

  • 외부 스키마 (External Schema) - 사용자의 관점 (Multiple User's View)
    - 각 사용자가 보는 데이터 베이스의 스키마를 정의
    - View 단계, 여러개의 사용자 관점으로 구성
    - DB의 각 사용자나 응용 프로그래머가 접근하는 DB의 정의
  • 개념 스키마 (Conceptual Schema) - 통합된 관점 (Community View of DB)
    - 모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것
    - 모든 사용자 관점을 통합한 조직 전체 관점의 통합적인 표현
  • 내부 스키마 (Internal Schema) - 물리적인 관점 (Physical Representation)
    - 물리적인 저장 구조
    - 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스 등이 포함

 

📌  3단계 스키마 구조가 보장하는 독립성

데이터베이스에 대한 사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적인 방식을 분리하여 독립성을 보장하기 위한 것

  • 논리적 독립성
    - 개념 스키마가 변경되어도 외부 스키마는 영향받지 않는다.
    - 사용자 특성에 맞는 변경이 가능하고 통합 구조의 변경이 가능
  • 물리적 독립성
    - 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.
    - 물리적인 DB 구조가 바뀌어도 응용 프로그램과 개념 스키마에는 영향도가 없는 것
    - 물리적인 구조와는 별개로 개념 구조를 변경할 수 있고 개념 구조와는 별개로 물리적인 구조의 변경이 가능

 

💡 ERD(Entity Relationship Diagram)

시스템에 어떤 엔터티들이 존재하며 그들간에 어떤 관계가 있는지 나타내는 다이어그램

 

📌  ERD 표기 방식

  • Peter Chen
    주로 대학교재에서 사용하는 표기법, 실무에서 사용하는 경우 드물다
  • IDEF1X(Integration Definition for Information Modeling)
    실무에서 사용하는 경우 O, ERWin에서 사용되는 모델
  • IE/Crow's Foot
    까마귀발 표기법, 가장 많이 사용, ERWin, ERStudio에서 사용되는 모델
  • Min-Max/ISO
    각 엔터티의 참여도를 좀 더 상세하게 나타내는 표기법
  • UML
    소프트웨어 공학에서 주로 사용되는 모델
  • Case*Method/Barker
    Oracle에서 사용되는 모델, Crow's Foot과 비슷

 

📌   ERD 작성 순서

  1. 엔터티를 도출하고 그린다.
  2. 엔터티를 적절하게 배치한다.
  3. 엔터티 간의 관계를 설정한다.
  4. 관계명을 기입한다.
  5. 관계의 참여도를 기입한다.
  6. 관계의 필수/선택 여부를 기입한다.

 

📌  시스템 분석을 위한 모델링의 기능

  • 시스템이 향후 변화하고자 하는 모습으로 가시화
  • 시스템을 구축하는 과정에서 결정한 것을 문서화
  • 시스템을 구축하는 구조화된 틀 제공
  • 시스템의 구조와 행동 명세화
728x90
반응형
profile

여니의 성장 diary

@pponyo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!