DB를 몇년째 보지 않다가 업무를 위해 RDBMS. 그중에서도 ERD 구조부터 다시 보게 되었다.
ERD를 그리는 이유에 대해서부터 다시 인지하고자 하였다.
ERD를 그리는 이유?
- ERD는 Entity Relationship Diagram의 약자로 DB를 설계하기 전의 미리 구조를 잡는 것을 말한다.
이를 토대로 실제 DB상에서 Entity(table)을 작성하고, 각 Table 간의 관계를 미리 파악한다.
이전에는 ERD가 눈에 잘 들어오지 않았는데, 아래와 같은 방식을 시도해보게 되었다.
1) 해당 페이지에서 어떤 정보를 DB에 넣으면 좋을까?
2) 하나의 정보라도 다른 개체가 이걸 여러 번 쓸 수 있지 않을까?
결국 DB의 테이블도 공통된 기준을 마련하고, 그에 따라 데이터를 저장하는 방식이라는 나름의 결론을 내리게 되었다.
그래서 조금씩 DB에 대한 구조가 잡히기 시작하였다.
데이터 모델링을 위해 ERD Cloud Tool을 주로 사용한다.
관계형 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(외래키)가 된다.
'Backend > DB' 카테고리의 다른 글
컬럼 Column, Row란? (0) | 2023.03.08 |
---|---|
varchar의 의미 (0) | 2023.02.28 |
Column 이름 짓기 규칙 정리 (+변수명,컬럼명 이름 지어주는 사이트) (0) | 2023.02.20 |
차트 데이터 볼 때 유의사항 +) Cron이란? (0) | 2023.02.17 |
Entity와 Table의 차이점 (0) | 2023.01.18 |