ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터 모델링의 이해] 데이터 모델링이란?
    SQL/SQLD 2024. 12. 10. 18:12

     

    데이터 모델링이란?

    • 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
    • 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정 (추상화)
    • 데이터베이스를 구축하기 위한 분석 및 설계의 과정
    데이터 모델링은 데이터베이스를 설계하는 과정
    데이터베이스는 실제로 데이터를 저장하고 관리하는 시스템

     
     
     

    데이터 모델링을 하는 목적

    1. 업무 정보를 구성하는 기초 정보들을 일정한 표기법으로 표현하여 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것
    2. 분석된 모델로 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것
    • 데이터 모델링은 단지 데이터베이스만을 구축하기 위한 용도로 쓰이는 것이 아니라, 데이터 모델링 자체로도 업무를 설명하고 분석하는 부분에서 매우 중요한 의미가 있다.
      모델링은 단지 시스템 구현만을 위해 수행하는 태스크가 아니며, 시스템 구현을 포함한 업무 분석 및 업무 형상화를 하는 목적도 있다.

     

    모델링의 특징

    1. 추상화 Abstraction
      현실 세계의 데이터를 일정한 형식에 맞추어 표현
    2. 단순화 Simplification
      복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게 함
    3. 명확화 Clarity
      애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술

     
     

    데이터 모델링을 할 때 유의사항

    1. 중복 Duplication
      데이터 모델은 같은 데이터를 사용하는 사람, 시간 그리고 장소를 파악하는데 도움을 주어 데이터 베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
    2. 비유연성 Inflexibility
      데이터의 정의를 데이터의 사용 프로세스와 분리함으로써, 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터 베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
      데이터 모델을 어떻게 설계했느냐에 따라 작은 변화에도 데이터 모델이 수시로 변경될 수 있음
      → 유지보수의 어려움 가중
    3. 비일관성 Inconsistency
      데이터 중복이 없더라도 비일관성은 발생할 수 있는데, 데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의한다면 이러한 위험을 사전에 예방하는데 도움을 줄 수 있다.
      e.g. 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신 → 데이터 간의 모순이 발생
      사용자가 처리하는 프로세스나 프로그램과 테이블 연계성을 높이면, 데이터 모델이 업무 변경/변화에 취약해져 일관성을 유지하기 어렵다 문제가 발생할 수 있음

     
     

    데이터 모델링 단계 순서와 진행방식
    개논물

    1. 개념적 데이터 모델링 Conceptual Modeling

    • 데이터의 큰 틀을 설정하는 단계로 추상적이고 전반적인 비즈니스 사항을 반영
    • 가장 높은 추상화 단계
    • 현실 세계에서 다루고자 하는 데이터를 엔티티, 속성, 인스턴스로 추상화
    • 엔티티와 속성 도출, 개념적 ERD 작성
    Entity: 모델링하고자 하는 객체나 개념을 의미 (e.g. 학생, 교수, 강의 등)
    Attribute: 엔티티가 가질 수 있는 특성이나 데이터 (e.g. 학생 엔티티의 속성 : 이름, 학번, 나이 등)
    Instance: 엔티티나 속성의 실제 데이터 (e.g. '홍길동', '20200101'과 같은 실제 값들)

     
    2. 논리적 데이터 모델링 Logical Modeling

    • 개념적 모델을 바탕으로 데이터를 데이터베이스 관리 시스템(DBMS)에서 사용할 수 있는 형태로 구체화
    • 중간 수준의 추상화 레벨 ⌜키, 속성, 관계 등을 표현
    • 데이터 구조를 데이터 베이스 모델에 맞춰 정교화하며, 식별자 도출, 정규화 등으로 데이터 무결성 확보
    Key: 각 엔티티를 식별할 수 있는 고유한 값을 정의 (e.g. 기본 키, 후보 키 등)
    Attribute: 각 엔티티가 가질 수 있는 특성 (e.g. 학생 엔티티의 이름, 학번 등)을 구체적으로 설정
    Relationship: 서로 다른 엔티티 간의 관계를 정의 (e.g. 학생과 강의 간의 '수강' 관계를 모델링)

     
    3. 물리적 데이터 모델링 Physical Modeling

    • 논리적 모델을 실제 데이터베이스 시스템에 구현할 수 있도록 구체적인 설계를 하는 단계
    • 테이블, 인덱스, 저장소, 보안 등의 요소를 실제로 구현하며 성능, 보안, 가용성 등의 최적화까지 고려

    ✤왜 이 순서대로 진행할까?
    처음에는 시스템의 전반적인 구조와 요구사항을 정의하고 그 후 점점 구체적인 데이터베이스 설계로 전환하기 때문이다. 이를 통해 혼란을 줄이고, 데이터 베이스 구축과정에서 변경 사항을 최소화할 수 있다.

     
     

    개념모델링 | 논리모델링 물리모델링 (데이터베이스)
    엔티티
    Entity
    테이블
    Table
    속성
    Attribute
    칼럼
    Column
    인스턴스
    Instance
    로우 (데이터 1행)
    Row

     
     
     
     
     
     
     
     

    댓글

Designed by Tistory.