이번 포스팅에서는 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 라는 플랫폼을 이용했다.
링크 남긴다.
이번 포스팅에서는 데이터베이스 ERD에 대해 알아보았다.
DB 구조를 한 눈에 알아보기에 괜찮게 도움이 되었던 것 같다.
'Web (웹), Server (서버)' 카테고리의 다른 글
[Server] DataBase Transaction / 데이터베이스 트랜잭션 / 사용법 (0) | 2024.02.07 |
---|---|
[MySQL] Join을 사용해보자 (4) | 2024.01.17 |
[Web] HTML에 CSS 적용하기 - (2) / CSS 적용 안될 때 / CSS 적용 우선 순위 / 스타일 시트 우선 순위 / 선택자 우선 순위 / 페이지 강력 새로고침 (0) | 2024.01.16 |
[Web] HTML에 CSS 적용하기 - (1) / 스타일 시트 종류 / 선택자 지정하기 (2) | 2024.01.15 |
[Web] HTTP, HTTPS, HTTP2 에 대해 알아보자 (0) | 2023.05.20 |