[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)
);