데이터 모델링 접근 절차와 방법

데이터 모델링 접근 절차와 방법

Author
Description
Created at
Jul 10, 2025 04:08 AM
Tags

1. 데이터 모델링의 목적 이해

논리 모델링은 데이터의 구조를 정의하고 비즈니스 요구사항을 반영하는 과정입니다. 월별 자산 이익 내역 테이블의 경우, 어떤 데이터를 어떤 형태로 저장하고 분석할지를 결정하는 단계입니다. 논리 모델은 기술적 구현(예: DB 종류)보다는 비즈니스 개념과 관계에 초점을 맞춥니다.
결과물로 제출해야 할 것:
  • 논리 데이터 모델 다이어그램: 엔터티(테이블)와 속성(컬럼), 관계(Relationship)를 포함한 다이어그램 (예: ERD, Entity-Relationship Diagram).
  • 엔터티 정의서: 각 엔터티와 속성의 설명, 데이터 타입, 제약조건(예: PK, FK) 등을 포함한 문서.
  • 비즈니스 요구사항 정리: 모델링의 기반이 된 요구사항을 간단히 문서화.

2. 신입이 실행할 수 있는 처리 절차

다음은 논리 모델링을 시작하기 위한 단계별 절차입니다. 데이터 모델링 경험이 없어도 따라 할 수 있도록 구체적으로 설명합니다.

(1) 비즈니스 요구사항 파악

  • 해야 할 일: 어떤 데이터를 수집하고, 어떤 분석을 위해 테이블을 만드는지 이해합니다.
  • 방법:
      1. 업무 담당자와 인터뷰:
          • "자산 이익 내역"이 어떤 데이터를 포함해야 하는지 물어보세요. 예를 들어:
            • 자산은 어떤 종류인가? (예: 주식, 채권, 부동산 등)
            • 이익은 어떻게 계산되는가? (예: 수익 - 비용, 배당금 등)
            • 어떤 기간 단위로 데이터를 집계하나? (월별, 연도별 등)
            • 어떤 추가 정보가 필요한가? (예: 고객, 계좌, 자산 카테고리 등)
          • 질문 예시: "이 테이블로 어떤 보고서를 만들 건가요?", "어떤 데이터가 필수인가요?"
      1. 비즈니스 문서 확인:
          • 기존 보고서, 엑셀 파일, 요구사항 문서를 검토해 어떤 데이터가 필요한지 파악합니다.
          • 예: 월별 자산 이익 보고서 샘플이 있다면, 어떤 컬럼(필드)이 포함되었는지 확인.
      1. 핵심 질문 정리:
          • 데이터의 주체는 무엇인가? (예: 자산, 고객, 계좌)
          • 어떤 속성이 필요한가? (예: 자산 ID, 이익 금액, 날짜)
          • 데이터 간 관계는 어떻게 되는가? (예: 자산과 고객은 다대일 관계인가?)

(2) 핵심 엔터티와 속성 식별

  • 해야 할 일: 데이터를 저장할 엔터티(테이블)와 속성(컬럼)을 정의합니다.
  • 방법:
      1. 엔터티 도출:
          • 월별 자산 이익 내역은 보통 여러 엔터티로 나뉩니다. 예를 들어:
            • 자산(Asset): 자산의 고유 정보 (예: 자산 ID, 자산 이름, 자산 유형).
            • 이익 내역(Profit): 이익 관련 데이터 (예: 이익 금액, 기준 월).
            • 고객(Customer) 또는 계좌(Account): 자산을 소유한 주체.
          • 예: "월별 자산 이익"은 자산별, 월별로 이익을 기록하므로 Profit 엔터티가 핵심이 될 가능성이 큽니다.
      1. 속성 정의:
          • 각 엔터티에 어떤 속성이 필요한지 나열합니다.
          • 예: Profit 엔터티의 속성
            • 자산 ID (Asset_ID)
            • 기준 월 (Profit_Month)
            • 이익 금액 (Profit_Amount)
            • 계좌 ID (Account_ID, 필요 시)
      1. 속성의 특성 정의:
          • 데이터 타입: 숫자(예: DECIMAL), 문자(예: VARCHAR), 날짜(예: DATE) 등.
          • 제약조건: 기본 키(PK), 외래 키(FK), 필수 여부(NOT NULL) 등.
          • 예: Asset_ID는 외래 키로 Asset 테이블과 연결.

(3) 관계 정의

  • 해야 할 일: 엔터티 간의 관계를 정의합니다 (예: 1:1, 1:N, N:N).
  • 방법:
      1. 관계 파악:
          • 예: 자산 한 개는 여러 월의 이익 내역을 가질 수 있으므로 Asset과 Profit은 1:N 관계.
          • 고객 한 명이 여러 자산을 소유할 수 있다면 Customer와 Asset은 1:N 관계.
      1. 관계 다이어그램 작성:
          • ERD 툴(예: Lucidchart, Draw.io, ERDPlus, 또는 회사에서 제공하는 툴)을 사용해 관계를 시각화.
          • 예: Asset 테이블의 Asset_ID가 Profit 테이블의 Asset_ID와 연결.

(4) 논리 데이터 모델 다이어그램 작성

  • 해야 할 일: ERD를 작성해 엔터티, 속성, 관계를 시각화합니다.
  • 방법:
      1. 툴 선택:
          • 무료 툴: Draw.io, Lucidchart(무료 버전), ERDPlus.
          • 회사에서 제공하는 툴: Oracle SQL Developer, Toad Data Modeler 등.
      1. ERD 구성 요소:
          • 엔터티: 사각형으로 표시 (예: Asset, Profit).
          • 속성: 엔터티 안에 속성 이름을 나열.
          • 관계: 선으로 엔터티 간 연결, 관계 유형(1:N 등) 표시.
          • 제약조건: PK, FK를 명시.
      1. 예시 ERD 구조:
        1.  
          [Asset] ----(1:N)---- [Profit] - Asset_ID (PK) - Profit_ID (PK) - Asset_Name - Asset_ID (FK) - Asset_Type - Profit_Month - Profit_Amount

(5) 엔터티 정의서 작성

  • 해야 할 일: 각 엔터티와 속성을 문서로 정리합니다.
  • 방법:
    • 엑셀이나 워드로 표를 만들어 작성.
    • 표 형식 예시:
      • 엔터티
        속성명
        설명
        데이터 타입
        제약조건
        예시 데이터
        Asset
        Asset_ID
        자산 고유 식별자
        VARCHAR(10)
        PK, NOT NULL
        A001
        Asset
        Asset_Name
        자산 이름
        VARCHAR(50)
        NOT NULL
        주식 A
        Profit
        Profit_ID
        이익 내역 식별자
        VARCHAR(10)
        PK, NOT NULL
        P001
        Profit
        Asset_ID
        자산 ID
        VARCHAR(10)
        FK, NOT NULL
        A001
        Profit
        Profit_Month
        기준 월
        DATE
        NOT NULL
        2025-01-01
        Profit
        Profit_Amount
        이익 금액
        DECIMAL(15,2)
        NOT NULL
        10000.50

(6) 검토 및 피드백

  • 해야 할 일: 작성한 모델을 상사나 팀원에게 검토받습니다.
  • 방법:
      1. 내부 검토: ERD와 정의서를 팀원에게 공유하고 피드백 요청.
      1. 비즈니스 담당자 확인: 요구사항을 충족하는지 확인.
      1. 수정: 피드백을 반영해 모델 수정.

3. 일하는 방식과 팁

데이터 모델링은 처음엔 어렵게 느껴질 수 있지만, 다음 팁을 참고하면 수월해집니다.
  1. 작게 시작하세요:
      • 모든 것을 한 번에 완벽히 하려 하지 말고, 핵심 엔터티 하나(예: Profit)부터 모델링한 뒤 점차 확장.
      • 예: "월별 자산 이익"만 먼저 정의하고, 고객이나 계좌는 필요 시 추가.
  1. 질문 적극적으로 하기:
      • 모르는 용어나 요구사항은 반드시 물어보세요. 예: "이익 금액은 세전인가요, 세후인가요?"
      • 신입은 질문이 많아도 괜찮습니다. 오히려 명확히 하지 않으면 나중에 문제가 됩니다.
  1. 참고 자료 활용:
      • 기존 데이터 마트의 테이블 구조를 참고하세요. (예: 비슷한 테이블의 스키마 확인)
      • 회사 내부 데이터 사전(Data Dictionary)이 있다면 필수로 검토.
  1. 툴 익히기:
      • Draw.io 같은 무료 툴로 연습하며 ERD 그리는 법을 익히세요.
      • 회사 툴이 있다면 사용법을 선배에게 배워두세요.
  1. 문서화 습관 들이기:
      • 작업 과정(예: 요구사항 정리, 수정 내역)을 간단히 기록하세요. 나중에 검토나 보고 시 유용합니다.
  1. 시간 관리:
      • 논리 모델링은 보통 2~5일 내 초안을 완성하도록 계획하세요.
      • 예: 1일(요구사항 파악), 2일(엔터티/속성 정의), 1일(ERD 작성), 1일(문서화 및 검토).

4. 예시 논리 모델 (월별 자산 이익 내역)

간단한 예시로, 요구사항이 "월별로 자산의 이익 금액을 기록하고, 자산 정보와 연결"이라고 가정하면:

ERD 예시

 
[Asset] ----(1:N)---- [Profit] - Asset_ID (PK) - Profit_ID (PK) - Asset_Name - Asset_ID (FK) - Asset_Type - Profit_Month - Profit_Amount

엔터티 정의서 예시

엔터티
속성명
설명
데이터 타입
제약조건
Asset
Asset_ID
자산 고유 식별자
VARCHAR(10)
PK, NOT NULL
Asset
Asset_Name
자산 이름
VARCHAR(50)
NOT NULL
Asset
Asset_Type
자산 유형
VARCHAR(20)
NOT NULL
Profit
Profit_ID
이익 내역 식별자
VARCHAR(10)
PK, NOT NULL
Profit
Asset_ID
자산 ID
VARCHAR(10)
FK, NOT NULL
Profit
Profit_Month
기준 월
DATE
NOT NULL
Profit
Profit_Amount
이익 금액
DECIMAL(15,2)
NOT NULL

5. 추가 조언

  • 정규화 고려: 데이터 중복을 줄이기 위해 3NF(3차 정규화)까지 고려하세요. 예: 자산 유형을 별도 테이블로 분리할지 고민.
  • 확장성 생각: 나중에 추가될 데이터(예: 고객, 계좌)를 고려해 유연한 구조로 설계.
  • 팀원과 소통: 신입이라면 중간중간 상사에게 진행 상황을 공유하며 방향이 맞는지 확인하세요.

6. 다음 단계

논리 모델링이 완료되면:
  • 상사나 팀원에게 검토받고 피드백 반영.
  • 필요 시 물리 모델링(실제 DB 테이블 설계)으로 넘어감. 이는 논리 모델을 기반으로 DB에 맞게 조정하는 과정.