[DB] DB 모델링(1)

배창민·2025년 8월 25일
post-thumbnail

DB 모델링

1) 모델링(Modeling)이 필요한 이유

  • 큰 다리는 설계도가 필수: 현실을 단순·정확하게 표현해야 구현 가능

  • 효과: 의사소통, 시뮬레이션, 문제해결, 핵심파악, 교육·훈련, 연구·개발 모두에 유용

  • 모델링 3요소

    • 단순화: 목적에 맞는 것만 선택
    • 추상화: 공통 형식으로 묶어 표현
    • 명확화: 애매함 제거, 누구나 이해 가능하게 기술

2) 데이터 모델링(Data Modeling)의 필요성

파일 저장의 문제

  • 앱 종료/장애 시 복구 어려움, 이진 포맷은 사람이 해석 난해

엑셀 저장의 한계

  • 컬럼·행 증가에 따른 중복/데이터 폭증/성능 저하
  • 삽입·삭제·수정 시 이상(Anomaly) 발생

관계형 DB의 장점

  • 데이터 종류·의미를 구조화, 테이블 간 관계로 연관성 추적
  • 중복 제거, 무결성·성능·확장성 향상
  • 설계 시 필요: 테이블 분리 기준, 컬럼 의미 정의, 관계(연관 규칙) 명시

3) 개발 절차 속 데이터 모델링 위치

  • 전형적 폭포수(요구→분석→설계→구현…)

    • 데이터 관점 모델링: ERD 산출 → 물리 설계/구축/튜닝
    • 프로세스 모델링: 업무 절차·방법
    • 상관 모델링: 업무(프로세스)가 데이터에 미치는 영향
  • 정보시스템: 데이터를 입력·처리·산출하여 경영 의사결정을 돕는 시스템


4) 이해관계자

  • 구축 참여자 전원(현업 포함)이 모델을 이해·설명할 수 있어야
    의사소통 오류·해석 실수 감소

5) 데이터 모델 표기법

  • 피터첸(ER Model, 1976): 국내 대학에서 보편 교육
  • IE 표기법: 범용
  • 바커 표기법: 논리 모델에서 배타관계/슈퍼·서브 표현이 더 구체적

6) 관계형 모델 핵심 — 무결성(Integrity)

  • 무결성: 데이터 값이 완전·정확
  • 정합성(Consistency): 서로 모순 없이 일관
    ➜ 정합성이 있어도 실제 값이 틀리면 무결성 위반

무결성 유형

  • 엔터티 무결성: 각 인스턴스는 고유, PK는 NULL 불가
  • 참조 무결성: FK부모 PK에 존재하거나 NULL
  • 도메인 무결성: 동일 속성은 타입/길이/NULL/중복/기본값 등 규칙 공유
  • 업무 무결성: 기업의 업무 규칙(비즈니스 룰) 준수

7) ERD 구성요소 정리

7-1. 엔터티(Entity)

  • 정의: 업무의 관심 대상(유·무형 사물)로, 관리해야 할 정보를 가짐

  • 도출 원칙: 업무 대상, 다수 인스턴스, 정체성 명확, 단일 주제, 식별자 존재

  • 도출 절차

    1. 엔터티 후보 풀·리스트 작성
    2. 분석 문서에서 명사 추출(중복/유사 정리)
    3. 속성 vs 엔터티 구분
    4. 시스템에서 관리 필요성 판단

    후보 풀: 애매한 명사 임시 보관 → 이후 정제 / 리스트: 엔터티명·포함 속성·유사어 기록

  • 종류

    • 실체: 사원/제품/고객 등 실재의 본질 관리
    • 기준(참조): 우편번호/영업일자 등 업무 기준 데이터(단일성 권장)
    • 행위: 계약/주문/입금 등 활동으로 발생한 원천 데이터
    • 가공: 집계/요약 등 원천 데이터의 결과 저장

7-2. 속성(Attribute)

  • 분해 기준

    • 단일 속성: 하나의 의미(부서명, 재고수량)
    • 복합 속성: 의미별 분해 가능(주소, 전화번호 등)
    • 다가(다치) 속성: 여러 값 보유(주문내역 등) → 1정규형에 따라 분리 권장
  • 특성 기준

    • 기초 속성: 엔터티 본질 설명
    • 관계 속성: 타 엔터티와의 연관(상대 주식별자인 경우가 많음)
    • 추출 속성: 원본 속성 연산 결과로 채움

7-3. 식별자(Identifier)

  • 주식별자(Primary): 인스턴스를 유일 구분(복합 가능)
    요건: 유일성, 최소성, 불변성, 존재성(NOT NULL)
    ➜ 없으면 인조 식별자 부여 가능
  • 외래식별자(Foreign): 부모 주식별자를 자식이 공통 속성으로 가짐
    ➜ 없으면 자식에 속성 추가 후 외래식별자 지정

7-4. 도메인(Domain)

  • 정의: 한 속성이 가질 수 있는 동일 타입의 원자값 집합

  • 도출/할당 절차

    1. 모든 속성 나열
    2. 합성명사 분리
    3. 공통(합성)명사 수집
    4. 공통 명사를 도메인으로 정하고 속성 할당
    5. 각 도메인에 데이터 타입/길이 지정

7-5. 관계(Relationship)

  • 정의: 두 엔터티 간 연관성(하위 엔터티 속성으로 관리될 때 표현)

  • 유형

    • 종속 관계: 부모 없이는 자식 존재 불가
    • 참조 관계: 연관은 있으나 존재는 독립 가능(참조 값 관리)
  • 구성요소

    • 카디널리티: 1:1 / 1\:M / M\:M
      M\:M교차(Association) 엔터티1\:M + M:1로 해소
    • 옵셔널리티: Mandatory(최소 1) vs Optional(최소 0)
  • 특별한 관계

    • 1:1: 성능/업무 규칙/성격 분리 목적(과도한 분해 지양)
    • 배타 관계: 여러 부모 관계 중 동시에 하나만 허용
    • 재귀 관계: 동일 엔터티 내 계층 구조(상·하위) 표현, 불필요한 다중 조인 방지
profile
개발자 희망자

0개의 댓글