ERD(Entity Relationship Diagram) 설계와 식별/비식별 관계

2SEONGA·2025년 3월 12일
0

DB

목록 보기
5/5
post-thumbnail

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 관계 설정 시 참조하는 키
        = 참조되는 테이블의 기본키 (참조 무결성 조건)

2. Crow's Foot Notation (ERD 표기법)

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)

  1. 고객과 피자가 있다고 가정하고 두 개체를 정의 →
  2. 각 피자당 주문한 고객이 아예 없거나, 여러 고객이 주문 가능 →
  3. 각 고객은 피자를 아예 주문하지 않거나, 피자 여러 개 주문 가능

ERD 작성 시, 두 개체 각각의 관점에서 관계를 바라보는 것이 중요


4. 식별 관계(Identifying) / 비식별 관계(Non-identifying)

(1) 식별 관계 Identifying Relationship

참조하는 테이블의 기본키 = 외래키 = 참조되는 테이블의 기본키

  • 자식 테이블(참조하는 테이블)이 부모 테이블(참조되는 테이블)에 의존적인 경우

(2) ### 비식별 관계 Non-identifying Relationship

참조하는 테이블의 기본키 ≠ 외래키 = 참조되는 테이블의 기본키

  • 자식 테이블(참조하는 테이블)이 부모 테이블(참조되는 테이블)에 의존적이지 않은 경우
    • Optional (nullable) or Mandatory (not null) 둘 중 아무거나 가능

[ 사진 출처 : 데이터베이스 식별관계와 비식별관계 ]


profile
(와.. 정말 Chill하다..)

0개의 댓글