ERD 샘플 모음 유용 사이트

https://www.erdcloud.com/

https://creately.com/diagram-community/all?

https://dbdiagram.io/d/Sample-Ecommerce-5cc9103ef7c5bb70c72fd15c

개발 플로우 다이어그램을 쉽게 만들기 위한 도구(duplicate하여 사용)

https://www.figma.com/file/SVzquADUAeySUprrHuJ6Zo/application-flow?type=whiteboard&t=lg52QvDkyESTxNg8-1

Uml 개념

https://www.nextree.co.kr/p6753/

일반적 기호[편집]

Untitled

기타 기호[편집]

Untitled

Untitled

**ERD** ' Entity Relationship Diagram '

도움 학습 링크 : https://inpa.tistory.com/entry/DB-📚-데이터-모델링-1N-관계-📈-ERD-다이어그램

먼저 ERD의 규칙을 살펴보면 아래와 같다.

A는 부모, B는 자식의 관계를 가진 ERD이다. 여기서 '~B로 구성되어 있다'라는 말이 살짝 헷갈릴 수 있다.

이를 풀어 설명해주면 '~B를 포함하고 있다' 라고 이해하면 될 것 같다.

그리고 부모와 자식의 관계를 알아야 하는데 A 테이블의 기본키를 B 테이블이 가지고 있다면

A테이블이 부모 테이블, B테이블이 자식 테이블을 뜻한다.

실선은 부모 테이블의 기본키를 자식 테이블이 가지고 있으며 이를 기본키로 사용하는 경우이고

점선은 부모 테이블의 기본키를 자식테이블이 가지고 있지만 이를 기본키로 사용하지 않을 때 사용한다.

이게 무슨말인가 하니 아래의 그림을 예로 들어 설명해 보겠다.

먼저 부모 테이블과 자식 테이블이 누구인지 알아내야 하는데 수강내역 테이블이 학생 테이블의 기본키를 외래키로 가지고 있으니

수강내역 테이블이 자식 테이블, 학생 테이블이 부모 테이블임을 알 수 있다.

다음으로 테이블 간의 관계를 보면 학생 테이블 쪽의

는 1을 뜻하기 때문에 '하나의 학생',

수강내역 테이블 쪽의

는 0~N 을 뜻하기 때문에 **'0~N 개의 수강내역'**을 뜻한다.

이는 학생의 입장에서는 '하나의 학생은 0~N 개의 수강내역을 가진다',

수강내역의 입장에서는 **'0~N 개의 수강내역은 하나의 학생에게 포함되어 진다'**라는 해석이 가능하다.

그리고 수강내역 테이블에서 학생 테이블의 기본키를 자신도 기본키로 사용하기 때문에 실선으로 표현되어 있음을 알 수 있다.

이전 예제와 달리 점선으로 관계를 표현한걸 보니 사원 테이블은

부서 테이블의 기본키를 가지고 있지만 이를 기본키로 사용하지는 않음을 알 수 있다.

예로 든 것들을 봐도 알 수 있듯이, 기본키를 누가 갖고 있는가? 누가 외래키를 갖고 있는가?

누가 어디에게 종속되고 누가 누구를 포함하고 있는가 등의 관계를 표현 해냈음을 알 수 있다.

ERD 샘플

Untitled

Untitled

ER Diagram 디자인 모음 툴

https://www.figma.com/file/mNfADA5KjiMmsw3OShWBcN/ERD-diagram?type=whiteboard&node-id=6%3A315&t=8IB7Zg3xd98xnVhP-1

Untitled

일반화

슈퍼(부모)클래스와 서브(자식)클래스간의 상속관계를 나타낸다.

실체화

실체화는 인터페이스의 메서드를 오버라이딩해서 실제 기능을 구현

인터페이스에 Implements를 써서 인터페이스를 상속해온다음, 구현

의존

어떤 클래스가 다른 클래스를 참조

참조 형태는, 객체생성/객체 사용/메서드 호출/객체 리턴/매개변수 등

객체 참조를 계속 유지하지는 않는다.

Association ( 연관 ) , Directed Association ( 직접 연관 )

연관은 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황

관계 차이점
의존 참조하는 객체나 클래스가 사용 후 사라짐 ( 지역변수에 객체가 보관되어 메서드 종료시 사라진다 )
연관 참조하는 객체나 클래스가 사용 후에도 계속 유지됨 (전역변수에 객체가 보관되어 클래스 생명 주기까지 유지된다.)

그럼 이제 의존과 연관의 차이를 알아봤으니, 연관의 종류에 대해서도 알아보자.

연관은 그냥 연관, 직접 연관 두가지가 있다.

왼쪽은 연관, 오른쪽은 직접연관을 UML로 그린 것이다.