관계(Relationship)란?
시작하기 전에 엔터티와 객체 그리고 인스턴스에 대해 조금 알고가자.. 엔터티, 객체, 그리고 인스턴스는 각기 다른 컴퓨터 과학적인 개념이며, 조금씩 다른 의미를 가지고 있습니다. |
1.엔터티 데이터베이스 설계에서 주로 사용되는 용어로, 현실 세계에서 독립적으로 식별 가능한 사물이나 개념을 나타냅니다. 데이터베이스에서 엔터티는 테이블을 기반으로 데이터의 구조를 정의하는 데 사용됩니다. |
2.객체 객체지향 프로그래밍에서 사용되는 개념으로, 속성(상태)과 메서드(동작)를 가지는 소프트웨어 개체를 나타냅니다. 클래스(Class)에 의해 정의된 구체적인 데이터 구조를 가진 개체입니다. |
3.인스턴스 객체지향 프로그래밍에서 클래스(Class)를 기반으로 생성된 실제 데이터를 의미합니다. 클래스는 객체의 템플릿이며, 클래스를 기반으로 만들어진 실체가 인스턴스입니다. |
엔터티와 객체는 데이터 모델링과 객체지향 프로그래밍에서 사용되는 용어로서, 약간 다른 맥락에서 사용된다. |
엔터티와 엔터티와의 관계를 의미하며, 각 엔터티간에 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있다.
존재 관계
- 존재 관계는 하나의 개체가 다른 개체 없이는 존재할 수 없는 관계를 의미합니다.
- 예를 들어, "AI컴퓨터공학과"라는 개체는 "홍길동"이라는 학생 없이는 존재할 수 없는 관계입니다. 즉, "AI컴퓨터공학과"는 "홍길동"과의 존재 관계를 가지고 있습니다. 이 경우 "홍길동"은 "AI컴퓨터공학과"에 속해 있거나 그에게 종속적인 관계라고 할 수 있습니다.
- 존재 관계는 일반적으로 부모-자식 관계로 생각할 수 있습니다. 부모가 없으면 자식도 없는 것처럼, 한 개체가 다른 개체 없이는 존재할 수 없는 상황입니다.
행위 관계
- 행위 관계는 개체들 간의 상호작용을 나타내는 관계입니다.
- 이 관계는 두 개체가 서로 상호작용하여 추가적인 정보나 결과를 만들어내는 경우에 사용됩니다.
- 예를 들어, "홍길동"과 "DB" (데이터베이스) 사이의 관계에서, "홍길동"은 "DB"의 강의에 출석하는 행위를 수행할 수 있습니다. 이 경우 "홍길동"과 "DB" 사이에는 상호작용이 발생하며, 이 상호작용은 행위 관계로 볼 수 있습니다.
- 행위 관계는 단방향일 수도 있고 양방향일 수도 있습니다. 양방향 관계에서는 두 개체가 서로에게 영향을 미치며 상호작용합니다.
표기법
관계명(Membership) : 관계의 이름 관계차수(Cardinality) : 관계에 참여하는 수 관계선택사양(Optionality) : 필수인지 선택인지의 여부 |
관계명
두 개체 사이의 관계를 식별하기위해 사용하는 문장으로 모든 관계는 두 개의 관계명을 가지고 있는데 이유는 각 엔터티(개체)의 관점에서 관계명을 하나 가지기 때문이다.
관계차수
1 : 1 관계 |
|
1 : M 관계 |
|
N : M 관계 |
|
관계선택사양
필수적 관계 : 참여자가 반드시 존재해야하는 관계 선택적 관계 : 참여자가 없을 수도 있는 관계 |
관계 선택 사양은 이 관계가 필수요소인지 선택사항인지를 나타낼 때 사용하는 말이다. 예를 들어 주문은 반드시 하나 이상의 주문 상품이 있어야 하기 때문에 주문과 주문상품의 관계는 필수이지만 학생이 강의에 출석을 할지 말지는 선택사항이므로 학생과 출석부의 관계는 선택이다.
'SQL > SQLD' 카테고리의 다른 글
#6 정규화(Normalization) (2) | 2024.12.06 |
---|---|
#5 데이터 모델링(식별자) (0) | 2024.07.15 |
#3 데이터 모델링(속성) (0) | 2024.07.08 |
#2 데이터 모델링(엔티티) (0) | 2024.07.04 |
#1 데이터 모델링 (0) | 2024.07.04 |