✔️ ERD의 관계
1. 존재에 의한 관계 (존재적 관계)
먼저 erd에서 말하는 '존재적 관계'는 말 그대로 '존재를 통해서 이루어지는 관계'를 의미한다.
한 쇼핑몰의 Category에 Books, Pens, Cosmetics 등이 존재한다.
Books에는 Humanity, IT, Science 등이 존재하고, Cosmetics에는 Cream, Toner, Aftershave 등이 존재한다.
이런 단순한 존재로 인하여 관계가 형성되는 경우에는 존재적 관계라고 말한다.
2. 행위에 의한 관계 (행위적 관계)
'어떤 행위를 통해서 생기는 관계'를 '행위적 관계'라고 하는데, 어떠한 행동 상태를 의미한다.
Adam이라는 고객이 Books카테고리에 있는 책 한 권을 구입했다.
Adam과 Books 사이에는 '구입하다', '주문하다' 와 같은 행위가 발생한다.
이처럼 어떤 행동을 통해서 관계가 생기는 것을 행위적 관계라고 한다.
✔️ UML의 관계
UML에서 사용하는 관계는 여러가지가 있다.
클래스 다이어그램을 그릴 때 연관 관계, 의존 관계, 실체화 관계, 일반화 관계로 나뉘게 된다.
이 중에서 erd의 두 관계와 같은 의미를 가지는 관계가 있다.
1. 연관 관계
한 객체가 다른 객체를 사용하거나 상호 작용하는 관계로, erd의 존재적 관계에 해당된다.
멤버 변수로 선언하여 사용하고, 영속적으로 사용할 때 연관 관계를 갖는다.
2. 의존 관계
한 객체의 변화가 다른 객체에 영향을 주는 경우 의존 관계라고 말하며, erd의 행위적 관계에 해당된다.
보통 메서드의 파라미터로 사용하며, 일시적으로 사용할 때 의존 관계를 갖게 된다.
✔️ erd와 uml 관계의 차이점
erd에서는 존재적 관계와 행위적 관계를 구분하지 않는다.
그 의미 자체는 구분하지만, 하나의 표기법으로 사용한다.
erd를 확인하면 어떤 관계인지 단순 표기법으로는 구분할 수 없다.
하지만 클래스 다이어그램을 그릴 때 연관 관계는 실선으로, 의존 관계는 점선으로 표현한다.
클래스 다이어그램에서는 표기법으로도 구분하고 있어 두 객체 사이가 어떤 관계로 이루어져 있는지 알 수 있다.
✅ 정리
존재적 관계 = 연관 관계
- 항상 이용하는 관계
- entity의 인스턴스 사이 논리적 연관성에 대한 존재 형태
행위적 관계 = 의존 관계
- 상대방의 행위에 의해서 형성되는 관계
- entity 인스턴스 사이 논리적 연관성에 대한 행위 → 서로에게 연관성 부여
표기법
- erd에서는 관계를 나누지만, 구분하지 않고 하나의 표기법으로 사용
- uml에서는 실선과 점선으로 표시
'Database > basic' 카테고리의 다른 글
[DB] 데이터 분류 (0) | 2023.07.31 |
---|---|
[DB] 데이터베이스란? (0) | 2023.07.31 |