카테고리 없음

[SQLD 개발자] 9. 관계(RelationShip)

개발자하소서 2023. 1. 18. 21:18
728x90
반응형
SMALL

SQLD - PART 2

 

📌 관계(RelationShip)

 

(1) 관계(RelationShip)의 개념

- 관계는 엔터티 간의 관련성을 의미하며 존재 관계행위 관계로 분류된다. 

 

- 존재관계는 두 개의 엔터티가 존재 여부의 관계가 있는 것이고,

  행위관계는 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것이다. 

 

(2) 관계(RelationShip)의 종류

 

● 존재관계 

 

- 존재관계는 엔터티 간의 상태를 의미한다. 

   

- 예로 들어 고객이 은행에 회원가입을 하면, 관리점이 할당되고, 그 할당된 관리점에서 고객을 관리한다.

 

 

 

● 행위관계 

 

- 행위관계는 엔터티 간에 어떤 행위가 있는 것으로, 계좌를 사용해서 주문을 발주하는 관계가 만들어 진다. 

 

- 예를 들어 증권회사는 계좌를 개설하고, 주문을 발주하는 것이다. 

 

 

 

(3) 관계 차수(Cardinality)

 

● 관계차수

 

- 관계차수는 두 개의 엔터티 간에 관계에 참여하는 수를 의미한다. 

 

- 예를 들어 한 명의 고객은 여러 개의 계좌를 개설할 수 있다. 이러한 경우 1대N 관계가 된다. 

 

관계차수의 종류

 

 

● 관계차수의 종류 

 

① 1대 1 관계

 

- 1대 1 관계는 완전 1대1관계와 선택적 1대1관계가 있다. 

 

- 한 명의 고객은 하나의 고객등급이 부여되거나, 고객등급이 없을 수도 있다.

 

- 완전1대1 : 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우로, 반드시 존재한다. 

 

- 선택적1대1 : 하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수도 있다.

 

 

② 1대 N관계

 

- 1대 N관계는 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계이다. 

 

- 예를 들어 고객은 여러 개의 계좌를 가질 수 있다.

 

 

③ M대 N관계

 

- M대 N관계는 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것이다.

 

- 예를 들어 한명의 학생이 여러 개의 과목을 수강할 수 있다.

  반대로 한 개의 과목은 여러 명의 학생이 수강한다.

  그래서 M대 N관계가 발생한다.

 

- 관계형 데이터베이스에서 M대N 관계의 조인(join)은 카테시안 곱이 발생한다. 

  그래서 M대N관계를 1대 N, N대 1로 해소해야 한다.

 

 

④ 필수적 관계와 선택적 관계

 

- 필수적 관계는 반드시 하나는 존재해야 하는 관계이고 선택적 관계는 없을 수도 있는 관계이다.

 

- 필수적 관계는 "|" 로 표현되고, 선택적 관계는 "0" 으로 표현된다.

 

- 필수적 관계 : 반드시 하나가 있어야 하는 관계이다. 예로 들어 고객이 반드시 있어야 계좌를 개설할 수 있다.

 

- 선택적 관계 : 없을 수도 있는 관계이다. 예를 들면, 고객은 있지만 계좌가 없을 수도 있다면 이는 선택적 관계가 되는 것이다.

 

 

 

(4) 식별 관계와 비식별 관계

 

● 식별 관계(Identification Relationship)

 

- 고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체(Strong Entity)이다.

 

- 강한 개체는 어떤 다른 엔터티에게 의존하지 않고 독립적으로 존재한다. 

 

- 강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티의 기본키를 공유한다.

 

- 즉, 식별관계란 고객 엔터티의 기본키인 회원 ID를 계좌 엔터티의 기본키의 하나로 공유하는 것이다.

 

- 강한 개체의 기본키 값이 변경되면 식별관계에 있는 엔터티의 값도 변경된다.

 

- 여기서 계좌 엔터티는 약한 개체(Weak Entity)가 된다.

 

 

 

 

● 비식별 관계(Non-Identification Relationship)

 

- 비식별 관계는 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것이다.

 

- 예를 들어 관리점 엔터티의 기본키는 지점 코드이고, 고객 엔터티와 비식별 관계를 가지고 있다.

 

- 즉, 지점 코드는 고객 엔터티의 기본키가 아닌 일반칼럼으로 참조된다.

 

- 비식별 관계는 점선으로 표현한다.

 

 

 

 

● 강한 개체(Strong Entity) 와 약한 개체(Weak Entity)

 

- 강한 개체는 누구에게도 지배되지 않는 독립적인 개체(Entity) 이다.

 

- 약한 개체는 개체의 존재가 다른 개체의 존재에 달려 있는 개체이다.

 

 

 

 

 

728x90
반응형
LIST