물리 데이터 모델링 Physical data modeling

agnusdei·2025년 5월 5일
0

Database

목록 보기
17/30

물리 데이터 모델링(Physical Data Modeling)은 논리 데이터 모델을 바탕으로 DBMS에 실제 구현 가능한 구조로 변환하는 과정입니다.
기술사 수준에서는 성능, 저장 효율, 인덱싱, 파티셔닝, 보안 등을 고려한 현실적이고 최적화된 구조 설계가 핵심입니다.


1. 물리 데이터 모델링 개요

구분설명
정의논리 모델을 기반으로 DBMS에 맞게 실제 테이블, 인덱스, 파티션, 스토리지 등을 설계하는 단계
목적성능 최적화, 데이터 무결성 유지, 운영환경 반영
산출물테이블 스키마, 인덱스 설계서, DDL 스크립트, 파티션 정의 등

2. 주요 설계 항목

1) 데이터 타입(Data Type) 지정

  • 논리형 → DBMS별 구체 타입으로 지정
  • 예: nameVARCHAR2(100), amountNUMBER(10,2)

2) 테이블 및 컬럼 설계

  • 정규화된 구조 기반으로 PK, FK, 제약조건 반영
  • 컬럼 순서: 자주 사용하는 컬럼 우선 배치 고려

3) 인덱스 설계

  • 기본키 인덱스는 자동 생성
  • 자주 검색/조인되는 컬럼은 보조 인덱스 생성
  • 예: user_id, course_id, payment_date

4) 파티셔닝(PARTITIONING)

  • 대용량 테이블에 대해 성능, 관리 효율을 위해 파티션 설계
  • 기준: 날짜, 사용자, 지역 등
  • 예: Paymentpayment_date 기준 RANGE 파티션

5) 물리적 제약조건 설정

  • PK, FK, UNIQUE, NOT NULL, CHECK
  • 무결성 보장 + 성능 고려

6) 스토리지 및 파일 그룹 지정

  • 테이블/인덱스의 저장 위치 지정 (Tablespace 등)
  • SSD, HDD 등 물리 디스크 설계 고려

7) 보안 및 권한

  • 사용자 접근 제어
  • 테이블/컬럼 수준 권한 설정

3. 예시: Payment 테이블 물리 모델

컬럼명데이터 타입제약조건설명
payment_idNUMBER(10)PK, NOT NULL결제 고유 ID
user_idNUMBER(10)FK → User결제한 사용자 ID
course_idNUMBER(10)FK → Course결제한 강의 ID
payment_dateDATENOT NULL결제 일자
amountNUMBER(10,2)CHECK > 0결제 금액
pay_methodVARCHAR2(20)카드, 계좌이체 등

인덱스 설계:

  • IDX_PAYMENT_USER_DATE (user_id, payment_date)
  • IDX_PAYMENT_DATE (payment_date) (→ 파티션 가능성 높음)

파티션 예:

PARTITION BY RANGE (payment_date)
(
  PARTITION p202501 VALUES LESS THAN (TO_DATE('2025-02-01','YYYY-MM-DD')),
  PARTITION p202502 VALUES LESS THAN (TO_DATE('2025-03-01','YYYY-MM-DD'))
)

4. 성능/운영 고려사항

항목고려 내용
접근 패턴검색 조건 기준 인덱스/파티션 설계
트랜잭션 부하동시성 제어 (락 경합 최소화)
백업/복구테이블별 복구 전략, 물리 위치 설계
용량 추정테이블별 데이터량/성장률 고려한 스토리지 설계
보안데이터 마스킹, 권한 제어, 감사 로그 등

어린이 버전 요약

논리 모델이 설계도라면, 물리 모델은 실제로 건물을 짓는 거예요!
벽돌 크기(자료형), 문 위치(인덱스), 창문(파티션), 보안 자물쇠(권한)까지 꼼꼼하게 설계해야 돼요!


0개의 댓글