물리적 모델링은 논리적 모델을 실제 데이터베이스에 구현 가능하도록 구체화하는 단계이다. 이 단계에서는 DBMS의 성능, 저장 구조, 제약 조건, 인덱스 등 실무적인 요소를 세밀하게 고려해야 한다.
각 속성에 대해 DBMS에 적합한 데이터 타입을 지정한다.
VARCHAR / CHAR: 가변길이 / 고정 길이INT / BIGINT: 데이터 범위 고려DATE, TIMESTAMP: 시간 정보 저장BOOLEAN, ENUM: 상태갑 표현가능한 작은 크기의 데이터 타입을 사용하여 저장 공간과 성능을 최적화하는 것이 좋다.
조회 성능 향상을 위해 사용되며, 테이블에 따라 전략적으로 생성해야 한다.
WHERE, JOIN, ORDER BY 등에 사용되는 컬럼에 생성된다.인덱스가 많을수록 쓰기 성능이 저하되고 유지 비용이 증가한다.
대용량 데이터 처리 시 필수적으로 고려해야 할 사항이다.
데이터 무결성을 유지하기 위한 규칙 설정.
| 제약조건 | 설명 |
|---|---|
PRIMARY KEY | 유일성 + NOT NULL |
FOREIGN KEY | 다른 테이블과의 관계 표현 및 참조 무결성 유지 |
UNIQUE | 중복 방지 |
NOT NULL | 필수 값 |
CHECK | 특정 조건 만족 여부 (예: age > 0) |
DEFAULT | 값이 없을 때 자동 설정 값 |
DBMS에서 제공하는 다양한 물리적 속성을 설정한다.
| 항목 | 설명 |
|---|---|
| 데이터 타입 | 저장 효율과 연산 성능 고려한 타입 선택 |
| 인덱스 | 쿼리 성능 최적화를 위한 전략적 설정 |
| 제약조건 | 무결성 유지와 데이터 품질 보장 |
| 파티셔닝/샤딩 | 대용량 데이터 분산 저장 |
| 테이블 옵션 | 스토리지 엔진, 압축, AUTO_INCREMENT 등 |
| 문자셋/Collation | 다국어 지원 및 정렬 방식 설정 |
| 성능 최적화 | 조회 패턴 분석, 통계 정보, 캐싱 전략 |
| 보안/백업 | 암호화, 권한 제어, 복구 방안 |