alt

[New!! 2026] (1과목) SQLD 완벽 요약강의 | 요약강의 | 데이터 모델링의 이해 | 최단시간 최대효율👍 | 핵심 요약노트 | SQL개발자

2026년 11월 9일 공유

데이터 모델링의 이해

개요

  • 콘텐츠 유형: 강의
  • 데이터 모델링의 개념과 절차를 학교의 학생·과목·수강 사례로 설명한다.
  • 주요 내용은 모델링 원칙, 데이터 모델의 구성 요소, 스키마 구조, 식별자와 키, 정규화, 트랜잭션 및 널 처리이다.

핵심 개념

데이터 모델링의 개념과 원칙

데이터 모델링은 현실 세계의 정보를 약속된 표기법으로 데이터베이스 구조에 표현하는 과정이다. 모델은 다음 특성을 갖춰야 한다.
  • 단순성: 누구나 쉽게 이해할 수 있어야 한다.
  • 추상성: 현실의 주요 특징을 간략하게 표현해야 한다.
  • 명확성: 모호하지 않아야 한다.
  • 유연성: 데이터나 업무 변화에 대응할 수 있어야 한다.
  • 유일성: 같은 데이터를 중복 저장하지 않아야 한다.
  • 일관성: 데이터 간 관계를 명확하고 일관되게 표현해야 한다.
데이터 모델링은 다음 세 관점으로 살펴본다.
  • 데이터 관점: 학생·과목 등 데이터 자체
  • 프로세스 관점: 수강 신청 등 업무 흐름
  • 상관 관점: 데이터와 업무 흐름의 관계
데이터의 생성·조회·수정·삭제를 분석하는 CRUD 분석도 활용한다.

모델링 절차와 구성 요소

모델링은 구체성이 높아지는 세 단계로 진행한다.
  1. 개념적 모델링: 현실 세계를 추상화하고 약속된 표기법으로 표현한다. 엔터티 관계 다이어그램(ERD) 등을 사용한다.
  1. 논리적 모델링: 컴퓨터가 이해할 수 있도록 테이블 형태의 논리 구조로 변환하고 정규화를 수행한다.
  1. 물리적 모델링: 논리 구조를 실제 저장 공간에 구현한다.
데이터 모델의 필수 구성 요소는 엔터티, 속성, 관계다.

엔터티와 속성

  • 엔터티: 현실 세계에 존재하며 명확하게 구분할 수 있는 객체. 예: 학생, 과목, 수강, 고객, 주문
  • 엔터티는 유일한 식별자와 둘 이상의 인스턴스·속성을 가져야 하며, 업무상 필요하고 다른 엔터티와 관계를 맺는다.
  • 엔터티 이름은 현업에서 쓰는 명확한 단수 명사를 사용하고, 약어와 중복을 피한다.
  • 유형에 따라 유형 엔터티, 개념 엔터티, 사건 엔터티로 나뉜다.
  • 발생 시점에 따라 기본 엔터티, 중심 엔터티, 행위 엔터티로 나뉜다. 기본 엔터티는 독립적으로 존재할 수 있지만 중심·행위 엔터티는 기본 엔터티에 의존한다.
속성은 더 이상 분리되지 않는 최소 데이터 단위다. 속성값은 한 개씩 저장해야 하며, 속성은 업무상 관리 대상이어야 한다. 주식별자를 통해 다른 속성값이 유일하게 결정되는 함수적 종속 관계도 중요하다.
  • 기본 키(PK): 인스턴스를 유일하게 구분하는 속성
  • 외래 키(FK): 다른 테이블의 기본 키를 참조해 테이블 간 관계를 연결하는 속성
  • 도메인: 속성이 가질 수 있는 값의 범위나 제한 조건. 유효한 값만 허용해 데이터 무결성을 보장한다.

관계와 식별자

관계는 엔터티 사이의 논리적 연관성이다. 관계를 표현할 때는 관계명, 차수, 선택 사양을 고려한다.
  • 차수는 일대일, 일대다, 다대다 등 엔터티 간 참여 수를 표현한다.
  • 선택 사양은 엔터티의 관계 참여가 필수인지 선택인지를 나타낸다.
  • 다대다 관계는 관계형 데이터베이스에서 바로 표현하기 어려우므로 교차 엔터티를 두어 일대다 관계들로 나눈다.
  • 관계가 적절한지 판단할 때는 업무 규칙, 정보 조합, 규칙의 서술 가능성, 동사의 존재 여부를 확인한다.
식별자는 인스턴스를 유일하게 구분하는 속성 또는 속성의 집합이다.
  • 주식별자: 대표성·유일성·최소성을 갖고, 값이 변하지 않으며 널을 허용하지 않는다.
  • 보조식별자: 유일하게 구분할 수 있지만 대표성이 낮은 식별자
  • 내부 식별자: 엔터티 내부에서 생성되는 식별자
  • 외부 식별자: 다른 엔터티에서 가져오는 식별자
  • 단일 식별자: 속성 하나로 구성
  • 복합 식별자: 여러 속성의 조합으로 구성
  • 본질 식별자: 현실에 실제로 존재하는 식별자
  • 인조 식별자: 데이터베이스 설계 편의를 위해 인위적으로 만든 식별자
부모 엔터티의 식별자를 자식 엔터티의 주식별자로 사용하는 식별 관계에서는 부모와 자식의 생명 주기가 연결된다. 부모 식별자를 일반 속성으로만 사용하는 비식별 관계에서는 자식이 독립적으로 남을 수 있다.

데이터베이스 스키마와 관계 표기

ANSI/SPARC 스키마 구조는 세 계층으로 구성된다.
  • 외부 스키마: 사용자나 응용 프로그램별 관점
  • 개념 스키마: 데이터베이스 전체의 논리적 구조
  • 내부 스키마: 물리적 저장 구조
이 구조는 두 가지 독립성을 지원한다.
  • 논리적 독립성: 개념 스키마가 바뀌어도 외부 스키마에 영향이 없다.
  • 물리적 독립성: 저장 장치나 물리 구조가 바뀌어도 개념·외부 스키마에 영향이 없다.
관계 표기법으로는 IE 표기법과 바커 표기법이 소개된다. 선택적 참여는 IE 표기법에서 원으로, 바커 표기법에서 점선으로 표현한다. 바커 표기법에서는 속성의 널 허용 여부도 표기할 수 있다.

상세 정리

키와 무결성

키는 테이블에서 데이터를 식별하고 관계를 연결하는 핵심 요소다.
  • 후보키: 유일성과 최소성을 만족하는 속성 또는 속성 조합
  • 기본키: 후보키 중 대표성을 가진 키
  • 대체키: 기본키로 선택되지 않은 나머지 후보키
  • 슈퍼키: 유일성은 만족하지만 최소성은 만족하지 않는 키
  • 외래키: 다른 테이블의 기본키를 참조하는 키
기본키는 널이나 중복값을 허용하지 않아야 하며, 이를 개체 무결성이라고 한다. 외래키 값은 참조 대상 테이블의 기본키에 존재해야 하며, 이를 참조 무결성이라고 한다.

정규화와 함수적 종속

정규화는 데이터 중복을 줄이고 삽입·삭제·갱신 이상을 방지하기 위해 테이블을 분리하는 과정이다.
  • 삽입 이상: 특정 정보를 추가하려고 할 때 불필요한 다른 정보까지 함께 입력해야 하는 문제
  • 삭제 이상: 한 정보를 삭제할 때 보존해야 할 다른 정보까지 함께 삭제되는 문제
  • 갱신 이상: 같은 정보가 여러 곳에 중복되어 일부만 수정될 경우 데이터가 불일치하는 문제
함수적 종속에서 결정자는 다른 속성값을 결정하고, 종속자는 결정자에 의해 값이 정해진다.
  • 완전 함수적 종속: 종속자가 기본키 전체에 종속
  • 부분 함수적 종속: 종속자가 복합 기본키의 일부에만 종속
  • 이행 함수적 종속: 기본키가 아닌 속성이 다른 속성을 결정하는 관계
주요 정규형은 다음과 같다.
  • 제1정규형: 모든 속성값이 원자값이어야 한다.
  • 제2정규형: 부분 함수적 종속을 제거한다.
  • 제3정규형: 이행 함수적 종속을 제거한다.
정규화로 테이블이 나뉘면 여러 테이블을 연결해 조회하는 조인이 필요하다. 조인으로 성능이 저하될 경우 이상 현상을 감수하면서 테이블을 다시 합치는 반정규화를 적용하기도 한다.

특수한 데이터 모델과 트랜잭션

  • 계층형 데이터 모델: 상사와 부하 직원처럼 자기 자신을 참조하는 계층 구조를 표현한다.
  • 상호배타적 관계: 여러 대상 중 하나만 선택해 연결되는 관계다.
트랜잭션은 데이터베이스에서 논리적으로 처리되는 작업 단위다. 성공하면 커밋하고, 오류가 발생하면 롤백해 이전 상태로 되돌린다.
트랜잭션의 4대 특성은 ACID다.
  • 원자성: 작업 전체가 수행되거나 전혀 수행되지 않아야 한다.
  • 일관성: 트랜잭션 전후에 데이터의 일관성이 유지되어야 한다.
  • 고립성: 동시에 실행되는 트랜잭션이 서로 간섭하지 않아야 한다.
  • 지속성: 완료된 결과는 시스템 장애 이후에도 보존되어야 한다.

널과 인조 식별자

널은 0이나 빈 문자열과 달리 값이 없는 상태다. 값이 없으므로 일반적인 비교·연산이 불가능하고, 집계 함수에서는 제외될 수 있다.
인조 식별자는 실제 업무 데이터와 무관하게 사용할 수 있어 개발과 유지보수가 편리하다. 특히 복합키 구성이나 업무 속성 변경의 부담을 줄일 수 있다. 반면 데이터 중복이나 불필요한 인덱스가 생길 수 있다.
공개 노트 모두 보기