ERD ์ค๊ณ
[ํฌ์ธํธ]
1. ์ค๊ณํ ํ๋ฉด์ ์ฐธ๊ณ ํ๋ฉด์
2. ์ค๋ณต์ ๊ฑฐ : ์ ๊ทํ
3. ๋ฆฌ์์ค ๋จ์๋ก ์ค๊ณ
ํ์ ์์๋ ์ค๋ณต์ ํ์ฉํ๋๋ผ๋ ์ ์ฐํ๊ฒ ์์ฑํ ํ์๊ฐ ์์
[๋จ๊ณ]
์์คํ ๋ถ์ -> ๋ ผ๋ฆฌ -> ๋ฌผ๋ฆฌ
[Example] Instagram
์์ ๋ก ์ธ์คํ๊ทธ๋จ์ ERD๋ฅผ ์ค๊ณํด๋ณด๊ธฐ!
์์คํ ๋ถ์
์์ฑํ๊ฒ ๋ ํ๋ฉด์์ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์ฑํ๋ฉด์ ์ ์ ๊ตฌ์กฐ๋ฅผ ์ก์๋ณด๋ ๋จ๊ณ์ ๋๋ค.
ํฌ๊ฒ ์ ์ ์ ๋ณด, ๊ฒ์๋ฌผ, ๋๊ธ ํ๋ฉด์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ ์ ๋ณด : id, ์ด๋ฆ, ํ๋กํ์ฌ์ง, ๊ฒ์๋ฌผ ์, ํ๋ก์ฐ ์, ํ๋ก์ ์, ์๊ฐ ๊ธ, Web site ๋งํฌ, ๊ฒ์๋ฌผ, ๊ฒ์๋ฌผ ์ฌ์ง, ์ฌ๋ฆฐ ์๊ฐ
๊ฒ์๋ฌผ : id, ๊ฒ์๋ฌผ ์ฌ์ง, ์ข์์ ์ ๋ณด, ๊ฒ์๋ฌผ ๊ธ, ํ๋กํ ์ฌ์ง, ์ฌ๋ฆฐ ์๊ฐ
๋๊ธ : id, ๋๊ธ, ๋๋๊ธ, ์ฌ๋ฆฐ์๊ฐ
์ด๋ ๊ฒ ์ ๋ฆฌํด ๋ณผ ์ ์๊ฒ ์ต๋๋ค!
๋ ผ๋ฆฌ
์ํด์ ์ ๋ฆฌํ ํด๋น ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ํ๊ณ , ๊ตฌ์ฒดํ๋ ์ ๋ฌด ์ค์ฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ง๋๋ ๋จ๊ณ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ๋ ์ ๊ตฌ์ฑ์์๋ฅผ ๊ณ ๋ คํ์ฌ ์์ฑํ๋ค.
ใด Entity (๊ฐ์ฒด) : ์ ์ , ๊ฒ์๊ธ, ๋๊ธ
ใด Attribute (์์ฑ)
ใด ์ ์ : ์์ด๋, ์ด๋ฆ, ์๊ฐ๊ธ, ํ๋กํ ์ฌ์ง, ์น์ฌ์ดํธ ๋งํฌ ...
ใด ๊ฒ์๊ธ : ์ ์ ์์ด๋, ์ฌ์ง, ๋ด์ฉ, ์ข์์ ์, ๋๊ธ ์ ...
ใด Relation (๊ด๊ณ) : ๊ฒ์๊ธ์ ์ ์ ์์ด๋ (F.K) -> ์ ์ ์ ์์ด๋ (P.K)
์ฆ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ณํ๊ณ , ๊ฐ์ฒด๊ฐ ๊ฐ๋ ์์ฑ์ ๊ตฌ์ฑํ ํ, ๊ฐ์ฒด ์ฌ์ด ๊ด๊ณ๊ฐ ์ด๋ป๊ฒ ๋๋์ง ํ์ ํ๋ ๋จ๊ณ
๋ฌผ๋ฆฌ
๋ ผ๋ฆฌ ๋จ๊ณ์์ ์ค๊ณํ ๋ฐ์ดํฐ๋ฅผ ์ค์ DB์ ์ฎ๊ธฐ๋ ๋จ๊ณ์ด๋ค.
[๋ ผ๋ฆฌ] | [DB] |
Entity | Table |
Attribute | Column |
Relation | 1:1 = ํ
์ด๋ธ : ์ปฌ๋ผ 1:N = N์ธ ํ ์ด๋ธ์ FK ์ค์ N:M = ๋ ์ฌ์ด์ ์๋ก์ด ํ ์ด๋ธ ์์ฑ |
Relation ์ค์ ์ ํ๋์ฉ ์์ธํ๊ฒ ์ดํด๋ณด๋๋ก ํ์
1 : 1
- ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ์ฌ๋๊ณผ์ ๊ด๊ณ๋ฅผ ์๊ฐํด๋ณด์.
- ๋ํ๋ฏผ๊ตญ ๊ตญ๋ฏผ๋ค์ ๋ถ๋ฒ์ ์ ์ง๋ฅด์ง ์๋ ์ด์ ํ ์ฌ๋๋น ํ๋์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ๋ํ๋ฏผ๊ตญ ๊ตญ๋ฏผ ํ ์ด๋ธ์ด ์๋ค๋ฉด ํด๋น ํ ์ด๋ธ ์ปฌ๋ผ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์์ฑ์ ๋ฃ์์ผ๋ก์ ๋์ ๊ด๊ณ๋ฅผ ์ ์ํ ์ ์๋ค.
1 : N
- ์ธ์คํ๊ทธ๋จ์ ๊ฒ์๋ฌผ์ ์์ฑํ๋ค๊ณ ์๊ฐํด๋ณด์
- ๊ฒ์๋ฌผ ํ ์ด๋ธ์ด ์๋ค๋ฉด ๊ฒ์๋ฌผ์ ํฌํจ๋๋ ์ฌ์ง์ด๋ ๋์์์ ์ต๋ 10๊ฐ๋ ๋๋ค.
- ์ฆ ํ๋์ ๊ฒ์๋ฌผ(1)์ ์ฌ๋ฌ๊ฐ์ ์ฌ์ง(N)์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ ๊ฒ์ด๋ค.
- ํ๋์ ํ ์ด๋ธ์์ ๊ฒ์๋ฌผ์ ๋ํ ๋ชจ๋ ๋ด์ฉ์ ๋ด๊ฒ ๋๋ฉด ๊ฒ์๋ฌผ ๋ด์ฉ์ ์ค๋ณต์ด ๋ฐ์ํ ๊ฒ์ด๋ค.
- ์ฆ ์๋ ๊ทธ๋ฆผ์ ํํ๋ก ํ ์ด๋ธ์ ์์ฑํ๋ค๋ฉด id, ๋ด์ฉ, userId๊ฐ ์ฌ๋ฌ ๋ ์ด๋ธ์ ์ค๋ณตํ์ฌ ๋ฐ์ํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
- ์ด๋ฅผ ๋ณด์ํ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ์์ ๊ธ์์ ์ค๋ช ํ ์ ๊ทํ์ด๋ค
- ๊ฒ์๋ฌผ ํ ์ด๋ธ์ ์ฐธ์กฐํ๋ ๊ฒ์๋ฌผ ์ฌ์ง ํ ์ด๋ธ์ ์์ฑํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๊ฒ ๋๋ค.
N : M
- ์ฑ ๊ณผ ์ ์์ ๊ด๊ณ๋ฅผ ์๊ฐํด๋ณด์
- ํ๋์ ์ฑ ์ ์ฌ๋ฌ ์ ์(N)์๊ฒ ์ฐ์ฌ์ง ์ ์๊ณ , ํ๋ช ์ ์ ์๋ ์ฌ๋ฌ ์ฑ (M)์ ์์ฑํ ์ ์๋ค.
- ์ฑ ํ ์ด๋ธ์์๋ 1๋ฒ ์ฑ ์ด 1, 2๋ฒ ์๊ฐ์๊ฒ ์์ฑ๋์๋๋ฐ id, ๋ด์ฉ์ด ์ค๋ณต ์์ฑ๋์๋ค.
- ์๊ฐ ํ ์ด๋ธ์์๋ 1๋ฒ ์๊ฐ๊ฐ 1, 2๋ฒ ์ฑ ์ ์์ฑํ์๋๋ฐ id, ์ด๋ฆ์ด ์ค๋ณต ๋์๋ค.
- ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด์๋ ๋ ์ฌ์ด์ ์๋ก์ด ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
- ์ถ๊ฐ๋ ํด๋น ํ ์ด๋ธ์ ๋ ํ ์ด๋ธ์ ๋ชจ๋ F.K๋ก ์ฐธ์กฐํ์ฌ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ค.
- id๋ ๋ ์ด๋ธ์ ๊ตฌ๋ถํ๊ธฐ ์ํ ์์ฑ์ด๊ณ BookId๋ ์ฑ ํ ์ด๋ธ์ id๋ฅผ, writerId๋ Writer ํ ์ด๋ธ์ id๋ฅผ ์ฐธ์กฐํจ์ผ๋ก ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค.
RDS Relational Database Service
- ์๋ฒ ๋ด์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ํด๋น DB๋ฅผ ์ฌ๋ฌ ์๋ฒ์ ์ ์ฉํ ์ ์๊ฒ ํ๋ ๊ฐ๋
- ๋ฉ์ดํ์คํ ๋ฆฌ์ ๊ฐ ์๋ฒ( ๋ฃจ๋, ์ค์นด๋์ ...)๋ ๋ถ๋ฆฌ๋์ด ์บ๋ฆญํฐ๊ฐ ๋๋๋ค ์ ์๋๋ฐ, ์ด๋ RDS๊ฐ ์ ์ฉ๋์ง ์์ ๊ฒ์ด๋ค.
- ๊ฐ๊ฐ์ ์๋ฒ๊ฐ ํฐ์ง๋ฉด ์ฐ๊ฒฐ๋ DB๋ ์ฐ๊ฒฐ์ด ๋์ด ๋จนํต์ด ๋๊ธฐ ์ผ์์ด๋ค.
- ๊ตฌ๊ธ ๊ณ์ ์ ์ด์ฉํ์ฌ ์ ํ๋ธ ์๋ฒ๋ ์ด์ฉํ ์ ์๊ณ , Gmail ์๋ฒ๋ ์ด์ฉํ ์ ์๋ ๊ฒ์ RDS๊ฐ ์ ์ฉ๋์ด์๊ธฐ ๋๋ฌธ์ด๋ค.
PRACTICE
https://www.notion.so/softsquared/3-ERD-Query-4a530ac3c9184f3f84dd546e68e38375?pvs=4
REFERENCE
http://wiki.hash.kr/index.php/ERD