예전에 학교에서 ERD를 배워본적이 있지만 잘 기억이 나지 않아요ㅜㅜ
그래서 이번에 다시 한번 공부하고 정리를 해보려고 합니다!!
그렇다면 ERD란 무엇일까?
ERD는 개체 속성과 개체 간의 관계를 그림 혹은 도표로 표현한 것이다!!
간단하게 관계를 그림,표로 시각화 했다고 보면 될 거 같다!!
데이터의 흐름과 연관성을 이해하는데 매우 중요한 역할을 한다.
ERD는 왜 하는거지?
ERD는 데이터 모델링에서 개념적인 설계를 할떄 개념 스키마를 만들기 위해 사용된다!!
쉽게 말한면 데이터 모델링을 하는이유가 요구 사항으로부터 SQL문을 얻기 위함인데(꼭 SQL이 목적은 아님) 과정은 다음과 같다.
요구사항 분석 -> 요구사항 분석서 -> 개념적 설계 -> ERD -> 논리적 설계 -> 관계형 모델 -> 물리적 설계 -> SQL
이런식으로 어떤 단계의 아웃풋이 다음 단계의 인풋이 되는 구조이다.
ERD는 이중에서 개념적 설계를 하기 위함이다!!
그러면 ERD는 어떻게 그리는데?
일단 구성 요소는 다음과 같다.
Entity
- 실제 현실에서 독립적으로 존재하는 것을 의미한다.
- 서로 관계를 맺는다.
Attribute
- entity를 설명하는 특성
- 키 속성 : entity마다 고유한 값을 가지는 속성을 말한다, 하나이상 존재가 가능하다.
Relationship
- Entity들을 연결하는 정보이다.
- relationship도 attribute를 가질 수 있다.
- 1:1, 1:M, M:N의 관계로 나누어 진다.
- 반드시 필요한 것은 두줄, null이 되어도 되는 것은 한줄로 표현한다.
1:1(점선) - 1:1 비식별 관계
1:N(점선) - 1:N 비식별 관계
1:1(실선) - 1:1 식별 관계
1:N(실선) - 1:N 식별 관계
N:M(실선) - N:M 식별 관계 (N:M은 비식별 관계가 있을 수 없다.)
식별, 비식별이 뭔데?
비식별
- 기본키에 외래키가 포함되어 있지 않으면 비식별 관계이다!!
식별
- 기본키에 외래키가 포함되어 있으면 식별 관계이다.
- 키가 없는 Entity를 weak Entity라고 하는데 weak Entity와 부모 Entity 간의 관계를 식별 관계라고 한다.
예를 들어 최종적으로 위와 같이 ERD가 그려지게 된다
끝!
'웹 프로그래밍 > BackEnd' 카테고리의 다른 글
[Backend] ORM과 Sequelize (0) | 2021.09.29 |
---|---|
로그인 - 쿠키와 세션 (0) | 2021.09.29 |
[nginx] nCloud서버에 nginx적용하기 (2) | 2021.09.17 |
[express, nodejs] res.send() VS res.json() 그리고 res.end() (0) | 2021.09.16 |
REST API(그런 REST API로 괜찮은가?) (0) | 2021.09.13 |