Post

[SQLD] 데이터 모델링의 이해

[SQLD] 데이터 모델링의 이해

데이터 모델링의 이해

정의

업무에 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석/설계하여 정보시스템(DB)를 구축하고 개발 및 데이터 관리에 사용

특징

특징설명
추상화현실세계를 간략하게 표현
단순화누구나 쉽게 이해하도록 표현
명확화명확하게 한 가지의 의미로 해석되도록 표현

좋은 데이터 모델링의 6대 요소

  1. 중복 배제(Non-Redundancy)
    • 동일한 사실은 1번만 기록되어야 한다.
  2. 업무규칙(Business Rules)
    • 업무 규칙을 데이터 모델에 표현하고 사용자가 공유할 수 있도록 한다.
  3. 완전성(Completeness)
    • 모든 데이터가 모델에 정의되어 있어야한다.
  4. 데이터 재사용(Data Reusability)
    • 데이터의 통합성과 독립성에 대해서 고려하여 재사용할 수 있어야한다.
  5. 의사소통(Communication)
    • 관련자들이 동일한 의미로 받아들이고 활용할 수 있어야한다.
  6. 통합성(Integration)
    • 여러 업무 영역에서 공동으로 사용하기 용의하게 정의해야한다.

데이터 모델링의 관점

  1. 데이터 관점

    • 데이터 👉 비즈니스 프로세스에서 사용되는 데이터
    • 업무가 어떤 데이터와 관련이 있으며 무슨 관계인지에 대해서 모델링
      • What, How
    • 구조 분석, 정적 분석
  2. 프로세스 관점

    • 프로세스 👉 비즈니스 프로세스에서 수행하는 작업
    • 업무가 실제하고 있는 일은 무엇이며 어떻게 해야 하는지에 대한 모델링
      • How, Process
    • 시나리오 분석, 도메인 분석, 동적 분석
  3. 데이터와 프로세스의 상관 관점

    • 프로세스와 데이터 간의 관계
    • 업무를 처리하는 방법에 따라 어떤 영향을 받는지에 대해 모델링 👉 Interaction 고려
    • CRUD 분석

데이터 모델링의 과정

image

  1. 개념적 데이터 모델링 (Conceptual Data Modeling)
    • 전사적 관점, 업무 관점 모델링
    • 추상화 수준이 가장 높은 모델링
    • Entity와 속성을 도출하고, 개념적 ERD를 작성하는 단계
    • 추상화, 업무 중심적, 포괄적, 개념적 특성을 가짐
  2. 논리적 데이터 모델링 (Logical Data Modeling)
    • 특정 DB모델에 종속됨
    • 식별자를 정의하고 관계, 속성 등을 모두 표현하는 단계
    • 정규화를 통하여 재사용성을 높힌다.
    • 정규화, 재사용성, 신뢰성 의 특성을 가짐
  3. 물리적 데이터 모델링 (Physical Data Modeling)
    • 성능, 보안, 가용성 등을 고려하여 데이터베이스를 실제 구축
    • 테이블, 인덱스, 함수 등을 생성하는 단계

ERD

  • 테이블 간 서로의 상관관계를 그림으로 도식화 한 것
  • Entity, Relationship, Attribute 3가지 요소로 구성된다.
    • 현실 세계의 데이터는 3가지 요소로 모두 표현이 가능

작성 절차

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

데이터 모델링 과정에서의 고려사항

  1. 데이터 모델의 독립성

    • 업무 변화에 능동 대응하기 위함
    • 정규화를 통한 중복된 데이터 제거
    • 잘못된 데이터 모델링 이후의 변경 작업은 side effect가 크다
  2. 고객 요구사항의 표현

    • 데이터 정합성을 유지하며 정보요구사항을 이해하고 정확, 간결하게 표현해야한다.
  3. 데이터 품질 확보

    • 데이터 표준을 정의하고 표준 준수율을 관리해 데이터 품질을 향상시켜야 한다.
    • 중복, 비유연성, 비일관성을 주의한다.
      • 중복: 여러 테이블에 같은 정보를 저장하지 않는다.
      • 비유연성 주의: 데이터의 정의를 데이터 사용 프로세스와 분리하여 유연성을 높인다.
      • 비일관성: 다른 데이터에 모순된다는 고려없이 데이터 수정을 하지 않고, 모델링 시 데이터 사이 상호연관관계에 대해 명확하게 정의하여 일관성을 높인다.

데이터 독립성

  • 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질
  • 효과
    • 데이터 중복 제거
    • 사용자 요구사항 변경에 따른 대응력 향상
    • 관리 및 유지보수 비용 절감

3-Level Schema

Screenshot 2024-10-25 at 20.32.40

  1. 외부 스키마
    • 사용자 개개인, DB 이용자의 관점(view 단계) 로 구성된 개인적 DB스키마
    • 응용 프로그램이 접근하는 DB를 정의
  2. 개념 스키마
    • 설계자 관점, 사용자 관점을 통합한 기관, 조직 전체 관점의 DB구조
    • 통합 DB구조
    • 개념 단계 하나의 개념적 스키마로 구성되어 있으며 전체 DB내 규칙과 구조를 표현
  3. 내부 스키마
    • 개발자 관점, 저장 장치 관점
    • DB의 물리적 저장 구조

3 level schema의 독립성과 매핑

각 계층 구조를 유기적으로 연결해주는 매핑 과정을 통해, 3-level schema는 데이터 독립성을 가진다.

특정 스키마가 바뀌더라도 매핑을 다시 하면, 다른 계층의 스키마 내용은 변하지 않아도 된다. (추상화)

  • 데이터 독립성 보장
    • 데이터 독립성 보장을 위해서는 DBA가 필요할 때마다 DDL을 변경해주어야한다.
    • 각 단계(외부/내부/개념적 스키마)의 독립성을 보장하기 위해서 변경사항이 생겼을 때 DBA가 적절한 작업을 해주기 떄문에 독립성이 보장된다고 할 수 있다.

논리적 사상 = 외부적/개념적 사상 = 논리적 데이터의 독립성 (외부 스키마 👉 개념 스키마)

  • 논리적 스키마가 변하더라도 상위 단계에 존재하는 외부 스키마가 영향을 받지 않는 성질
  • 외부적 뷰와 개념적 뷰의 상호 관련성을 정의
  • 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있고 개념적 뷰의 필드 타입은 변화가 없는 것과 같다.
  • 외부 인터페이스를 위한 스키마 구조는 전체 통합된 개념적 스키마와 연결된다.

물리적 사상 = 개념적/내부적 사상 = 물리적 데이터 독립성 (개념 스키마 👉 내부 스키마)

  • 데이터베이스 관리 시스템의 성능 향상을 위해 시스템을 바꾸거나 물리 스키마 구조를 변경하는 경우에 물리 스키마가 바뀌더라도 개념스키마나 사용자가 이용하는 응용 프로그램은 영향을 받지 않는다.
  • 개념적 뷰와 저장된 DB의 상호 관련성을 정의
  • 만약 저장된 DB구조가 바뀌면 개념적 스키마는 그대로 남아있게 개념적/내부적 사상이 바뀌어야함
  • 통합된 개념적 스키마 구조와 물리적 테이블 스페이스(물리 저장된 구조)가 연결되는 구조
This post is licensed under CC BY 4.0 by the author.