카테고리 없음

11주차 (1)

jaeoun0238 2025. 1. 6. 21:29

생각보다 ERD 쓰는 게 좀 어려웠는데 ERD에 대해 정리해 보자면

1. ERD의 관계(Relationship)란?

관계는 두 개 이상의 엔터티(Entity)가 어떻게 연결되어 있는지를 나타내는 것입니다.
예를 들어, 학생과 강의가 있다면 학생이 강의를 수강한다는 것이 관계가 됩니다.
관계를 선으로 표시하며, 관계의 종류와 방향에 따라 데이터베이스에서 중요한 역할을 합니다.

2. 식별자 관계와 비식별자 관계

(1) 식별자 관계

  • 부모 엔터티의 식별자(PK)가 자식 엔터티의 식별자(PK)에 포함되는 경우입니다.
  • 자식 엔터티는 부모 엔터티의 존재에 의존합니다.
  • 보통 강한 연결이 필요할 때 사용합니다.
    • 예: 주문과 주문 상세
      • 주문(Order)의 ID는 주문 상세(Order Details)의 식별자에 포함됩니다.

(2) 비식별자 관계

  • 부모 엔터티의 식별자(PK)가 자식 엔터티의 일반 속성(Non-PK)으로 들어가는 경우입니다.
  • 자식 엔터티는 독립적으로 존재할 수 있습니다.
    • 예: 학생과 도서 대출
      • 학생(Student)의 ID는 도서 대출(Book Loan)의 일반 속성으로 저장됩니다.

3. 1:1, 1:N, N:M 관계의 차이

(1) 1:1 관계

  • 한 엔터티의 하나의 인스턴스가 다른 엔터티의 하나의 인스턴스와만 연결됩니다.
  • 예: 사람(Person)과 주민등록증(ID Card)
    • 한 사람은 하나의 주민등록증만 가질 수 있고, 주민등록증은 한 사람만 가집니다.

(2) 1:N 관계

  • 한 엔터티의 하나의 인스턴스가 다른 엔터티의 여러 인스턴스와 연결됩니다.
  • 예: 교수(Professor)와 강의(Course)
    • 한 교수가 여러 강의를 가르칠 수 있지만, 각 강의는 한 교수만 담당합니다.

(3) N:N 관계

  • 하나의 엔터티에서 여러 개의 인스턴스가 다른 엔터티의 여러 개 인스턴스와 연결됩니다.
  • 예: 학생(Student)과 강의(Course)
    • 학생(Student)은 여러 강의(Course)를 들을 수 있습니다.
    • 반대로 강의도 여러 학생이 수강할 수 있습니다. 
      • 중간 테이블(연결 테이블)이 필요
        • 데이터베이스에서는 직접 N:M 관계를 만들 수 없기 때문에, 연결 테이블(Bridge Table)을 사용해 N대 N 관계를 구현합니다.
        • 연결 테이블은 두 엔터티의 식별자(PK)를 포함하여 양쪽을 연결합니다.
        • 예:
          • Student_Course 연결 테이블에는 학생 ID와 강의 ID가 포함됩니다.
  •  

(4) N:M 관계

  • 한 엔터티의 여러 인스턴스가 다른 엔터티의 여러 인스턴스와 연결됩니다.
  • 이 관계는 보통 연결 테이블(Bridge Table)을 통해 구현합니다.
  • 예: 학생(Student)과 강의(Course)
    • 학생은 여러 강의를 수강할 수 있고, 강의도 여러 학생이 수강할 수 있습니다.

ERD 예시로 이해하기

  1. 1:1 관계
    • 사람(Person) ←→ 주민등록증(ID Card)
  2. 1:N 관계
    • 교수(Professor) → 강의(Course)
  3. N:N 관계
    • 학생(Professor) → 강의(Course)
    • 강의    학생

 

  1. N:M 관계
    • 학생(Student) ↔ 강의(Course)
    • 연결 테이블: 수강(Student_Course)
      • 속성: 학생 ID, 강의 ID, 성적