작성 맥락
이 글은 직접 학습하거나 구현하며 남긴 개인 기술 기록입니다. 참고 자료가 있는 경우 본문에 출처를 남기고, 틀린 부분을 발견하면 수정합니다.
논리 E-R 다이어그램과 ERD
출제 빈도: 하
빈출 태그: ERD, 표기법, 확장 ERD
Database basic에서 다룬 학생·수강 개체를 그림으로 그리면 어떻게 될까. ERD는 그 개체들과 관계를 도형으로 시각화하는 표기법이다.
1. E-R 다이어그램 (ERD)
1.1 정의와 특징
- 개체와 개체간 관계를 미리 약속된 도형을 사용해서 표현한 도표
- 개념, 논리 데이터 모델링에서 많이 사용됨
- 특정 시스템 환경을 고려하지 않음
- 업무 영역이 변경된 경우 설계 변경이 발생할 수 있음
1.2 구성요소
- 개체
- 관계
- 속성
2. ERD 표기법
2.1 피터-첸 표기법
- ⭐ 가장 중요! ⭐
- 학습과 시험에 가장 많이 사용됨
- 단순한 도형으로 표기

2.2 정보 공학 표기법 (IE/Crow’s Foot 표기법)
- 개체 타입에 포함되는 모든 속성을 하나의 그룹으로 표현
- 관계형 데이터베이스에 최적화됨
- 대응수
- 1:1
- 1:N
- N:M
- 참여도
- 필수
- 선택

3. 확장 E-R 다이어그램
3.1 정의
재사용, 상속, 확장성 개념을 적용하여 현실세계를 보다 정확하게 표현
3.2 주요 개념
- 슈퍼/서브 타입
- 특수화/일반화
- 상속
- 집단화
- 분류화
3.3 서브 타입 (Sub Type)
- 상위 개체 타입이 다수의 하위 개체 타입과 관계를 가짐
- 배타적(Exclusive) 서브타입: 서브타입 중 하나와 통합
- 포괄적(Inclusive) 서브 타입: 서브타입 중 하나 또는 다수와 통합

예를 들어 “구성원” 슈퍼타입 아래 “학생”과 “교직원” 서브타입이 있다면, 한 사람이 동시에 학생이면서 교직원(조교)일 수도 있으므로 이는 포괄적 서브타입에 가깝다. 반대로 “차량” 슈퍼타입 아래 “승용차”와 “트럭”은 한 차량이 동시에 두 타입일 수 없으므로 배타적 서브타입이다.
3.4 일반화와 구체화
- 일반화(Generalization)
- 다수의 하위 개체 타입을 부분 집합으로 표현하는 방식
- 상향식 설계 방식
- 상위 개념으로 올라갈수록 일반화
- 구체화(Specialization)
- 개체 타입을 다수의 하위 개체 타입으로 분리
- 하향식 설계 방식
- 하위 개념으로 내려갈수록 구체화
- “하위 개체 is a 상위 개체” 관계
3.5 집단화와 분해화
- 집단화(Aggregation)
- 관련 있는 개체 타입을 생성
- 분해화(Decomposition)
- 개체의 결합으로 이루어진 개체를 하나하나 분리
- “부품 개체 is part of 결합 개체” 관계
3.6 분류화와 인스턴스화
- 분류화(Classification)
- 특정 유형을 공통적으로 가지는 하위 개체를 묶어서 하나의 상위 개체로 정의
- “하위 개체 is member of 상위 개체” 관계
- 인스턴스화(Instantiation)
- 한 개체의 특성을 기본으로 하는 여러 형태의 개체를 생성
- 업무 유형에 따라 여러 가지로 분류 가능
- 상속 관계가 아님
핵심 정리
- ERD는 시스템 구현과 무관하게 개체·관계·속성만으로 현실을 표현하는 논리 도구이며, 실무에서는 피터-첸 표기법을 기본으로 익혀두면 대부분의 자료를 읽을 수 있다.
- 일반화/구체화는 방향이 반대다 — 일반화는 하위→상위로 묶어 올라가는 상향식, 구체화는 상위→하위로 나누는 하향식이다.
- 배타적/포괄적 서브타입 구분은 “한 인스턴스가 동시에 여러 서브타입일 수 있는가”로 판단하면 헷갈리지 않는다.
댓글이 보이지 않으면 GitHub에 로그인한 뒤 새로고침해 주세요. 공개 댓글은 로그인 상태에서 더 안정적으로 표시됩니다.