데이터 모델링 이해

데이터 모델링 이해

1. 모델링의 정의 및 필요성

  • 모델링이란?
    • 현실 세계의 복잡한 사물, 사건, 개념 등을 단순화하고 추상화하여 특정 목적에 맞게 표현하는 과정입니다.
    • 추상화: 복잡한 현실 세계에서 핵심적인 요소만 뽑아내는 과정
    • 단순화: 복잡한 현실 세계를 이해하기 쉽도록 단순하게 표현하는 과정
    • 명확화: 모호하거나 불분명한 부분을 명확하게 정의하고 표현하는 과정
  • 모델링의 목적
    • 현실 세계를 이해하고 분석하기 쉽게 만듭니다.
    • 시스템 개발 과정에서 의사소통을 원활하게 합니다.
    • 데이터의 중복과 불일치를 방지하고 데이터 품질을 향상시킵니다.
    • 시스템의 유지보수 및 확장을 용이하게 합니다.
  • 모델링의 3가지 관점
    • 데이터 관점 (What): 비즈니스에서 관리해야 할 데이터는 무엇인지, 데이터 간의 관계는 어떻게 되는지를 정의합니다. (예: 고객, 상품, 주문)
    • 프로세스 관점 (How): 비즈니스 프로세스가 어떻게 흘러가는지, 각 단계에서 어떤 작업이 수행되는지를 정의합니다. (예: 주문 처리, 결제 처리)
    • 상관관계 관점: 데이터와 프로세스가 어떻게 상호 작용하는지를 정의합니다. (예: 고객이 주문하면 재고 데이터가 변경됨)
  • 데이터 모델링
    • 데이터 관점에서 현실 세계를 추상화하고 표현하는 과정입니다.
    • 목적: IT 시스템에서 데이터를 체계적으로 관리하고 활용하기 위한 기반을 마련합니다.

2. 데이터 모델링 단계

  • 개념적 데이터 모델링 (Conceptual Data Modeling)
    • 목적: 비즈니스 요구사항을 포괄적으로 이해하고, 데이터 모델의 가장 높은 수준의 추상화된 표현을 생성합니다.
    • 특징:
      • 세부적인 기술적 제약사항은 고려하지 않고, 핵심 엔티티와 관계를 정의합니다.
      • 주로 Entity-Relationship Diagram (ERD)을 사용합니다.
    • 예시: 고객, 상품, 주문과 같은 주요 엔티티를 정의하고, 고객과 주문, 상품과 주문 간의 관계를 정의합니다.
  • 논리적 데이터 모델링 (Logical Data Modeling)
    • 목적: 개념적 모델을 기반으로 데이터의 상세 구조를 정의하고, 데이터베이스 시스템에 적합한 형태로 만듭니다.
    • 특징:
      • 엔티티의 속성, 데이터 타입, 관계를 구체적으로 정의합니다.
      • 기본 키 (Primary Key), 외래 키 (Foreign Key)를 정의합니다.
      • 데이터베이스 종류와 독립적입니다.
    • 예시: 고객 엔티티에 고객 ID, 이름, 주소 등의 속성을 정의하고, 각 속성의 데이터 타입을 지정합니다.
  • 물리적 데이터 모델링 (Physical Data Modeling)
    • 목적: 논리적 모델을 실제 데이터베이스에 맞게 설계하고 구현합니다.
    • 특징:
      • 데이터베이스의 유형 (예: MySQL, Oracle)에 따라 세부적인 구현 사항을 결정합니다.
      • 테이블, 컬럼, 인덱스 등을 정의합니다.
      • 성능, 저장 공간, 보안 등을 고려하여 최적화합니다.
    • 예시: 테이블 이름, 컬럼 이름, 컬럼 타입, 제약 조건 등을 정의하고, 인덱스 설계를 통해 데이터 검색 속도를 향상시킵니다.
  • 프로젝트 생명주기에서 데이터 모델링
    • 개념적 모델링: 정보전략 계획 및 분석 단계에서 진행합니다.
    • 논리적 모델링: 분석 단계에서 진행합니다.
    • 물리적 모델링: 설계 단계에서 진행합니다.

3. 데이터 독립성 (Data Independence)

  • 데이터 독립성이란?
    • 데이터베이스의 스키마를 변경하더라도, 응용 프로그램에 영향을 주지 않도록 분리하는 것을 의미합니다.
  • 데이터 독립성의 종류
    • 논리적 데이터 독립성: 개념 스키마가 변경되어도 외부 스키마에는 영향을 주지 않습니다.
    • 물리적 데이터 독립성: 내부 스키마가 변경되어도 개념 스키마에는 영향을 주지 않습니다.
  • 데이터 독립성이 필요한 이유
    • 데이터베이스 구조가 변경될 때, 응용 프로그램을 수정해야 하는 부담을 줄입니다.
    • 유지보수 비용을 절감하고, 데이터베이스 변경에 대한 유연성을 확보합니다.

4. 데이터베이스 3단계 구조

  • 외부 스키마 (External Schema)
    • 개별 사용자나 응용 프로그램이 보는 데이터베이스의 관점입니다.
    • 각 사용자에게 필요한 데이터만 보여줍니다.
  • 개념 스키마 (Conceptual Schema)
    • 데이터베이스의 전체적인 논리 구조입니다.
    • 모든 사용자에게 공통적으로 적용되는 통합된 데이터 표현입니다.
    • 개체(Entity), 속성(Attribute), 관계(Relationship)를 포함합니다.
  • 내부 스키마 (Internal Schema)
    • 데이터베이스가 물리적으로 저장되는 방식을 나타냅니다.
    • 저장 장치, 데이터 구조, 인덱스 등을 포함합니다.
  • 데이터 독립성과 3단계 구조
    • 논리적 데이터 독립성: 외부 스키마와 개념 스키마 사이에 존재합니다.
    • 물리적 데이터 독립성: 개념 스키마와 내부 스키마 사이에 존재합니다.
  • 사상 (Mapping)
    • 외부적/개념적 사상: 외부 스키마와 개념 스키마 간의 상호 변환을 정의합니다.
      • 개별 사용자가 데이터에 접근하는 형식을 전체 데이터 구조에 맞게 조정합니다.
    • 개념적/내부적 사상: 개념 스키마와 내부 스키마 간의 상호 변환을 정의합니다.
      • 논리적인 데이터 구조를 실제 저장 구조로 변환합니다.

Categories:

Updated:

Leave a comment