Nonamed Develog
[TIL][240814] ERD(Entity Relationship Diagram) 복습 본문
ERD란?
- ERD는 Entity Relationship Diagram의 약자로 데이터베이스 설계 과정에서 사용되는 모델링 기법중 하나이다.
- 데이터베이스에 저장될 데이터 엔터티(Entity) 간의 관계(Relationship)를 시작적으로 표현한다.
- 데이터베이스 설계 초기 단계에서 개념적 모델을 만드는데 사용된다.
*데이터베이스 설계 단계: 개념적 모델링 ➡️ 논리적 모델링 ➡️ 물리적 모델링 - 데이터베이스 구조를 시각화하여 개발자와 설계자 간 소통을 원활하게 하고, 데이터베이스 구조의 논리적 모순을 조기에 발견할 수 있다.
- Entity란?
Entity: 현실에 존재하는 개별적으로 식별할 수 있는 물리적/추상적인 개체를 의미한다. 각 Entity는 특징을 나타낼 수 있는 Attribute 들을 가지고 있다. 그림과 같이 데이터베이스의 테이블이라고 생각할 수 있고, <학생>이라는 Entity는 학번, 이름, 학점, 전공의 Attribute를 가질 수 있다.
- Entity란?
ERD 표기법
ERD 표기법은 크게 Peter-Chen 표기법과 까마귀 빌 표기법으로 나눌 수 있다. 까마퀴 표기법은 Barker 표기법과 IE 표기법으로 나뉜다. 표기법은 한가지만 사용할 수도 여러가지가 섞여서 사용할 수도 있다.
- Peter-Chen 표기법
아래 그림과 같이 Entity는 직사각형, Attribute는 타원, Relation은 마름모로 도식화하고 양쪽에 1:1, 1:N, N:M 같은 대응수(Cardinality)를 표기한다.
- 까마귀 발 표기법
까바귀 발을 닮아서 지어진 이름으로 실무에서 가장 많이 사용되는 방식이다. 여러 변형 중 Barker, IE 표기법이 대표적이다.
- 어떻게 표기할까?
그림과 같이직사각형 최상단에 Entity의 이름을 , 좌측에 PK FK 등의 정보를, 우특에 Attribute의 이름을 표기한다.
실선은 식별 관계를 나타내고, 점선은 비식별관계를 나타낸다. 식별 관계란 부모 Entity의 기본키를 자식 Entity의 기본키로 사용하는 관계이고, 비식별관계는 부모 Entity의 기본키를 자식 Entity에서 외래키로 사용하는 관계이다.
예를 들어 학생과 성적의 관계는 식별관계, 학생과 과목의 관계는 비식별관계라 볼 수 있다.
위의 Peter-Chen 표기법에선 대응수를 Relation을 의미하는 마름모 양쪽에 표기했는데, IE 표기법에서는 위와 같이 까마귀 발 모앙처럼 표기한다.
ERD 예시
- 회원 1명당 게시글은 0~N개가 있고, 게시글은 최소 1명의 회원이 남겨야 한다.
- 회원 1명당 댓글은 0~N개가 있고, 댓글은 최소 1명의 회원이 남겨야 한다.
- 회원 1명당 좋아요는 0~N개가 있고, 좋아요는 최소 1명의 회원이 눌러야 한다.
'WHAT I LEARN > TIL' 카테고리의 다른 글
[TIL][240819] Overriding (0) | 2024.08.19 |
---|---|
[TIL][240816] Git & Github 복습 (0) | 2024.08.18 |
[TIL][240813] 웹 심화 이해 복습 (0) | 2024.08.13 |
[TIL][240812] 웹 기본 이해 복습 (0) | 2024.08.12 |
[TIL][240809] DTL(Django Template Language) 문법 (0) | 2024.08.09 |