데이터 모델의 이해

sql
공개

2025년 8월 19일

데이터 모델의 이해

Overview

  • 모델링: 현실세계관리하고자 하는 데이터를 모델단순화해 표현한 것
  • 특징
    1. 추상화
    2. 단순화
    3. 명확화
  • 모델링의 세 가지 관점
    1. 데이터 관점: 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지에 대해서 모델링
    2. 프로세스 관점: 이 업무가 실제로 처리하고 있는 일은 무엇인지, 앞으로 처리해야 하는 일은 무엇인지 모델링
    3. 데이터와 프로세스의 상관 관점: 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지 모델링
  • 모델링의 세 가지 단계
    1. 개념적 모델링: 전사적인 모델링
    2. 논리적 모델링: key, 속성, 관계 등을 모두 표현하는 것
    3. 물리적 모델링: 실제 물리적으로 데이터베이스를 설계
  • 데이터의 독립성
    • 외부 스키마: 각 사용자가 보는 데이터베이스의 스키마를 정의
    • 개념 스키마: 데이터베이스 싀마를 통합하여 전체 데이터베이스를 나타냄
    • 내부 스키마: 물리적인 저장 구조(칼럼, 인덱스 등)을 나타냄.
    • 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음.
    • 물리적 독립성: 내부 스키마가 변경되어도 외부 / 개념 스키마는 영향을 받지 않음.
  • ERD
    1. Peter Chen
    2. IDEF1X
    3. IE/Crow’s Foot
    4. Min-Max/ISO
    5. UML
    6. CaseMethod / Barker

Entity

  • 특징
    1. 업무에서 쓰이는 정보여야 함
    2. 유니크함을 보장할 수 있는 식별자가 있어야 함
    3. 2개 이상의 인스턴스를 가지고 있어야 함
    4. 반드시 속성을 가지고 있어야 함
    5. 다른 엔티티와 1개 이상의 관계를 가지고 있어야 함
  • 분류
    • 유형 vs 무형
      1. 유형 엔티티: 물리적으로 존재
      2. 개념 엔티티: 개념적으로 존재
      3. 사건 엔티티: 행위를 함으로써 발생
    • 발생 시점
      1. 기본 엔티티: 독립적으로 생성됨
      2. 중심 엔티티: 기본 엔티티로부터 파생
      3. 행위 엔티티: 2개 이상의 엔티티로부터 파생

Attribute

  • 특성에 따른 분류
    • 기본속성
    • 설계속성: 필요하진 않지만 모델링을 위해 생긴 것
    • 파생속성: 계산하기 편하게 사용하려고 만든 것
  • 구성방식에 따른 분류
    • PK
    • FK
    • 일반 속성

Relationship

  • 존재관계
  • 행위관계
  • 표기법
    • 관계명
    • 관계차수
    • 관계선택사양

Identifiers

  • 유일성

  • 식별성

  • 불변성

  • 존재성: NULL이 될 수 없음

  • 분류

    • 주식별자
    • 보조식별자
    • 내부식별자
    • 외부식별자
    • 단일식별자
    • 복합식별자
    • 원조식별자
    • 대리식별자

데이터 모델과 SQL

정규화

  • 제 1정규형: 모든 속성은 반드시 하나의 값만 가져야 한다.
  • 제 2정규형: 엔티티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다.
  • 제 3정규형: 주 식별자가 아닌 모든 속성간에는 중속될 수 없다.

반정규화

  • 테이블 반정규화
    1. 테이블 병합
    2. 테이블 분할
    3. 테이블 추가
  • 칼럼 반정규화
    1. 중복 칼럼 추가
    2. 파생 칼럼 추가: 부하가 예상되는 칼럼을 미리 계산
    3. 이력 테이블 칼럼 추가: 최신 데이터 여부 같은 조회 기준이 될 칼럼을 미리 만드는 것
  • 관계 반정규화

트랜잭션

NULL

  • 가로 연산은 NULL, 세로 연산은 NULL 무시
맨 위로