데이터베이스 설계나 SQL 시험을 준비하는 데 있어 가장 기초이자 필수 개념인 데이터 모델링. 이번 글에서는 개념적 이해부터 실무 적용 시 주의할 점까지 자세히 정리해봤습니다. 특히 주니어 개발자와 SQLP, 정보처리기사 수험생에게 실질적인 도움이 되도록 구성했습니다.
[SQLP 자격증 시리즈 #0] 시작하며 – 왜 SQLP 자격증인가?
데이터 시대의 중심에서 살아가는 개발자, 데이터 분석가, 엔지니어에게 있어 "SQL 실력"은 더 이상 선택이 아닌 필수가 되었습니다. 저는 지금부터 SQLP 자격증을 준비하면서 직접 정리한 정보들
qkqtodn1.tistory.com
✅ 데이터 모델이란?
- 정의: 현실 세계의 데이터를 개념적 구조로 표현한 것
- 데이터 간의 구조, 관계, 제약조건을 정형화함
→ 예를 들어, “회원은 상품을 주문할 수 있다”라는 문장을 데이터 모델로 표현한다면,
회원(엔터티), 상품(엔터티), 주문(관계) 등이 포함된 구조가 됩니다.
✅ 데이터 모델의 3단계
단계 | 설명 | 예시 |
---|---|---|
개념적 모델 | 사람도 이해할 수 있는 수준의 추상적 표현 | “회원은 상품을 주문할 수 있다” |
논리적 모델 | 데이터베이스 독립적인 구조로 테이블·컬럼 정의 | 회원 테이블, 상품 테이블, 주문 관계 정의 |
물리적 모델 | DBMS에 맞춘 실제 구현 (인덱스, 파티셔닝 등) | 인덱스 추가, VARCHAR → TEXT 등 타입 최적화 |
📌 비유로 쉽게 이해하기
- 개념적 모델: 연필로 그린 스케치
- 논리적 모델: CAD로 그린 정밀 도면
- 물리적 모델: 실제 시공 도면 (철근·배선 포함)
✅ 데이터 모델링 시 주의사항
1️⃣ 중복(Duplication)
동일한 정보가 여러 테이블에 반복되어 저장되는 현상
예: 고객 테이블과 주문 테이블에 모두 고객 주소가 저장됨
→ 주소 변경 시 모든 테이블에서 수정해야 하므로 오류 가능성 ↑
✔ 해결 방법:
- 정규화(Normalization): 중복 속성은 별도 엔터티로 분리
- 참조 키(FK)로 연관 관계 유지
2️⃣ 비유연성(Inflexibility)
데이터 구조가 변화나 확장에 취약한 상태
예: 상품 유형이 늘어날 수 있는데, “product_type_1”, “product_type_2” 같은 컬럼으로 고정
→ 새로운 유형 추가 시 DB 스키마 자체 변경 필요
✔ 해결 방법:
- 코드 테이블 설계 (예: 상품 유형 코드를 별도 테이블로)
- Enum 사용 대신 동적 참조 모델 설계
- 정규화 + 상속 모델링 고려 (e.g. ERWIN, PowerDesigner 등에서 설계)
3️⃣ 비일관성(Inconsistency)
같은 데이터인데 저장된 값이나 의미가 서로 다른 경우
예: 고객 테이블에는 등급이 ‘GOLD’, 주문 테이블에는 ‘GOLD PLUS’로 존재
→ 기준 불일치로 인해 등급 정책 운영 곤란
✔ 해결 방법:
- 중앙 통제 마스터 테이블 설계 (예: 등급 코드 테이블)
- 참조 무결성 제약조건 설정 (FOREIGN KEY)
- SSOT(Single Source of Truth) 개념 도입
🧠 추가 팁: 시험 대비 요약
- 개념적 모델 → 논리적 모델 → 물리적 모델 흐름을 외우자
- 정규화와 비정규화, 무결성 제약조건(FK, UNIQUE 등) 개념은 꼭 암기
- 모델링 도구: ERD Cloud, dbdiagram.io, MySQL Workbench 등 실습 추천
📌 마무리
데이터 모델링은 단순한 설계 도구가 아닌, 시스템의 확장성, 일관성, 성능을 좌우하는 핵심입니다.
시험 대비뿐만 아니라 실무 개발자로서도 필수 개념이니 꼭 잘 익혀두세요!
[SQLP 자격증 시리즈 #1] 필기+실기 통합 시험 구조 완전 분석!
SQLP (Structured Query Language Professional) 자격증은 한국데이터산업진흥원이 주관하는 데이터베이스 전문가 자격시험입니다. 데이터 모델링, SQL 고급 활용, 성능 최적화 등 실무 능력을 종합적으로 검
qkqtodn1.tistory.com
'자격증 > sqlp ( sql 전문과 과정 )' 카테고리의 다른 글
속성(Attribute) 개념 완벽 정리 : SQL 자격증·정보처리기사 대비 (1) | 2025.06.18 |
---|---|
엔터티(Entity) 개념 정리 : SQL 자격증·정보처리기사 대비 (0) | 2025.06.17 |
ERD 핵심 개념 쉽게 이해하기 – 엔터티, 인스턴스, 속성 완전 정리 (0) | 2025.06.11 |
[SQLP 자격증 시리즈] 시작하며 – 왜 SQLP 자격증인가? (1) | 2025.06.11 |
[SQLP 자격증 준비일지] – 하루 2시간 루틴으로 꾸준히 (2) | 2025.06.11 |