본문 바로가기

Backend/DB

RDBMS(Relational Database System)와 ERD Cloud

DB를 몇년째 보지 않다가 업무를 위해 RDBMS. 그중에서도 ERD 구조부터 다시 보게 되었다.

ERD를 그리는 이유에 대해서부터 다시 인지하고자 하였다. 

 

ERD를 그리는 이유? 

- ERD는 Entity Relationship Diagram의 약자로 DB를 설계하기 전의 미리 구조를 잡는 것을 말한다. 

이를 토대로 실제 DB상에서 Entity(table)을 작성하고, 각 Table 간의 관계를 미리 파악한다. 

 

이전에는 ERD가 눈에 잘 들어오지 않았는데, 아래와 같은 방식을 시도해보게 되었다. 

 

1) 해당 페이지에서 어떤 정보를 DB에 넣으면 좋을까? 

2) 하나의 정보라도 다른 개체가 이걸 여러 번 쓸 수 있지 않을까? 

 

결국 DB의 테이블도 공통된 기준을 마련하고, 그에 따라 데이터를 저장하는 방식이라는 나름의 결론을 내리게 되었다. 

그래서 조금씩 DB에 대한 구조가 잡히기 시작하였다. 

 

데이터 모델링을 위해 ERD Cloud Tool을 주로 사용한다.

 

https://www.erdcloud.com/

 

ERDCloud

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

www.erdcloud.com

 


관계형 DB란(RDBMS)? 

Entity(REST API에서는 @Entity로 매칭)끼리 관계를 맺을 수 있어 관계형 DB라는 이름이 붙게 되었다고 한다. 

Entity는 1:1, 1:N, N:N 관계를 맺을 수 있다. 

굳이 따지자면, N:1의 관계도 있는데 1:N의 거꾸로라고 생각하기로 했다. 

 

1:N의 관계를 가장 많이 사용하는데, 예를 들자면 1명의 author가 N개의 article을 발행할 수 있다는 것이 예시가 되겠다. 

주의) N:M은 피하는 것이 좋다.

 


ERD Tool을 보면서 알게 된 점

빨간선과 파란선으로 테이블들이 연결되어 있었는데, 이 차이점에 대해 팀원한테 질문을 했다. 

(연습용으로 그린 것이라 실제와 다를 수 있습니다) 

 

if) 테이블끼리 파란선으로 연결되어 있다면? 

> A테이블의 pk(기본키)가 B테이블에서도 pk가 된다. 

if2) 테이블끼리 빨간선으로 연결되어 있다면? 

> A테이블의 pk(기본키)가 B테이블의 fk(외래키)가 된다.