Data Governance Study - Data Model (1)

데이터 구조 관리를 위한 데이터 모델링

데이터 거버넌스를 가장 크게 차지하는 부분이 데이터 구조 관리이다. 데이터 구조 관리를 위해 가장 먼저 선행되고 데이터 엔지니어 실무자들이 프로젝트 초기에 공수를 들이는 과정이 Data Modeling이다.
Data Governance
저자

Kwangmin Kim

공개

2024년 08월 04일

1 Data Modeling

  • 데이터 모델링은 현실 세계의 정보를 컴퓨터 시스템에서 표현할 수 있는 논리적 구조로 변환하는 과정이다.
  • 이는 데이터 요소, 그들 간의 관계, 그리고 데이터에 대한 제약 조건을 정의한다.

1.1 데이터 모델링의 주요 구성 요소

  • 엔티티(Entity): 데이터를 저장할 대상 (예: 고객, 주문)
  • 속성(Attribute): 엔티티의 특성 (예: 고객명, 주문일자)
  • 관계(Relationship): 엔티티 간의 연관성
  • 키(Key): 데이터를 고유하게 식별하는 속성
  • 제약조건(Constraint): 데이터의 무결성을 보장하는 규칙

1.1.1 특성(Characteristic) vs 속성(Attribute) vs 속성값(Property)

  • 특성 (Characteristic)
    • 어떤 대상이 본래 가지고 있는 특징, 성질, 성향, 성격
    • 추상적이거나 일반적인 성질을 강조하는 포괄적인 개념
    • 구체적인 값이 아니라 전체적인 성향을 뜻하며 쉽게 변하지 않는 개념
    • 예시:
      • 사람의 특성(Characteristic): 장소와 시간이 바뀌어도 그 성향이나 성격이 변하지 않는다. (조용함, 사고 중심적, 관찰력 높음)
      • 물의 특성: 장소와 시간이 극적으로 바뀌지 않으면 그 성질이나 성격이 변하지 않는다. (무색, 무취, 액체 상태)
  • 속성 (Attribute)
    • 무엇인가에 속하여 본질적이고 정적인(static) 특징을 이루는 요소
    • 객체(Object)나 개념이 가지고 있는 특성의 구체적이고 하위 성격의 개념
    • 데이터베이스, 프로그래밍, 철학 등에서 특정 대상 및 개체의 성질을 나타내는 개념
    • 예시:
      • 데이터베이스 - 사용자(개체, entity) 테이블의 속성: 이름, 이메일, 생년월일, 주소
      • 객체 지향 프로그래밍(OOP) - 자동차(객체, object)의 속성: 색상, 제조사, 모델명, 연료 종류 (class의 member)
  • 속성값 (Property)
    • 객체 지향 프로그래밍(OOP)의 객체(Object) 내부에서 동적(dynamic)으로 변경될 수 있는 값

    • 즉, 객체가 가진 실제 값 (상태)

    • Attribute가 데이터베이스의 메타데이터라면,

    • 객체 지향 프로그래밍(OOP)의 Property는 객체의 실제 값(data state)을 나타냄

    • 예시

      class Car:
          def __init__(self, color, speed):
              self.color = color  # Property
              self.speed = speed  # Property
      
          my_car = Car("red", 120)
          print(my_car.color)  # red
          my_car.color = "blue"  # Property 값 변경 가능
          print(my_car.color)  # blue

1.2 데이터 모델링의 단계

1.2.1 개념적 데이터 모델링

  • 목적: 비즈니스 관점에서 높은 수준의 데이터 구조 정의
  • 특징: 주요 엔티티와 그들 간의 관계를 식별
  • 산출물: 개체-관계 다이어그램(ERD, Entity Relation Diagram)

1.2.2 논리적 데이터 모델링

  • 목적: 비즈니스 규칙과 데이터 요구사항을 상세히 표현
  • 특징: 엔티티의 속성 정의, 정규화 수행, 키 설정
  • 산출물: 상세 ERD, 데이터 사전

1.2.3 물리적 데이터 모델링

  • 목적: 실제 데이터베이스 구현을 위한 스키마 설계
  • 특징: 테이블, 컬럼, 인덱스 등의 물리적 구조 정의
  • 산출물: 데이터베이스 스키마, SQL 스크립트

1.3 데이터 모델링의 중요성

  • 데이터 품질 향상: 일관성 있고 정확한 데이터 구조 제공
  • 시스템 성능 최적화: 효율적인 데이터 접근 및 저장 구조 설계
  • 유지보수 용이성: 시스템 변경 및 확장이 쉬워짐
  • 비즈니스 이해 증진: 데이터 관점에서 비즈니스 프로세스 이해
  • 의사소통 도구: 기술팀과 비즈니스팀 간의 소통 촉진

2 도식

2.1 ERD vs Schema

간단히 말하면, 둘의 차이는 데이터의 개념적, 논리적 모델링에서 그려진 ERD를 물리적 단계에서 DB스키마로 구체화 시킨다.

  • 정의
    • 스키마: 데이터베이스의 구조와 제약 조건을 정의하는 공식적인 설명
    • ERD: 데이터베이스의 개체(엔티티), 속성, 관계를 시각적으로 표현한 다이어그램
  • 표현 방식
    • 스키마: 주로 텍스트 형식으로 표현되며, SQL 문 등으로 작성된다.
    • ERD: 그래픽 형식으로 표현되어 시각적 이해를 제공
  • 상세도
    • 스키마: 데이터 타입, 키, 제약 조건 등 세부적인 정보를 포함.
    • ERD: 전체적인 구조와 관계에 초점을 맞추며, 세부 사항은 생략될 수 있다.
  • 사용 목적
    • 스키마: 데이터베이스 시스템에서 실제 구현을 위해 사용
    • ERD: 설계 단계에서 개념적 모델링을 위해 주로 사용
  • 시점
    • 스키마: 주로 물리적 데이터베이스 설계 단계에서 사용
    • ERD: 주로 개념적, 논리적 설계 단계에서 사용

Subscribe

Enjoy this blog? Get notified of new posts by email: