[DB]SQLD 자격증 강좌

[SQLD강좌]1) 데이터모델의 이해

greeniti 2025. 1. 1. 20:13

 

데이터모델링이란 
  • 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
  • 현실세계의 데이터(WHAT)에 대해 약속된 표기법에 의해 표현하는 과정
  • 데이터베이스를 구축하기 위한 분석/설계의 과정

데이터 모델링은 데이터베이스 설계와 관련이 깊으며, 데이터 모델링은 주로 다음 3단계로 진행됩니다.

 

참고: 하이라이트 표시 부분은 시험에 자주 출제되는 부분이며 중요도에 따라  로 표시하였습니다. 


1. 개념적 데이터 모델링 (Conceptual Data Modeling)

추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행.

전사적 데이터 모델링. EA수립시 많이 이용

  • 목적: 비즈니스 요구사항을 이해하고 데이터를 고수준에서 모델링.
  • 도구: ERD(Entity-Relationship Diagram) 사용.
  • 주요 요소:
    • 엔터티(Entity): 데이터가 저장될 주요 개체(예: 사용자, 제품).
    • 속성(Attribute): 각 엔터티가 가지는 세부 정보(예: 사용자 이름, 제품 가격).
    • 관계(Relationship): 엔터티 간의 연관성(예: 사용자가 제품을 구매).

2. 논리적 데이터 모델링 (Logical Data Modeling)

시스템으로 구축하고자하는 업무에 대해 KEY, 속성, 관계 등을 정확하게 표현

재사용성이 높음

  • 목적: 데이터베이스 관리 시스템(DBMS) 독립적으로 데이터 구조를 정의.
  • 세부 설계:
    • 테이블(릴레이션)로 매핑.
    • 각 테이블의 컬럼과 데이터 타입 정의.
    • 정규화(Normalization)를 통해 데이터 중복 제거 및 무결성 확보.
  • : 사용자 테이블과 제품 테이블 설계.

3. 물리적 데이터 모델링 (Physical Data Modeling)

실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계

  • 목적: DBMS에 맞춘 실제 구현.
  • 활동:
    • 테이블 생성(SQL 스크립트 작성).
    • 인덱스 설계.
    • 스키마 최적화.
  • 고려 사항:
    • 성능(쿼리 속도).
    • 저장소 효율성.
    • 확장성.

데이터 모델링 도구

  • ERD 도구:
    • Lucidchart
    • draw.io
    • MySQL Workbench
    • ER/Studio
    • PowerDesigner
  • 데이터베이스 설계:
    • PostgreSQL, MySQL, SQL Server, Oracle.

실제 예시

예를 들어, "전자상거래 플랫폼"을 설계한다고 가정하면:

1. 개념적 모델링:

  • 엔터티: 사용자(User), 제품(Product), 주문(Order).
  • 관계:
    • 사용자 - 주문: 1:N
    • 주문 - 제품: N:M

2. 논리적 모델링:

  • 사용자 테이블: user_id, name, email.
  • 제품 테이블: product_id, name, price.
  • 주문 테이블: order_id, user_id, order_date.

3. 물리적 모델링:

CREATE TABLE Users (
    user_id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

CREATE TABLE Products (
    product_id INT PRIMARY KEY,
    name VARCHAR(100),
    price DECIMAL(10, 2)
);

CREATE TABLE Orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
);