데이터 모델링: 고려 사항

김기현·2025년 6월 16일

Database

목록 보기
16/24

물리적 모델링은 논리적 모델을 실제 데이터베이스에 구현 가능하도록 구체화하는 단계이다. 이 단계에서는 DBMS의 성능, 저장 구조, 제약 조건, 인덱스 등 실무적인 요소를 세밀하게 고려해야 한다.

물리적 모델링에서 고려해야 할 핵심 요소

데이터 타입, Data Type

각 속성에 대해 DBMS에 적합한 데이터 타입을 지정한다.

  • VARCHAR / CHAR: 가변길이 / 고정 길이
  • INT / BIGINT: 데이터 범위 고려
  • DATE, TIMESTAMP: 시간 정보 저장
  • BOOLEAN, ENUM: 상태갑 표현

가능한 작은 크기의 데이터 타입을 사용하여 저장 공간과 성능을 최적화하는 것이 좋다.

인덱스, Index

조회 성능 향상을 위해 사용되며, 테이블에 따라 전략적으로 생성해야 한다.

  • 기본 키: 자동으로 인덱스를 생성한다.
  • 보조 인덱스: WHERE, JOIN, ORDER BY 등에 사용되는 컬럼에 생성된다.
  • 복합 인덱스: 다중 컬럼에 인덱스를 설정할 경우 사용한다.

인덱스가 많을수록 쓰기 성능이 저하되고 유지 비용이 증가한다.

파티셔닝과 샤딩, Partitioning and Sharding

  • 파티셔닝: 하나의 테이블을 논리적으로 분할한다.
    • ex) user의 가입 시기에 따라 날짜별 파티션을 둔다.
  • 샤딩: 데이터를 여러 DB 서버에 분산 저장한다.
    • ex) 사용자의 정보를 여러 DB 서버에 분산해서 저장한다.

대용량 데이터 처리 시 필수적으로 고려해야 할 사항이다.

제약조건, Constraints

데이터 무결성을 유지하기 위한 규칙 설정.

제약조건설명
PRIMARY KEY유일성 + NOT NULL
FOREIGN KEY다른 테이블과의 관계 표현 및 참조 무결성 유지
UNIQUE중복 방지
NOT NULL필수 값
CHECK특정 조건 만족 여부 (예: age > 0)
DEFAULT값이 없을 때 자동 설정 값

저중 구조 및 테이블 옵션

DBMS에서 제공하는 다양한 물리적 속성을 설정한다.

  • 스토리지 엔진
  • ROW_FORMAT
  • 테이블 압축
  • AUTO_INCREMENT

정렬 및 인코딩 설정

  • 문자셋(Charset): UTF-8 등 설정
  • Collection: 정렬/비교 방식 - utf8mb4_general_ci
  • 언어 및 지역 설정에 따라 문자 인식 결과가 달라진다.

성능 최적화 고려

  • 쿼리 패턴 분석: 어떤 쿼리가 자주 사용되는지 파악 후 그에 맞게 인덱스/파티션 설계.
  • 통계 정보 수집: 옵티마이저가 실행 계획을 잘 선택할 수 있도록 설계한다.
  • VIEW, MATERIALIZED VIEW 사용 여부
  • 캐싱 전략: 빈번한 조회에 대해 Redis, Memcached 등 고려.

백업, 복구 및 보안

  • 백업 전략: 정기적 덤프, 증분 백업 등.
  • 접근 제어 및 권한 설정: 사용자별 CRUD 권한 제한.
  • 압호화: 민감 데이터는 컬럼 수준 암호화 고려.

요약

항목설명
데이터 타입저장 효율과 연산 성능 고려한 타입 선택
인덱스쿼리 성능 최적화를 위한 전략적 설정
제약조건무결성 유지와 데이터 품질 보장
파티셔닝/샤딩대용량 데이터 분산 저장
테이블 옵션스토리지 엔진, 압축, AUTO_INCREMENT 등
문자셋/Collation다국어 지원 및 정렬 방식 설정
성능 최적화조회 패턴 분석, 통계 정보, 캐싱 전략
보안/백업암호화, 권한 제어, 복구 방안
profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글