TIL - 20260107

juni·2026년 1월 6일

TIL

목록 보기
231/317

0107 SQLD 학습 (4/10): 관계 (Relationship)


✅ 1. 관계(Relationship)란?

  • 관계란 두 개 이상의 엔터티(Entity) 간에 존재하는 논리적인 연관성 또는 상호작용을 의미합니다.
  • 관계는 ERD(Entity-Relationship Diagram)에서 엔터티들을 선으로 연결하여 표현하며, 이 관계를 통해 데이터 모델의 구조와 업무 규칙을 파악할 수 있습니다.
  • 예시: 학생과목수강한다. 회원주문한다.

✅ 2. 관계의 표현 요소

  • 관계는 단순히 선으로 연결하는 것을 넘어, 두 엔터티가 어떻게 상호작용하는지를 나타내는 구체적인 표현 요소들을 가집니다.
요소설명ERD 표기법 (IE/Crow's Foot)
관계명 (Name)• 관계의 의미를 나타내는 이름. (주로 동사형)선 위에 관계명을 기술
관계 차수 (Cardinality)• 두 엔터티 간에 참여하는 인스턴스의 개수.선의 끝 모양 (`
관계 선택성 (Optionality)• 다른 엔터티와의 관계가 필수적인지 선택적인지 여부.선의 끝 모양 (`

✅ 3. 관계 차수 (Cardinality) - 1:1, 1:N, M:N

  • 관계 차수는 한 엔터티의 인스턴스 하나가, 다른 엔터티의 인스턴스 몇 개와 관계를 맺는지를 나타내는 가장 중요한 관계 표현 요소입니다.
차수설명ERD 표기예시비고
1 : 1
(일대일)
• 엔터티 A의 인스턴스 하나가 엔터티 B의 인스턴스 하나와만 관계를 맺음.`A--- B`사원 - 좌석
사용자 - 사용자_상세정보
1 : N
(일대다)
• 엔터티 A의 인스턴스 하나가 엔터티 B의 여러 인스턴스와 관계를 맺음.`A---< B`부서 - 사원
고객 - 주문
M : N
(다대다)
• 엔터티 A의 여러 인스턴스가 엔터티 B의 여러 인스턴스와 관계를 맺음.A >---< B학생 - 과목
상품 - 주문
• 관계형 데이터베이스에서 직접 표현할 수 없음.

➕ M:N (다대다) 관계의 해소

  • M:N 관계는 물리적인 테이블로 직접 구현할 수 없으므로, 모델링 과정에서 반드시 1:N 관계로 해소해야 합니다.
  • 해소 방법: 두 엔터티 사이에 관계 엔터티(Associative Entity) 또는 교차 엔터티(Intersection Entity)라고 불리는 새로운 엔터티를 추가합니다.
    • 예시: 학생과목의 M:N 관계
      1. 수강신청이라는 새로운 관계 엔터티를 만듭니다.
      2. 학생수강신청1:N 관계로 연결합니다. (한 명의 학생은 여러 과목을 수강신청할 수 있다.)
      3. 과목수강신청1:N 관계로 연결합니다. (하나의 과목은 여러 학생에 의해 수강신청될 수 있다.)
    • 수강신청 엔터티는 양쪽 부모 엔터티의 식별자를 상속받아 자신의 주 식별자로 사용하며, 수강일자, 성적과 같은 추가적인 속성을 가질 수 있습니다.

✅ 4. 관계 선택성 (Optionality)

  • 관계 선택성은 특정 엔터티의 인스턴스가 관계를 맺을 때, 상대편 엔터티의 인스턴스가 반드시 필요한지(필수), 아니면 없어도 되는지(선택)를 나타냅니다.

  • 필수적 관계 (Mandatory, |):

    • 설명: 관계를 맺는 상대편 엔터티의 인스턴스가 반드시 존재해야 합니다.
    • ERD 표기: 실선 또는 | (막대)
    • 예시: 주문은 반드시 고객이 있어야만 존재할 수 있다. (고객 쪽이 필수)
    • 데이터베이스: NOT NULL 제약조건과 관련이 깊습니다.
  • 선택적 관계 (Optional, O):

    • 설명: 관계를 맺는 상대편 엔터티의 인스턴스가 없어도 존재할 수 있습니다.
    • ERD 표기: 점선 또는 O (원)
    • 예시: 사원프로젝트에 참여할 수도, 안 할 수도 있다. (프로젝트 쪽이 선택)
    • 데이터베이스: NULL을 허용하는 외래 키(Foreign Key)와 관련이 깊습니다.

📌 요약

  • 관계는 엔터티 간의 논리적인 연관성을 정의하며, 데이터 모델의 구조를 완성하는 핵심 요소입니다.
  • 관계는 관계 차수(1:1, 1:N, M:N)관계 선택성(필수/선택)으로 구체화됩니다.
  • 관계형 데이터베이스에서 가장 이상적인 관계는 1:N이며, M:N 관계는 반드시 별도의 관계 엔터티를 통해 두 개의 1:N 관계로 해소해야 합니다.
  • 관계 선택성은 외래 키의 NULL 허용 여부를 결정하는 중요한 기준으로, 업무 규칙을 정확하게 반영해야 합니다.

0개의 댓글