1. ERD 란 무엇인가?
ERD(Entity Relationship Diagram)
- 개체-관계 모델
 
- 테이블 간의 관계를 설명해주는 다이어그램
 
- 모델 구조도
 
- Entity 개체 = Table
- Attribute 속성 = Column
: 분리표기하지 않고, 모두 Entity 내 합쳐넣는 방식으로 표기 
 
- Relationship 관계 = 개체 간 연결성
= Table 간 PK(Primary Key, 기본키) — FK(Foreign Key, 외래키)
- Primary Key (기본키) 와 Foreign Key (외래키) 는 무엇인가?
- 고유하게 식별한다 : 유일성
 
- 최소 속성 조합 : 최소성
 
- 슈퍼키 : 고유하게 식별하는 모든 속성 조합
ex ) 주민등록번호 + 이름 → Seonga (유일성) 
- 후보키 : 고유하게 식별하는 최소 속성 조합
ex ) 주민등록번호 → Seonga (유일성 + 최소성) 
- 기본키 : 기본으로 사용할 후보키 | 2개 이상의 최소 속성 조합의 경우 복합키
- 숙소 - 숙소 리뷰 - 리뷰 : 숙소 FK + 리뷰 FK = 복합키
 
 
- 외래키 : Relationship 관계 설정 시 참조하는 키
= 참조되는 테이블의 기본키 (참조 무결성 조건) 
 
 
Ordinality(최소) : Cardinality(최대)
- 1:1
ex ) 학생과 성적 : 특성 (한 Entity 의 입장에서) 
- 1:N
ex ) 학생과 강의실 : 소속 / 귀속(수동) (한 Entity 의 입장에서) 
- N:M
ex ) 학생과 과목 : 선택(능동) (한 Entity 의 입장에서) 

3. ERD 그리는 방법
[ 참고 자료 : Crow's Foot Notation – Relationship Symbols And How to Read Diagrams ]
예시 (1)
- 1단계 : 가정과 개체 정의
강사와 과목이 있다고 가정하고 두 개체를 정의
 
- 2단계 : 강사와 과목 개체의 관계
강사 각각은 한 과목만 담당 가능
 
- 3단계 : 과목과 강사 개체의 관계
각각의 과목은 한 명 또는 여러 명의 강사가 담당 가능
 
예시 (2)
- 고객과 피자가 있다고 가정하고 두 개체를 정의 →
 
- 각 피자당 주문한 고객이 아예 없거나, 여러 고객이 주문 가능 →
 
- 각 고객은 피자를 아예 주문하지 않거나, 피자 여러 개 주문 가능
 

ERD 작성 시, 두 개체 각각의 관점에서 관계를 바라보는 것이 중요
4. 식별 관계(Identifying) / 비식별 관계(Non-identifying)
(1) 식별 관계 Identifying Relationship
참조하는 테이블의 기본키 = 외래키 = 참조되는 테이블의 기본키
- 자식 테이블(참조하는 테이블)이 부모 테이블(참조되는 테이블)에 의존적인 경우
 

(2) ### 비식별 관계 Non-identifying Relationship
참조하는 테이블의 기본키 ≠ 외래키 = 참조되는 테이블의 기본키
- 자식 테이블(참조하는 테이블)이 부모 테이블(참조되는 테이블)에 의존적이지 않은 경우
- Optional (nullable) or Mandatory (not null) 둘 중 아무거나 가능
 
 
[ 사진 출처 : 데이터베이스 식별관계와 비식별관계 ]