카테고리 없음

SQLD 자격증 공부 1주차

Yuuma 2026. 4. 19. 23:01

[SQLD 준비] 데이터 모델링의 이해 - 개념 정리

SQLD 1과목인 데이터 모델링의 이해 파트를 쭉 정리했다. 솔직히 처음엔 그냥 이론이라 가볍게 봤는데, 막상 보니까 생각보다 개념들이 많아서 꼼꼼히 봤다.


모델링이란?

현실 세계의 정보를 약속된 표기법으로 데이터베이스 구조에 맞게 표현하는 과정.

핵심 특징은 세 가지인데 줄여서 '단추명' 이라고 외우면 편하다.

  • 단순화 - 누구나 쉽게 이해할 수 있도록
  • 추상화 - 주요 특징만 간략하게 표현
  • 명확화 - 모호함 없이 명확하게

그리고 모델링에서 바라보는 관점은 데이터 관점, 프로세스 관점, 그리고 데이터와 프로세스의 상관 관점(CRUD 분석 기반)으로 나뉜다.


데이터베이스 모델링의 3단계

개념적 → 논리적 → 물리적 순서로 진행된다.

물리적 모델링으로 갈수록 구체화(낮은 수준의 추상화)된다는 점이 포인트. 이걸 반대로 헷갈리면 안 된다.

  • 개념적 모델링 : 현실 세계를 추상적 개념으로 표현, ERD 작성
  • 논리적 모델링 : 논리적 자료구조로 변환, 정규화 활용 → 재사용성이 높아짐
  • 물리적 모델링 : 실제 물리적 구조의 데이터로 변환

ERD 표기법

ERD는 피터 첸(Peter Chen)이 고안한 ER표기법에서 시작됐고, 실무에서는 주로 두 가지를 쓴다.

  • IE표기법 : 방향 당 방 하나씩 따로 — 실선/까마귀발 모양으로 관계 표현
  • Barker표기법 : 방 앞에 # 기호 — 선택적 참여를 점선으로 표현

ERD 작성 순서도 시험에 자주 나온다고 해서 외워뒀다. 엔터티 도출 → 배치 → 관계 설정 → 관계명 기술 → 관계 차수 기술 → 필수/선택사양 기술 줄이면 '도배설명차선'


ANSI-SPARC 스키마 구조

DB 설계도라고 보면 된다. 3계층으로 구성된다.

  1. 외부 스키마 (= 서브스키마, 사용자 뷰) : 사용자 입장, 여러 개의 외부스키마 존재
  2. 개념 스키마 (= 전체적인 뷰) : 전체적 논리 구조, DB관리자가 구성
  3. 내부 스키마 (= 저장스키마) : 물리적 저장장치 입장에서의 구조

독립성도 중요한 개념인데,

  • 논리적 독립성 : 개념 스키마 바뀌어도 외부 스키마에 영향 없음
  • 물리적 독립성 : 내부 스키마 바뀌어도 개념/외부에 영향 없음

은행 앱 예시로 보면 → 앱이 외부스키마, 입/출금 처리가 개념스키마, 저장소가 내부스키마 느낌이다.


엔터티

현실 세계에 존재하며 명확하게 구분 가능한 객체. (학생, 과목, 고객 등)

특징 정리:

  • 업무에서 필요로 하고 유일한 식별자를 보유
  • 인스턴스가 2개 이상인 집합
  • 2개 이상의 속성을 보유
  • 다른 엔터티와의 관계 필수

엔터티 분류

(1) 유무형에 따른 분류 → '개사유'로 암기

  • 유형 엔터티 : 물리적 형태가 존재 (학생, 책, 고객)
  • 개념 엔터티 : 형태는 없지만 개념적으로 구분 (과목, 학과, 부서)
  • 사건 엔터티 : 특정 시점에 발생한 사건 (수강, 주문, 예약)

(2) 발생 시점에 따른 분류

  • 기본 엔터티 : 독립적으로 존재 (학생, 과목, 고객, 직원)
  • 중심 엔터티 : 기본 엔터티와 행위 엔터티를 연결 (수강신청, 주문)
  • 행위 엔터티 : 두 개 이상의 엔터티를 상속받아 생성 (수강내역, 주문내역)

속성

더 이상 분리되지 않는 최소의 데이터 단위. 원자성이 핵심.

1개의 속성은 1개의 속성값만 가지며, 주식별자에 함수적으로 종속된다.

함수적 종속: A 속성에 의해 B가 유일하게 결정됨 (A → B)

속성의 분류

(1) 특성에 따른 분류

  • 기본 속성 : 본래 가지고 있는 속성 (이름, 학번, 고객ID)
  • 설계 속성 : 필요로 인하여 도출된 속성 (주문번호, 일련번호)
  • 파생 속성 : 계산된 값들 (합계, 평균) — 가급적 적게 사용

(2) 분해 가능 여부에 따른 분류

  • 단일 속성 : 하나의 의미로 구성 (이름, 학번)
  • 복합 속성 : 여러 개의 하위 속성으로 나눌 수 있음 (주소 → 시/도, 도로명, 건물번호)
  • 다중값 속성 : 여러 값을 가질 수 있음 (전화번호, 이메일, 취미) → 별도 테이블로 분리

(3) 구성방식에 따른 분류

  • 기본키(PK) : 인스턴스를 유일하게 구별 가능하게 하는 속성
  • 외래키(FK) : 다른 엔터티의 관계로 연결된 속성
  • 일반 속성 : PK/FK가 아닌 나머지 속성

자식 엔터티는 부모의 기본키(PK)를 외래키(FK)로 포함


관계

엔터티와 엔터티간의 논리적 연관성.

  • 존재적 관계 : 다른 엔터티가 존재해야만 존재 (사원-부서)
  • 행위적 관계 : 행동, 동작, 사건에 의해 발생 (학생-수강한다-수강)

ERD에서는 존재적/행위적을 구분하지 않지만, UML에서는 구분함

관계의 구성 3가지

  1. 관계명(Membership) : 관계의 이름
  2. 차수(Cardinality) : 엔터티 간 참여자 수 표현 (1:1, 1:M, M:N)
  3. 선택사양(Optionality) : 엔터티가 관계에 항상 참여하는지 여부 (O = 선택적 참여)

이걸 통틀어 '관차선' 으로 암기.

차수는 직관적인데, 1:1 관계는 학생-학과처럼 하나에 하나, 1:M은 학생이 여러 수강을 가질 수 있는 것, M:N은 학생과 과목처럼 양쪽 모두 여럿일 수 있는 것.


도메인

속성이 가질 수 있는 데이터의 타입과 크기에 대한 제한 사항을 정의하는 것. 데이터 무결성 보장이 목적.

예시: 성별(남, 여), 나이(0~120 사이 정수), 학번(8자리 정수형 숫자)