DATA/데이터베이스 / / 2024. 7. 4. 10:56

데이터베이스 관계형 모델에서 엔티티 간의 관계는 1:1, 1:N, N:M

반응형

데이터베이스 관계형 모델에서 엔티티 간의 관계는 1:1, 1, N관계로 나뉩니다. 각 관계 유형은 엔티티 간의 연결 방식과 데이터 저장 방식을 설명합니다. 아래에서 각 관계 유형에 대한 설명과 예제를 제공합니다.

 

 

1:1 관계 (One-to-One Relationship)

 

1:1 관계는 하나의 엔티티가 다른 엔티티의 정확히 하나의 인스턴스와 연결될 때 발생합니다. 예를 들어, 각 사용자가 하나의 프로필만 가질 수 있는 경우가 1:1 관계에 해당합니다.

예제

  • 엔티티: 사용자(User)와 프로필(Profile)
  • 관계: 각 사용자는 하나의 프로필을 가지고, 각 프로필은 하나의 사용자에 속합니다.

테이블 구조

  • User 테이블
    • user_id (PK)
    • username
    • password
  • Profile 테이블
    • profile_id (PK)
    • user_id (FK, Unique)
    • bio
    • profile_picture

 

설명

Profile 테이블의 user_id는 User 테이블의 user_id를 참조하며, Unique 제약 조건을 통해 각 프로필이 하나의 사용자만 가질 수 있도록 합니다.

 

1 : N 관계 (One-to-Many Relationship)

 

1 : N 관계는 하나의 엔티티가 여러 다른 엔티티와 연결될 때 발생합니다. 즉, 한쪽의 한 레코드가 다른 쪽의 여러 레코드와 연결될 수 있습니다.

 

예제

  • 엔티티: 고객(Customer)와 주문(Order)
  • 관계: 각 고객은 여러 주문을 할 수 있으며, 각 주문은 하나의 고객에 속합니다.

테이블 구조

  • Customer 테이블
    • customer_id (PK)
    • name
    • email
  • Order 테이블
    • order_id (PK)
    • customer_id (FK)
    • order_date
    • amount

 

 

설명

Order 테이블의 customer_id는 Customer 테이블의 customer_id를 참조하며, 이를 통해 각 주문이 하나의 고객에 속하게 됩니다.

 

N : M 관계 (Many-to-Many Relationship)

 

N : M관계는 여러 엔티티가 여러 다른 엔티티와 연결될 때 발생합니다. 예를 들어, 학생이 여러 강의를 수강하고, 하나의 강의를 여러 학생이 수강할 수 있는 경우가 N관계에 해당합니다.

예제

  • 엔티티: 학생(Student)와 강의(Course)
  • 관계: 각 학생은 여러 강의를 수강할 수 있으며, 각 강의는 여러 학생이 수강할 수 있습니다.

테이블 구조

  • Student 테이블
    • student_id (PK)
    • name
    • email
  • Course 테이블
    • course_id (PK)
    • course_name
    • credits
  • 중간 테이블: Enrollment
    • student_id (FK)
    • course_id (FK)

 

설명

Enrollment 중간 테이블은 Student와 Course 테이블 간의 다대다(N : M) 관계를 관리합니다. Enrollment 테이블의 각 행은 특정 학생이 특정 강의를 수강하고 있음을 나타냅니다.

 

요약

  • 1:1 관계 (One-to-One): 각 엔티티가 하나의 다른 엔티티와 연결됨. 예: 사용자와 프로필.
  • 1:N관계 (One-to-Many): 하나의 엔티티가 여러 다른 엔티티와 연결됨. 예: 고객과 주문.
  • N:M관계 (Many-to-Many): 여러 엔티티가 여러 다른 엔티티와 연결됨. 중간 테이블을 사용하여 구현. 예: 학생과 강의.

이 관계들은 데이터베이스 설계에서 중요한 요소로, 데이터의 무결성을 보장하고 효율적인 데이터 관리를 가능하게 합니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유