Web (웹), Server (서버)

[Server] DataBase ERD / 데이터베이스 ERD

Oscar:) 2024. 2. 8. 17:08

 

 

이번 포스팅에서는 DB ERD에 대해 알아보자.

 

 

 


 

ERD 란?

 

 

Entity Relationship Diagram의 약어다.

 

*Entity : 실재, 독립체 등 / Relationship : 관계

 

 

Entity를 DB 내 하나의 테이블로 놓고 본다면

'DB 내 테이블 관계 다이어그램' 이라 이해할 수 있다.

 

 

가끔 ERD 다이어그램이라고 부르는 사람이 있는데,

다이어그램 x2 이기 때문에 부끄럽지 않도록 조심하자.

 

 

 


 

ERD 사용하면 뭐가 좋아요?

 

 

● 실제 DB를 구현하기 전, DB 설계의 이해를 높이기 위해 모델링할 수 있다.

 

● DB 구조를 한 눈에 알아보기 쉽도록 도움을 준다.

 

● 개발 시작 후에도, 구조화된 다이어그램을 보면서 수월한 작업을 할 수 있다.

 

 

 


 

ERD 표기 방법

 

 

이제 엔티티의 관계를 표기하는 방법을 알아보자.

 

 

✅ 식별 · 비식별 관계 정의

 

 

엔티티 사이에 연결 관계가 존재한다면 선을 이어줘야 하는데,

기본키를 기준으로 2가지로 구분한다.

 

 

● 식별 관계

 

부모 테이블의 기본키를 자식 테이블도 기본키로 사용하는 경우에 해당한다.

 

강한 종속 관계를 나타내며 실선으로 표기한다.

 

 

 

● 비식별 관계

 

부모 테이블의 기본키를 자식 테이블도 가지고 있지만,

이를 기본키로는 사용하지 않는 경우에 해당한다.

 

비교적 약한 종속 관계를 나타내며 점선으로 표기한다.

 

 


 

✅ 관계 형태 정의

 

 

위와 마찬가지로, 기본키를 기준으로 관계의 형태가 정의된다.

 

A · B 와 같이 2개의 엔티티가 있다고 가정하고,

4가지 예시를 들어보겠다.

 

 

 

① 1 : 1 관계

A는 B에서 하나의 자식만을 가진다.

 

② 1 : N 관계

A는 B에서 둘 이상의 자식을 가진다.

 

③ 1 : 1 (0) 관계

A는 B에서 하나 이하의 자식을 가질 수 있다.

 

④ 1 : N (0) 관계

A는 B에서 하나 이하 또는 하나 이상의 자식을 가질 수 있다.

 

 

 

위 ③ · ④번을 보면서 느꼈겠지만,

관계의 형태는 중복 표기할 수 있다.

 

 

기본적인 이해를 위해 4가지만 설명했을 뿐,

위에서 설명한 4가지 관계 말고도 더 많은 관계가 존재한다.

 

 

 


 

간단한 사용 예시

 

 

다음과 같이 3개의 테이블을 만들고 ERD를 표기해 보겠다.

 

Student(학생) · Hobby(취미) · Club(동아리)

 

 

위 학교에서는 학생들의 동아리 가입이 의무적이고,

1명의 학생이 1개의 동아리에만 가입할 수 있다고 가정한다.

 

 

 

● Student - Club

 

Student 테이블에서는 name을 기본키로 사용하고 있다.
Club 테이블에서도 name을 기본키로 사용한다.

두 테이블은 식별 관계에 해당하므로 실선으로 표기했다.

 

 

1명의 학생은 1개의 동아리에만 가입할 수 있으므로
1:1 관계 표시를 해주었다.

 

 


 

 

Student - Hobby

 

Student 테이블에서는 name을 기본키로 사용하고 있다.
Hobby 테이블에서도 name을 기본키로 사용한다.

두 테이블은 식별 관계에 해당하므로 실선으로 표기했다.

 

 

1명의 학생은 취미가 있을 수도 있고 없을 수도 있고 여러 개일 수도 있다.
따라서 1:N(0) 관계 표시를 해주었다.

 

 

 


 

ERD는 어떻게 만들어요?

 

 

ERD만 검색해도 여러 플랫폼이 나온다.

 

본인은 그 중에서 ERDCloud 라는 플랫폼을 이용했다.

 

 

링크 남긴다.

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

 

 


 

 

 

이번 포스팅에서는 데이터베이스 ERD에 대해 알아보았다.

 

DB 구조를 한 눈에 알아보기에 괜찮게 도움이 되었던 것 같다.