DB/RDB

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

annovation 2024. 12. 24. 08:49

물리적 데이터 모델링

물리적 데이터 모델링(Physical Data Modeling)은 논리적 데이터 모델을 기반으로, 실제 데이터베이스에서 구현 가능한 구조를 설계하는 단계입니다.
이 단계에서는 DBMS의 특성, 성능 요구사항, 저장 장치의 구조 등을 고려하여 데이터베이스를 최적화된 형태로 설계하고, 결과적으로 SQL 문으로 변환하여 데이터베이스를 생성합니다.

특히, 이 단계에서는 성능을 향상 시키는 것이 가장 중요한데, 이를 위해서는 find slow query, 즉, 병목 현상이 발생하는 지점을 찾는게 중요하다.

 

* slow query

각 DBMS 마다 설정이 다르다.

 

mysql / mariadb 슬로우쿼리(slowquery) 탐지하기

mysql 또는 mariadb 에는 slow query 를 탐지해서 log 파일에 저장해주는 기능이 있다. DB 튜닝을 위해, 속도가 느린 쿼리를 탐지해서 알려주는 기능은 참 유용한 기능이다. 현재, slow query 탐지 기능이 동

bemeal2.tistory.com


주요 목표

  • 데이터베이스 구현 준비
    • 논리적 데이터 모델을 바탕으로 SQL 스키마를 생성하여 실제 DBMS에서 실행할 수 있도록 설계
  • 성능 최적화
    • 데이터 타입, 인덱스, 파티셔닝 등 최적화를 통해 데이터베이스 성능을 향상.
  • 무결성 보장
    • 데이터 무결성을 유지하기 위해 제약 조건 설정(예: Primary Key, Foreign Key, Unique, Check 등)
  • DBMS 종속적 설계
    • MySQL, PostgreSQL, Oracle 등 사용 중인 DBMS의 특성을 반영

주요 작업

1. 테이블 생성

  • 논리적 모델에서 정의된 엔터티를 DBMS의 테이블(Table)로 변환
  • 열(Column)의 데이터 타입, 크기, 기본값을 정의
CREATE TABLE Employees (
    emp_id INT PRIMARY KEY,
    name VARCHAR(100),
    salary DECIMAL(10, 2),
    department_id INT
);

 

 

2. 데이터 타입 지정

  • 논리적 모델의 속성에 대해 DBMS에 맞는 데이터 타입을 선택
  • ex. MySQL에서 문자열은 VARCHAR, 날짜는 DATE, 정수는 INT

 

3. 제약 조건 설정

데이터 무결성을 유지하기 위해 제약 조건 추가

  • Primary Key : 테이블 내에서 고유한 식별자
  • Foreign Key : 다른 테이블과의 관계를 정의
  • NOT NULL : 열이 비어있을 수 없음
  • UNIQUE : 열의 값이 고유해야 함
  • CHECK : 특정 조건을 만족하는 값만 허용
ALTER TABLE Employees
ADD CONSTRAINT fk_department
FOREIGN KEY (department_id) REFERENCES Departments(dept_id);

 

 

4. 인덱스 설계

  • 자주 조회되는 열(Column)에 인덱스를 추가하여 검색 속도를 높임
  • 인덱스는 테이블의 데이터에 대한 별도의 구조를 생성하여 검색 속도를 향상
CREATE INDEX idx_name ON Employees(name);

 

 

5. 파티셔닝 설계

  • 대량 데이터를 효율적으로 관리하기 위해 데이터를 논리적으로 분할
  • 파티셔닝은 쿼리 성능을 향상시키고, 데이터를 관리하기 쉽게 만듦
CREATE TABLE Sales (
    sale_id INT PRIMARY KEY,
    sale_date DATE,
    amount DECIMAL(10, 2)
)
PARTITION BY RANGE (YEAR(sale_date)) (
    PARTITION p2019 VALUES LESS THAN (2020),
    PARTITION p2020 VALUES LESS THAN (2021)
);

 

 

6. 성능 최적화

데이터베이스의 읽기/쓰기 성능을 개선하기 위해

  • 비정규화(Denormalization) 적용 읽기 성능 향상을 위해 데이터 중복을 허용
  • 캐싱(Cache) 전략 도입 자주 사용하는 데이터를 메모리에 저장하여 조회 속도 향상

요약

  • 물리적 데이터 모델링은 데이터베이스 설계의 마지막 단계로, 논리적 모델을 실제 DBMS에서 구현 가능하도록 최적화합니다.
  • 테이블, 열, 데이터 타입, 제약 조건, 인덱스, 파티셔닝 등을 정의하여 성능과 무결성을 보장합니다.
  • 물리적 데이터 모델링의 최종 결과는 SQL 문으로 생성되며, 이를 통해 데이터베이스를 구축하고 운영합니다.
  • 데이터베이스 설계에서 효율성과 성능을 극대화하려면 물리적 데이터 모델링 과정이 필수적입니다

출처

OpenAI ChatGPT (https://openai.com)

생활코딩 관계형 데이터 모델링 - 7.1. 물리적 데이터 모델링

반응형