SQL

SQLD - 데이터 모델링의 이해 (데이터 모델의 이해)

taey 2024. 11. 15. 16:25

데이터 모델의 이해

모델링의 개념

  • 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고, 구조화된 형태로 표현하는 과정
  • 데이터베이스의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의

 

모델링의 특징

  1. 단순화(Simplication)
    • 현실을 단순화하여 핵심 요소에 집중하고, 불필요한 세부 사항을 제거
    • 단순화를 통해 복잡한 현실 세계를 이해하고, 표현하기 쉬워짐
  2. 추상화(Abstraction)
    • 현실 세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정
    • 다양한 현상을 일정한 양식인 표기법에 따라 표현
  3. 명확화(Clarity)
    • 대상에 대한 애매모호함을 최대한 제거하고, 정확하게 현상을 기술하는 과정
    • 명확화를 통해 모델을 이해하는 이들의 의사소통을 원활히 함

 

데이터 모델링 3가지 관점

  1. 데이터 관점
    • 데이터가 어떻게 저장되고, 접근되고, 관리되는지를 정의하는 단계
  2. 프로세스 관점
    • 시스템이 어떤 작업을 수행하며, 이러한 작업들이 어떻게 조직되고, 조정되는지를 정의하는 단계
    • 데이터가 시스템 내에서 어떻게 흐르고 변환되는지에 대한 확인
  3. 데이터와 프로세스 관점
    • 데이터 관점과 프로세스 관점을 결합하여 시스템의 전반적인 동작을 이해하는 단계
    • 특정 프로세스가 어떤 데이터를 사용하는지, 데이터가 어떻게 생성되고 변경되는지를 명확하게 정의

 

데이터 모델링 유의점

  1. 중복(Duplication)
    • 한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
  2. 비유연성(Inflexibility)
    • 사소한 업무 변화에 대해서도 작은 모델 변경이 되지 않도록 정의
    • 데이터 정의를 프로세스와 분리
  3. 비일관성(Inconsistency)
    • 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
    • 데이터 간 상호 연관 관계를 명확히 정의
    • 데이터 품질 관리 필요
    • 데이터의 중복이 없더라도 비일관성은 발생할 수 있음

 

 

데이터 모델링 3가지 요소

  • 대상(Entity) : 업무가 관리하고자 하는 대상(객체)
  • 속성(Attribute) : 대상들이 갖는 속성(하나의 특징으로 정의될 수 있는 것)
  • 관계(Relationship) : 대상들 간의 관계

 

데이터 모델링의 3단계

  1. 개념적 모델링
    • 업무 중심적이고, 포괄적(전사적)인 수준의 모델링
    • 추상화 수준이 가장 높음
    • 업무를 분석 뒤 업무의 핵심 엔티티(Entity)를 추출하는 단계
    • 도출된 핵심 엔터티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
  2. 논리적 모델링
    • 개념적 모델링의 결과를 토대로 세부 속성, 식별자, 관계 등을 표현하는 단계
    • 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용
    • 동일한 논리적 모델을 사용하는 경우 쿼리도 재사용 가능
    • 데이터 정규화 수행
    • 재사용성이 높은 논리적 모델은 유지 보수가 용이해짐
  3. 물리적 모델링
    • 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
    • 데이터베이스 성능, 디스크 저장 구조, 하드웨어의 보안성, 가용성 등을 고려
    • 가장 구체적인 데이터 모델링
    • 추상화 수준은 가장 낮음(가장 낮은 모델링이므로)

 

 

스키마의 3단계 구조

  • 스키마 : 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타 데이터의 집합
  • 외부, 개념, 내부 스키마로 분리
  • 사용자의 관점과 실제 설계된 물리적인 방식을 분리하기 위해 고안됨
  1. 외부 스키마
    1. 사용자가 보는 관점에서 데이터베이스 스키마를 정의
    2. 사용자나 응용 프로그램이 필요한 데이터를 정의(View : 사용자가 접근하는 대상)
  2. 개념 스키마
    1. 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
    2. 전체 데이터베이스의 개체, 속성, 관계, 데이터 타입 등을 정의
  3. 내부 스키마
    1. 데이터가 물리적으로 어떻게 저장되는지를 정의
    2. 데이터의 저장 구조, 컬럼, 인덱스 등을 정의

 

3단계 스키마의 독립성

  • 독립성 : 물리적, 논리적 구조를 변경하더라도 사용자가 사용하는 응용 프로그램에 영향을 주지 않는 특성
  1. 논리적 독립성 : 논리적 데이터 구조가 변경되어도(개념 스키마 변경) 응용 프로그램에 영향을 주지 않는 특성
  2. 물리적 독립성 : 물리적 구조가 변경되어도(내부 스키마 변경) 개념/외부 스키마에 영향을 주지 않는 특성

 

데이터 모델의 표기법(ERD : Entity Relationship Diagram)

  • 엔터티(Entity)와 엔터티 간의 관계(Realationship)를 시각적으로 표현한 다이어그램
  • 1976년 피터 첸(Peter Chen)이 만든 표기법, 데이터 모델링 표준으로 사용

 

ERD 작성 절차 (6단계)

  1. 엔터티를 도출한 후 그린다.
  2. 엔터티 배치
  3. 엔터티 간의 관계를 설정
  4. 관계명을 서술
  5. 관계의 참여도 기술
  6. 관계의 필수 여부를 확인