SQLD

#4 데이터 모델링(관계)

sundori 2024. 7. 9. 17:42

관계(Relationship)란?

시작하기 전에 엔터티와 객체 그리고 인스턴스에 대해 조금 알고가자..
엔터티, 객체, 그리고 인스턴스는 각기 다른 컴퓨터 과학적인 개념이며, 조금씩 다른 의미를 가지고 있습니다.
1.엔터티 
데이터베이스 설계에서 주로 사용되는 용어로, 현실 세계에서 독립적으로 식별 가능한 사물이나 개념을 나타냅니다. 데이터베이스에서 엔터티는 테이블을 기반으로 데이터의 구조를 정의하는 데 사용됩니다.
2.객체
객체지향 프로그래밍에서 사용되는 개념으로, 속성(상태)과 메서드(동작)를 가지는 소프트웨어 개체를 나타냅니다. 클래스(Class)에 의해 정의된 구체적인 데이터 구조를 가진 개체입니다.
3.인스턴스
객체지향 프로그래밍에서 클래스(Class)를 기반으로 생성된 실제 데이터를 의미합니다. 클래스는 객체의 템플릿이며, 클래스를 기반으로 만들어진 실체가 인스턴스입니다.
엔터티와 객체는 데이터 모델링과 객체지향 프로그래밍에서 사용되는 용어로서, 약간 다른 맥락에서 사용된다.

엔터티와 엔터티와의 관계를 의미하며, 각 엔터티간에 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있다.

존재 관계

 

  • 존재 관계는 하나의 개체가 다른 개체 없이는 존재할 수 없는 관계를 의미합니다.
  • 예를 들어, "AI컴퓨터공학과"라는 개체는 "홍길동"이라는 학생 없이는 존재할 수 없는 관계입니다. 즉, "AI컴퓨터공학과"는 "홍길동"과의 존재 관계를 가지고 있습니다. 이 경우 "홍길동"은 "AI컴퓨터공학과"에 속해 있거나 그에게 종속적인 관계라고 할 수 있습니다.
  • 존재 관계는 일반적으로 부모-자식 관계로 생각할 수 있습니다. 부모가 없으면 자식도 없는 것처럼, 한 개체가 다른 개체 없이는 존재할 수 없는 상황입니다.

 

 

행위 관계

 

  • 행위 관계는 개체들 간의 상호작용을 나타내는 관계입니다.
  • 이 관계는 두 개체가 서로 상호작용하여 추가적인 정보나 결과를 만들어내는 경우에 사용됩니다.
  • 예를 들어, "홍길동"과 "DB" (데이터베이스) 사이의 관계에서, "홍길동"은 "DB"의 강의에 출석하는 행위를 수행할 수 있습니다. 이 경우 "홍길동"과 "DB" 사이에는 상호작용이 발생하며, 이 상호작용은 행위 관계로 볼 수 있습니다.
  • 행위 관계는 단방향일 수도 있고 양방향일 수도 있습니다. 양방향 관계에서는 두 개체가 서로에게 영향을 미치며 상호작용합니다.

 

 

표기법

관계명(Membership) : 관계의 이름
관계차수(Cardinality) : 관계에 참여하는 수
관계선택사양(Optionality) : 필수인지 선택인지의 여부

관계명

두 개체 사이의 관계를 식별하기위해 사용하는 문장으로 모든 관계는 두 개의 관계명을 가지고 있는데 이유는 각 엔터티(개체)의 관점에서 관계명을 하나 가지기 때문이다.

관계차수

1 : 1 관계

  • 일대일 관계는 한 개체가 다른 개체와 정확히 한 개체만을 연결할 수 있는 관계입니다.
  • 예를 들어, 한 사람이 하나의 주민등록번호를 가질 수 있고, 각 주민등록번호는 오직 한 사람에게만 할당될 수 있습니다.
1 : M 관계

  • 일대다 관계는 한 개체가 다른 개체와 여러 개체를 연결할 수 있는 관계입니다.
  • 예를 들어, 하나의 상품이 여러 개의 가격을 가질 수 있지만, 각 가격은 하나의 상품에만 속할 수 있습니다.
N : M 관계

  • 다대다 관계는 여러 개체가 다른 여러 개체와 관계를 맺을 수 있는 관계입니다.
  • 예를 들어, 학생과 과목 간의 관계에서, 여러 학생이 여러 과목을 수강할 수 있고, 각 과목도 여러 학생들에게 수강될 수 있습니다.

관계선택사양

필수적 관계 : 참여자가 반드시 존재해야하는 관계
선택적 관계 : 참여자가 없을 수도 있는 관계

관계 선택 사양은 이 관계가 필수요소인지 선택사항인지를 나타낼 때 사용하는 말이다. 예를 들어 주문은 반드시 하나 이상의 주문 상품이 있어야 하기 때문에 주문과 주문상품의 관계는 필수이지만 학생이 강의에 출석을 할지 말지는 선택사항이므로 학생과 출석부의 관계는 선택이다.

 

'SQLD' 카테고리의 다른 글

#5 데이터 모델링(식별자)  (0) 2024.07.15
#3 데이터 모델링(속성)  (0) 2024.07.08
#2 데이터 모델링(엔티티)  (0) 2024.07.04
#1 데이터 모델링  (0) 2024.07.04