inblog logo
|
Coding_study
    SQL 개발자

    [Part 1] 4. 관계(Relationship)

    yuzu sim's avatar
    yuzu sim
    Aug 08, 2024
    [Part 1] 4. 관계(Relationship)
    Contents
    1. 관계(Relationship)2. 관계의 종류3. 표기법 - 관계의 구성4. 관계 페어링 (Pairing)

    1. 관계(Relationship)

    • 관계는 엔터티간의 연관성을 나타낸 개념
    • 관계를 정의할 때는 인스턴스(각 행 데이터)간의 논리적인 연관성을 파악하여 정의
    • 엔터티를 어떻게 정의하느냐에 따라 변경되기도 함
     

    2. 관계의 종류

    2-1. 존재적 관계

    • 한 엔터티의 존재가 다른 엔터티의 존재에 영향을 미치는 관계
    • 엔터티 간의 연관된 상태를 의미 ex) 부서 엔터티가 삭제되면 사원 엔터티의 존재에 영항을 미침
     

    2-2. 행위적 관계

    • 엔터티 간의 어떤 행위가 있는 것을 의미 ex) 고객 엔터티의 행동에 의해 주문 엔터티가 발생 ※ ERD 에서는 존재관계와 행위관계를 구분하지 않는다.
     

    3. 표기법 - 관계의 구성

    관계명(Membership)
    관계의 이름
    관계차수(Cardinality)
    관계에 참여하는 수 (1:1, 1:N 가지냐? 관계를 정의)
    관계선택사양(Optionality)
    필수인지 선택인지 여부

    3-2. 관계의 차수 (Cardinality)

    • 한 엔터티의 레코드(인스턴스)가 다른 엔터티의 레코드(인스턴스)와 어떻게 연결되는지를 나타내는 표현
    • 주로 1:1, 1:N, N:M 등으로 표현
     
    1) 1 대 1 관계
    • 완전 1 대 1 관계
      • 하나의 엔터티에 관계되는 엔터티가 반드시 하나로 존재하는 경우 ex) 사원은 반드시 소속 부서가 있어야 함
    • 선택적 1 대 1 관계
      • 하나의 엔터티에 관계되는 엔터티가 하나이거나 없을 수 있는 경우 ex) 사원은 하나의 소속 부서가 있거나 아직 발령전이면 없을 수 있음
     
    2) 1 대 N 관계
    • 엔터티에 하나의 행에 다른 엔터티의 값이 여러 개 있는 관계 ex) 고객은 여러 개 계좌를 소유할 수 있음.
     
    3) M 대 N 관계
    • 두 엔터티가 다대다의 연결 관계 가지고 있음
    • 이 경우 조인 시 카테시안 곱이 발생하므로 두 엔터티를 연결하는 연결엔터티의 추가로 1 대 N 관계로 해소할 필요가 있음 ex) 한 학생이 여러 강의를 수강할 수 있고, 한 강의 기준으로도 여러 학생이 보유할 수 있음 => 이 두 엔터티의 연결엔터티로는 구매이력 엔터티가 필요함
     

    4. 관계 페어링 (Pairing)

    • 두 엔터티 간의 특정 인스턴스 간의 연결을 설명하며, 추가 정보를 제공
    • 예시: "학생 A가 강의 B를 2023년 1학기에 수강했고 성적은 'A+'를 받았다."
    • 페어링은 관계의 구체적인 인스턴스 연결을 설명하며, 추가적인 정보(예: 수강 학기, 성적 등)를 포함할 수 있다.
     
    용어
    정의
    예시
    관계
    두 엔터티 간의 상호작용을 나타냄
    학생이 강의를 수강함
    차수
    두 엔터티 간의 관계에서 인스턴스 연결의 수량을 나타냄
    1:1, 1, M
    페어링
    두 엔터티 간의 특정 인스턴스 연결을 설명하고 추가 정보를 제공
    학생 A가 강의 B를 2023년 1학기에 수강하고 성적은 'A+'
     
    Share article

    Coding_study

    RSS·Powered by Inblog