데이터 모델링 기초 완벽 정리

모델링 정의·3단계·3요소, 좋은 모델의 조건, 성능 모델링, 분산 DB까지 한눈에 정리

1. 데이터 모델링이란?

정의

현실 세계의 업무 데이터를 약속된 표기법에 의해 표현하는 과정입니다. 정보 시스템을 구축하기 위해 어떤 데이터가 존재하는지, 업무에 필요한 정보가 무엇인지를 분석하는 방법입니다.

데이터 모델링의 3가지 관점

관점설명예시
데이터 관점업무가 어떤 데이터와 관련이 있는지고객, 주문, 상품 정보
프로세스 관점업무가 실제로 어떻게 처리되는지주문 접수, 결제, 배송 처리
데이터와 프로세스의 상관 관점데이터와 프로세스가 어떤 영향을 주고받는지주문 시 재고 차감, 결제 시 잔액 변경

데이터 모델링의 중요성

  • 파급효과(Leverage) — 데이터 모델 변경은 시스템 전체에 영향 (가장 큰 이유)
  • 복잡한 정보 요구사항의 간결한 표현 — 구조화된 형태로 정보를 표현
  • 데이터 품질 — 잘못된 모델은 잘못된 데이터를 양산

2. 모델링 3단계

개념적 → 논리적 → 물리적

단계목적산출물특징
개념적 모델링업무 전체의 큰 그림 파악ERD (개념 ERD)추상적, 업무 중심, 엔터티-관계 도출
논리적 모델링구체적인 데이터 구조 설계논리 ERD, 속성 정의서정규화, 키 결정, 참조무결성, DBMS 독립적
물리적 모델링실제 DB에 구현할 설계물리 ERD, DDL 스크립트성능, 저장 구조, 인덱스, DBMS 종속적

각 단계 핵심 키워드

  • 개념적 — 추상화 수준 가장 높음, 업무 영역별 핵심 엔터티와 관계 도출
  • 논리적 — 정규화 수행, KEY(PK/FK) 결정, 속성·도메인 정의, M:M 관계 해소
  • 물리적 — 테이블·컬럼·데이터타입 결정, 반정규화, 인덱스, 파티션 설계

3. 데이터 모델 3요소

엔터티·속성·관계

요소정의예시
엔터티 (Entity)업무에서 관리해야 할 데이터 집합고객, 주문, 상품
속성 (Attribute)엔터티를 구성하는 개별 정보 항목고객명, 전화번호, 주소
관계 (Relationship)엔터티 간의 연관성고객이 주문을 한다

엔터티의 특징과 분류

엔터티는 다음 조건을 모두 만족해야 합니다:

  • • 업무에서 필요로 하고 관리하고자 하는 정보
  • • 유일한 식별자(UID)에 의해 식별 가능
  • • 영속적으로 존재하는 인스턴스의 집합 (2개 이상)
  • • 반드시 속성을 가짐
  • • 다른 엔터티와 최소 1개 이상의 관계
분류 기준유형설명
발생 시점기본 엔터티독립적으로 존재 (고객, 상품, 부서)
중심 엔터티기본 엔터티로부터 발생 (주문, 계약)
행위 엔터티2개 이상 엔터티로부터 발생 (주문상세, 이력)
유무형유형 엔터티물리적 형태 있음 (사원, 물품)
무형 엔터티개념적 (보험종류, 조직)

속성의 분류

분류유형설명
특성에 따라기본 속성업무에서 직접 추출 (이름, 전화번호)
설계 속성설계 과정에서 만듦 (코드, 일련번호)
파생 속성다른 속성으로부터 계산 (합계, 평균)
엔터티 구성PK 속성엔터티를 고유하게 식별
FK 속성다른 엔터티와의 관계에서 포함된 속성
일반 속성PK, FK가 아닌 나머지 속성

관계의 분류

구분설명
존재적 관계엔터티의 존재 자체로 연관 (부서-사원: 사원은 부서에 소속)
행위적 관계특정 행위에 의해 연관 (고객-주문: 고객이 주문을 한다)
식별 관계부모의 PK가 자식의 PK에 포함 (실선으로 표시)
비식별 관계부모의 PK가 자식의 일반 속성(FK)으로 전이 (점선으로 표시)

4. 좋은 데이터 모델의 조건

4가지 핵심 조건

조건설명
완전성 (Completeness)업무에 필요한 모든 데이터가 빠짐없이 모델에 정의되어야 함
중복 배제 (Non-Redundancy)동일한 사실은 한 곳에만 저장 (중복 시 불일치 발생)
업무 규칙 (Business Rules)업무 규칙이 데이터 모델에 반영되어야 함 (제약조건)
데이터 재활용 (Reusability)통합적 관점에서 설계하여 다양한 업무에서 재활용 가능

추가 품질 요소

  • 일관성 (Consistency) — 데이터 간의 상호 연관 관계가 모순 없이 정의
  • 유연성 (Flexibility) — 업무 변화에 최소한의 모델 변경으로 대응 가능 (비유연성X)

5. 식별자 (Identifier)

식별자 분류

기준유형설명
대표성주식별자 (PK)엔터티를 대표, NOT NULL, 유일성
보조식별자유일성은 있지만 대표성 없음 (Unique Key)
생성 여부내부식별자자체적으로 생성 (주민번호, 사번)
외부식별자 (FK)다른 엔터티로부터 받아온 식별자
속성 수단일식별자하나의 속성으로 식별
복합식별자여러 속성을 조합하여 식별
대체 여부본질식별자업무에 의해 자연스럽게 생긴 식별자
인조식별자인위적으로 만든 대체 식별자 (시퀀스 등)

주식별자의 특징

  • 유일성 — 각 인스턴스를 유일하게 식별
  • 최소성 — 최소한의 속성으로 구성
  • 불변성 — 값이 자주 변하지 않아야 함
  • 존재성 — NOT NULL (반드시 값이 존재)

6. 성능 데이터 모델링

정의

데이터베이스의 성능 향상을 목적으로 데이터 모델을 설계하는 것입니다. 설계 단계부터 성능을 고려하면 나중에 튜닝하는 것보다 비용이 훨씬 적게 듭니다.

수행 절차

  • 1단계. 정규화를 정확하게 수행 — 데이터 중복 제거로 조회/입력/수정/삭제 성능 향상
  • 2단계. 데이터베이스 용량 산정 — 예상 데이터 양을 파악하여 설계에 반영
  • 3단계. 데이터베이스에 발생하는 트랜잭션 유형 파악 — CRUD 패턴 분석
  • 4단계. 용량과 트랜잭션에 따라 반정규화 수행 — 조회 성능이 중요한 경우 의도적 중복
  • 5단계. 이력 모델 조정, PK/FK 조정, 슈퍼/서브타입 조정

반정규화 유형

유형설명
테이블 병합1:1 관계나 슈퍼/서브타입을 하나로 합침
테이블 분할수직(컬럼 분리) 또는 수평(행 분리) 분할
중복 테이블 추가집계 테이블, 진행 테이블, 특정 부분만 복사
중복 컬럼 추가JOIN 없이 조회하기 위해 다른 테이블 컬럼을 추가
파생 컬럼 추가계산값을 미리 저장 (합계, 건수 등)

7. 분산 데이터베이스

정의

여러 지역에 분산된 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 하는 시스템입니다. 사용자는 데이터가 어디에 저장되어 있는지 알 필요가 없습니다.

분산 데이터베이스의 투명성

투명성설명
분할 투명성하나의 논리적 릴레이션이 여러 단편으로 분할되어도 사용자는 모름
위치 투명성데이터의 물리적 위치를 알 필요 없음
지역사상 투명성각 지역의 DBMS에 맞게 데이터 매핑이 자동 수행
중복 투명성데이터가 중복 저장되어도 사용자는 하나로 인식
병행 투명성동시에 여러 트랜잭션이 수행되어도 결과 일관성 보장
장애 투명성일부 장애가 발생해도 트랜잭션 정상 처리

장단점

  • 장점 — 지역 자치성, 신뢰성/가용성 향상, 빠른 응답 속도, 용량 확장 용이
  • 단점 — 설계/관리 복잡, 데이터 무결성 관리 어려움, 비용 증가, 보안 관리 복잡

8. 시험 포인트

SQLD 빈출 핵심 정리

  • 1. 모델링 3단계: 개념 → 논리 → 물리 — 추상화 수준 높음 → 낮음 순서, 논리적 모델링에서 정규화 수행
  • 2. 엔터티는 인스턴스 2개 이상 필수 — 1개만 있으면 엔터티로 부적절
  • 3. 속성 분류: 기본·설계·파생 — 파생 속성은 다른 속성으로부터 계산된 값
  • 4. 식별 관계(실선) vs 비식별 관계(점선) — 부모 PK가 자식 PK에 포함되면 식별, 일반 속성이면 비식별
  • 5. 주식별자 4가지 특징: 유일성·최소성·불변성·존재성 — NOT NULL + UNIQUE
  • 6. 좋은 모델의 조건: 완전성·중복배제·업무규칙·재활용 — 완전성이 가장 중요
  • 7. 성능 모델링은 정규화부터 시작 — 정규화 → 용량 산정 → 트랜잭션 분석 → 반정규화
  • 8. 반정규화는 조회 성능 향상 목적 — 중복을 허용하는 대신 JOIN 비용 절감
  • 9. 분산 DB 6가지 투명성 암기 — 분할·위치·지역사상·중복·병행·장애 투명성
  • 10. 엔터티 분류: 기본·중심·행위 (발생 시점 기준) — 기본(독립) → 중심(기본에서 파생) → 행위(2개 이상에서 파생)

개념을 확인했다면 문제로 실력을 검증해보세요