1과목: 데이터 모델링의 이해

SQLD 1과목 핵심 개념을 한눈에 정리

1장. 데이터 모델링의 이해

데이터 모델링 정의

현실 세계의 데이터를 추상화하여 DB로 표현하는 과정. 업무에서 필요한 데이터를 분석하고 구조화하는 것.

3가지 관점

관점설명
데이터업무가 어떤 데이터와 관련이 있는지 (What)
프로세스업무가 실제로 하고 있는 일이 무엇인지 (How)
상관데이터와 프로세스의 관계 (Interaction)

3단계 스키마 구조 (데이터 독립성)

스키마설명독립성
외부 스키마사용자 관점의 뷰(View)논리적 독립성
개념 스키마통합된 전체 논리 구조
내부 스키마물리적 저장 구조물리적 독립성

논리적 독립성: 개념 스키마 변경 시 외부 스키마 영향 없음 / 물리적 독립성: 내부 스키마 변경 시 개념 스키마 영향 없음

데이터 모델링 3단계

단계설명산출물
개념적핵심 엔터티와 관계 도출 (추상화 높음)ERD
논리적속성, 키, 정규화 수행상세 ERD
물리적실제 DB 구현 (테이블, 인덱스, 파티션)테이블 명세

2장. 엔터티

엔터티 정의 및 특징

업무에 필요하고 관리해야 할 데이터의 집합. 반드시 2개 이상의 인스턴스가 있어야 함.

  • • 업무에서 필요로 하는 관리 대상
  • • 유일한 식별자에 의해 식별 가능
  • • 2개 이상의 속성 보유
  • • 다른 엔터티와 1개 이상의 관계
  • • 업무 프로세스에서 이용

엔터티 분류

분류 기준유형예시
유무형유형사원, 물품, 강사
개념보험상품, 조직
사건주문, 청구, 미납
발생시점기본 엔터티고객, 부서, 상품 (독립적)
중심 엔터티주문, 계약 (기본에서 파생)
행위 엔터티주문상세, 이력 (2개 이상 부모)

3장. 속성

속성 정의 및 특징

엔터티에서 관리하는 더 이상 분리되지 않는 최소 데이터 단위. 하나의 속성은 하나의 속성값만 가짐 (원자성).

속성 분류

유형설명예시
기본 속성업무에서 직접 추출한 속성이름, 전화번호
설계 속성설계 과정에서 만든 속성고객번호, 주문코드
파생 속성다른 속성으로부터 계산/변환된 속성합계, 평균, 나이

도메인

각 속성이 가질 수 있는 값의 범위(허용값). 예: 학년 속성의 도메인은 1~6, 성별 속성의 도메인은 남/여.

4장. 관계

관계 종류

종류설명예시
존재 관계존재 자체로 연관 (소속)부서 — 사원
행위 관계특정 행위에 의해 발생고객 — 주문

관계 표기법

항목설명
관계명관계의 이름 (동사형으로 표현, 양방향 각각 명명)
관계차수1:1, 1:N, M:N (참여하는 수)
관계선택사양필수(Mandatory) | 또는 선택(Optional) O

ERD 읽기 포인트

  • • 실선 = 식별관계 / 점선 = 비식별관계
  • • | (필수 참여) / O (선택 참여)
  • • 까마귀발(Crow's Foot) = 다(N) 쪽

5장. 식별자

식별자 분류

분류 기준유형설명
대표성주식별자 (PK)엔터티를 대표, 유일성 + NOT NULL
보조식별자유일성은 있으나 대표가 아님 (Unique)
생성여부내부식별자엔터티 내부에서 스스로 생성
외부식별자 (FK)다른 엔터티에서 받아온 식별자
속성 수단일식별자하나의 속성으로 식별
복합식별자2개 이상 속성으로 식별
대체여부본질식별자업무에 의해 자연 생성
인조식별자인위적으로 만든 대체키 (시퀀스 등)

식별관계 vs 비식별관계

구분식별관계비식별관계
FK 위치자식의 PK에 포함자식의 일반 속성
ERD 표기실선점선
NULL불가 (PK이므로)허용 가능
강한/약한강한 종속 (부모 없이 존재 불가)약한 종속 (독립적 존재 가능)

6장. 정규화

정규화 단계

단계규칙핵심
1NF모든 속성이 원자값반복 그룹 제거, 다중값 분리
2NF부분 함수종속 제거복합키의 일부에만 종속되는 속성 분리
3NF이행 함수종속 제거A→B→C일 때 A→C 종속 제거
BCNF모든 결정자가 후보키후보키가 아닌 결정자 제거

이상현상 (Anomaly)

유형설명
삽입 이상불필요한 데이터를 함께 삽입해야 하는 문제
갱신 이상일부만 수정 시 데이터 불일치 발생
삭제 이상필요한 데이터까지 함께 삭제되는 문제

함수종속성

X 값이 Y 값을 유일하게 결정하면 Y는 X에 함수종속 (X→Y). X를 결정자, Y를 종속자라 함. 정규화의 핵심 기반 개념.

7장. 반정규화

반정규화 정의

정규화된 테이블을 성능 향상을 위해 의도적으로 중복/통합/분리하는 기법. 데이터 무결성이 저하될 수 있어 꼭 필요한 경우에만 수행.

반정규화가 필요한 경우

  • • 조인이 많아 조회 성능이 저하될 때
  • • 대량 데이터 범위 처리 시
  • • 통계/집계 처리가 빈번할 때
  • • 특정 범위의 데이터만 자주 조회할 때

반정규화 유형

대상기법설명
테이블테이블 병합1:1 또는 1:N 관계를 하나로 통합
테이블 분할수직(컬럼) 또는 수평(행) 분할
테이블 추가통계, 이력, 부분 테이블 추가
컬럼중복 컬럼 추가조인 줄이기 위해 다른 테이블 컬럼 복사
파생 컬럼 추가계산 결과를 미리 저장 (합계 등)
관계중복 관계 추가빠른 경로로 직접 참조 관계 추가

8장. 기타

성능 데이터 모델링

데이터 모델링 단계에서부터 성능을 고려하여 설계하는 것. 분석/설계 단계에서 수행하는 것이 가장 효과적.

  • • 정규화를 정확히 수행
  • • DB 용량 산정
  • • 트랜잭션 유형 파악
  • • 반정규화 수행
  • • 이력 모델, PK/FK, 슈퍼/서브타입 조정

슈퍼타입 / 서브타입

공통 속성은 슈퍼타입에, 개별 속성은 서브타입에 모델링. 물리 변환 시 3가지 방식 선택.

방식설명특징
Single Table하나의 테이블로 통합조인 없음, NULL 많음
Plus Type슈퍼 + 서브 각각 테이블조인 필요, 명확한 구분
Single Type서브타입별 개별 테이블중복 있음, 조인 없음

분산 데이터베이스

여러 지역의 DB를 네트워크로 연결하여 하나의 DB처럼 사용하는 시스템.

  • 투명성(Transparency): 분할, 위치, 지역사상, 중복, 장애, 병행 투명성
  • 장점: 신뢰성, 가용성 향상, 빠른 응답
  • 단점: 관리 복잡, 무결성 제어 어려움, 비용 증가

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