
๊ฐํ ์ํฐํฐ์ ์ฝํ ์ํฐํฐ
๊ฐํ ์ํฐํฐ (Strong Entity)
- ๋ ๋ฆฝ์ ์ธ ์กด์ฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ์์ ๋ง์ ๊ณ ์ ํ ์ฃผ์๋ณ์๋ฅผ ๊ฐ์ง๋ค.
- ๋ค๋ฅธ ์ํฐํฐ์ ์กด์ฌ์ ์์กดํ์ง ์๋๋ค.
- ์์: ์ฌ์, ๊ณ ๊ฐ, ์ํ, ๋ถ์ ๋ฑ๊ณผ ๊ฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ ์ํฐํฐ
์ฝํ ์ํฐํฐ (Weak Entity)
- ์์ ์ํฐํฐ๊ฐ ์์ด์ผ๋ง ์์ ์ ์กด์ฌ๊ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.
- ์์ ์ํฐํฐ์ ์ฃผ์๋ณ์๋ฅผ ๋น๋ ค์ ์์ ์ ์์ฑ๊ณผ ๊ฒฐํฉํ์ฌ ๋ณตํฉํค๋ฅผ ๊ตฌ์ฑํ๋ค.
- ์์: ๋ถ์๊ฐ์กฑ
์ค๋ฌด ์ด์ผ๊ธฐ: ์๋ณ ๊ด๊ณ, ๋น์๋ณ ๊ด๊ณ
์ ํต์ ์ธ ์ค๊ณ ๋ฐฉ์์์ ์ฝํ ์ํฐํฐ๋ ์์ ์ํฐํฐ์ ์ฃผ์๋ณ์๋ฅผ ๋น๋ ค์ ์์ ์ ์์ฑ(๋ถ๋ถํค)๊ณผ ๊ฒฐํฉํด์ ๋ณตํฉ ํค๋ฅผ ๋ง๋๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ด๊ฒ์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๋จ๊ณ์์ ์๋ณ ๊ด๊ณ๋ผ ํ๋ฉฐ ์ด๋ ๊ฒ ๋๋ฉด ์์์ ๋ง๋ค ๋ ๋ฐ๋์ ๋ถ๋ชจ์ PK ๊ฐ์ ์ ๋ ฅํด์ผ ํ๋ค.
์ต๊ทผ์๋ ๋ ์ ์ฐํ๊ณ ์ค์ฉ์ ์ธ ๋น์๋ณ ๊ด๊ณ๋ผ๋ ๋ฐฉ๋ฒ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
๊ตฌ์กฐ์ ๊ด๊ณ ํํ์ ์ํ ํน์ ์ํฐํฐ
์ํฐํฐ ๊ฐ์ ๊ด๊ณ๊ฐ ๋จ์ํ ์ฐ๊ฒฐ์ ์ ๋์ด ๊ทธ ์์ฒด๊ฐ ํ๋์ ๋
๋ฆฝ๋ ์๋ฏธ๋ฅผ ๊ฐ๋ ๊ฐ๋
์ด ์๋ค.
์ฌ๊ฑด(Event)์ด๋ ๋ถ๋ฅ(Classification)์ ๊ฐ์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ชจ๋ธ์ ๋ฐ์ํ๊ธฐ ์ํด ํน์ ์ํฐํฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ฐ๊ด ์ํฐํฐ (Associative Entity)
- ๋ ๊ฐ ์ด์์ ์ํฐํฐ ๊ฐ์ ๋ฐ์ํ๋ ํน์ ์ฌ๊ฑด, ํ์, ๊ณ์ฝ ๋ฑ์ ํํํ๊ธฐ ์ํด ๋์ถ๋๋ ์ํฐํฐ๋ค.
- ๋ ๊ฐ ์ด์์ ๋ค๋ฅธ ์ํฐํฐ ๊ฐ์ ์กด์ฌํ๋ ๋ค๋๋ค(M:N) ๊ด๊ณ๋ฅผ ํด์ํ๋ค.
- ์ค๊ฐ ์ํฐํฐ๋ฅผ ํตํด ํ๋์ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ์ผ๋๋ค(1:N), ๋ค๋์ผ(N:1) ๊ด๊ณ๋ก ๋ณํํ๋ค.
์ํผํ์ /์๋ธํ์ ์ํฐํฐ (Supertype/Subtype Entity)
- ๋ ผ๋ฆฌ์ ์ผ๋ก ๋์ผํ ๊ฐ๋ ๊ทธ๋ฃน์ ์ํ์ง๋ง ์ผ๋ถ ์์ฑ์ด๋ ๊ด๊ณ์์ ์ฐจ์ด๊ฐ ์๋ ์ํฐํฐ๋ค์ ํจ๊ณผ์ ์ผ๋ก ํํํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ด๋ค.
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์์(Inheritance) ๊ฐ๋ ๊ณผ ๋งค์ฐ ์ ์ฌํ๋ค.
์ํผํ์ (Supertype)
- ๊ทธ๋ฃน ๋ด ๋ชจ๋ ์ํฐํฐ(์๋ธํ์ )๋ค์ด ๊ณตํต์ ์ผ๋ก ๊ฐ์ง๋ ์์ฑ๊ณผ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ์์ ์ํฐํฐ๋ค.
์๋ธํ์ (Subtype)
- ์ํผํ์ ์ผ๋ก๋ถํฐ ๊ณตํต ์์ฑ์ ์์๋ฐ๊ณ , ์์ ๋ง์ ๊ณ ์ ํ ์์ฑ์ด๋ ๊ด๊ณ๋ฅผ ์ถ๊ฐ๋ก ๊ฐ์ง๋ ํ์ ์ํฐํฐ๋ค.
์นด๋๋๋ฆฌํฐ์ ์ฐธ์ฌ๋
์นด๋๋๋ฆฌํฐ (Cardinality)
์นด๋๋๋ฆฌํฐ๋ ์ํฐํฐ ์ธ์คํด์ค(ํ) ํ๋๊ฐ ๋ค๋ฅธ ์ํฐํฐ์ ์ธ์คํด์ค์ ๋งบ์ ์ ์๋ ์ต๋ ์ซ์๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๊ธฐํ๋ค.
์นด๋๋๋ฆฌํฐ ๊ด๊ณ์ 4๊ฐ์ง ์ข
๋ฅ
- ์ผ๋์ผ(1:1)
- ์ผ๋๋ค(1:N)
- ๋ค๋์ผ(N:1)
- ๋ค๋๋ค(M:N)
์ฐธ์ฌ๋ (Optionality)
์ฐธ์ฌ๋๋ ํ ์ํฐํฐ์ ์ธ์คํด์ค๊ฐ ๊ด๊ณ์ ๋ฐ๋์ ์ฐธ์ฌํด์ผ ํ๋์ง(ํ์), ์๋๋ฉด ์ฐธ์ฌํ์ง ์์ ์๋ ์๋์ง(์ ํ)๋ฅผ ๊ฒฐ์ ํ๋ค.
์๋ฅผ ๋ค์ด ํ์๊ณผ ์ฃผ๋ฌธ์ ๊ด๊ณ๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- ํ์ โ ์ฃผ๋ฌธ ๊ด๊ณ๋ ์ ํ(Optional): ํ์์ด ์ฃผ๋ฌธ์ ํ์ง ์์ ์๋ ์๋ค.
- ์ฃผ๋ฌธ โ ํ์ ๊ด๊ณ๋ ํ์(Mandatory): ์ฃผ๋ฌธ์ ๋ฐ๋์ ํ์๊ณผ ์ฐ๊ฒฐ๋์ด์ผ ํ๋ค.
๊ด๊ณ์ ํํ๊ณผ ์ธ๋ ํค
- ๊ฐ๋ ์ ๋ชจ๋ธ๋ง ๋จ๊ณ์์๋ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ด๊ณ์ (Relationship)์ผ๋ก ํํํ๋ค.
- ์ธ๋ ํค ๊ฐ์ ํน์ ๊ธฐ์ ์ ๊ตฌํ์ ์์๋ ํฌํจํ์ง ์๋ ๊ฒ์ด ์์น์ด๋ค.
- ์ค๋ฌด์์๋ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง๊ณผ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์ ๋ฐ๋ก ๊ตฌ๋ถํ์ง ์๊ณ ํจ๊ป ์งํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ERD (Entity-Relationship Diagram)
ERD๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํด์ ๊ฐ๋ฐ์, ๊ธฐํ์ ๋ฑ ๋ชจ๋ ๊ด๊ณ์๊ฐ
์์คํ
์ ์ฒญ์ฌ์ง์ ํ๋์ ํ์
ํ๊ณ ์ํตํ ์ ์๊ฒ ๋์์ฃผ๋ ์ค๊ณ ๋๊ตฌ๋ค.
ํผํฐ ์ฒธ ํ๊ธฐ๋ฒ

- ์ค๋ฌด์์ ์ฌ์ฉํ์ง๋ ์๋๋ค.
- ์ํฐํฐ๋ ์ฌ๊ฐํ, ๊ด๊ณ๋ ๋ง๋ฆ๋ชจ, ์์ฑ์ ํ์์ผ๋ก ํํํ๋ ์ ํต์ ์ธ ๋ฐฉ์์ด๋ค.
๊น๋ง๊ท๋ฐ(Crow's Foot) ํ๊ธฐ๋ฒ

- ํ์ฌ ์ค๋ฌด์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฌ์ค์์ ํ์ค์ด๋ค.
- ์ ์ ์ ๋์ ๊ธฐํธ๋ฅผ ๋ถ์ฌ ์นด๋๋๋ฆฌํฐ์ ์ฐธ์ฌ๋๋ฅผ ๋์์ ํํํ๋ค.
์ฐ๊ด ์ํฐํฐ - ๋ค๋๋ค ๊ด๊ณ ํด๊ฒฐ
M:N ๊ด๊ณ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฐ๊ด ์ํฐํฐ(Associative Entity) ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๋ ์ํฐํฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ์๋ก์ด ์ํฐํฐ๋ฅผ ๋ง๋ค์ด ๊ธฐ์กด์ M:N ๊ด๊ณ๋ฅผ ๋ ๊ฐ์ 1:N, N:1 ๊ด๊ณ๋ก ํ์ด๋ด๋ ๋ฐฉ์์ด๋ค.
์ฐ๊ด ์ํฐํฐ๋ ๋
ผ๋ฆฌ/๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๋จ๊ณ์์๋ ์ฐ๊ฒฐ ํ
์ด๋ธ(Link Table), ์กฐ์ธ ํ
์ด๋ธ(Join Table), ๋งคํ ํ
์ด๋ธ(Mapping Table) ๋ฑ์ผ๋ก ๋ถ๋ฆฐ๋ค.
๋ค๋๋ค ๊ด๊ณ๋ฅผ ํด์ํ๊ณ ๊ด๊ณ์ ๋ํ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์ ์ฐ๊ฒฐํ๋ ์ค๊ฐ ํ
์ด๋ธ์ ์๋ฏธํ๋ค.
์ค๋ฌด ์ด์ผ๊ธฐ: ์ฐ๊ด ์ํฐํฐ ์ถ์ฒ ์ด๋ฆ ๋ฐ ํน์ง
1. ์ฐ๊ฒฐ ๊ฐ์กฐ
- ์ฃผ๋ฌธ ์ํ(order_product):
'์ฃผ๋ฌธ'๊ณผ '์ํ' ํ ์ด๋ธ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐํ๋ค๋ ๊ด๊ณ๋ฅผ ์ด๋ฆ์ ๋ช ์์ ์ผ๋ก ๋ณด์ฌ์ค๋ค.
๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๋จ์ํ์ฌ ๊ด๊ณ๋ฅผ ํ์ ํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์๋ค.
2. ์๋ฏธ ์๋ ์ด๋ฆ
- ์ฃผ๋ฌธ ํญ๋ชฉ(order_item):
'์ฃผ๋ฌธ'์ ํฌํจ๋ 'ํญ๋ชฉ'์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ฅ ๋ช ํํ๊ฒ ์ ๋ฌํ๋ค.
์ค์ ์ผํ๋ชฐ ๋น์ฆ๋์ค ๋ก์ง(์: ์ฅ๋ฐ๊ตฌ๋ ํญ๋ชฉ, ์ฃผ๋ฌธ ํญ๋ชฉ)๊ณผ ์ฉ์ด๊ฐ ์ผ์นํ์ฌ ์ดํดํ๊ธฐ ์ฝ๋ค.
- ์ฃผ๋ฌธ ์์ธ(order_detail):
'์ฃผ๋ฌธ์ ์์ธ ๋ด์ญ'์ด๋ผ๋ ์๋ฏธ๋ก, order_item๊ณผ ๊ฑฐ์ ๋์ผํ ์๋ฏธ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
์ฃผ๋ฌธ์ ์ํ ๊ฐ ์ํ ์ ๋ณด๋ฅผ ์์ธํ ๋ํ๋ธ๋ค๋ ์ ์ ๊ฐ์กฐํ๋ค.
์ฉ์ด ์ฌ์
์ฉ์ด ์ฌ์ ์ ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋ ๋ชจ๋ ๊ตฌ์ฑ์์ ๊ณตํต ์ธ์ด(Ubiquitous Language)๋ฅผ ๋ง๋๋ ํต์ฌ์ ์ธ ๊ณผ์ ์ด๋ค.
์ฉ์ด ์ฌ์ ์์ฑ ์์น
- ์ฉ์ด๋ฅผ ์ญํ ๋ณ๋ก ๋ถ๋ฅํ๊ณ , ์ฝ์ด์ ์ ์ฒด ์๋ฌธ๋ช ์ ๋ช ํํ ๊ตฌ๋ถํ๋ฉฐ, ์ค์ ์์คํ ์์ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๊ตฌ์ฒด์ ์ธ ์์๋ฅผ ํจ๊ป ๊ธฐ๋กํ๋ค.
- ๋จ์ผ์ด(Single Word) ์ค์ฌ์ผ๋ก ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ฐ์ฅ ์์ ๋จ์์ ๋จ์ผ์ด๋ฅผ ์ค์ฌ์ผ๋ก ์ฌ์ ์ ๊ตฌ์ฑํ๋ค.
- ํ์id =
member+id=member_id - ์ํ ๊ฐ๊ฒฉ =
product+price=product_price
- ์ ์ ์๋ ๋จ์ผ์ด ์ฌ์ ์ ๋ฌดํํ ์ฉ์ด๋ฅผ ์ผ๊ด๋๊ฒ ๋ง๋ค์ด๋ด๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฐ์ด ๋๋ค.
- ์ถ์ฝ์ด๋ ๋ฐ๋์ ์ฉ์ด์ฌ์ ์ ๋ฑ๋กํ๊ณ ๋ชจ๋์ ๋์ํ์ ์ฌ์ฉํ๋ค.
- ํ๋ก์ ํธ๊ฐ ์งํ๋๋ฉด์ ์๋ก์ด ์ฉ์ด๊ฐ ์ถ๊ฐ๋๊ณ ์๋ก์ด ๋น์ฆ๋์ค ์ฉ์ด๊ฐ ์๊ฒจ๋ ๋๋ง๋ค ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ด์ผ ํ๋ค.
์ ์ฒด๋ฅผ ๋ณด๋ ๊ฐ๋ฐ์์ ์ ๊ทผ๋ฒ
ํ๋ฅญํ ๊ฐ๋ฐ์๋ ๋จ์ํ ์ฃผ์ด์ง ๊ธฐ๋ฅ์ '์ด๋ป๊ฒ' ๊ตฌํํ ์ง์๋ง ์ง์คํ์ง ์๋๋ค.
๊ทธ๋ณด๋ค ๋จผ์ ์ด ๊ธฐ๋ฅ์ '์' ๋ง๋ค์ด์ผ ํ๋์ง ์ง๋ฌธํด์ผ ํ๋ค.
๋จ์ํ ๊ธฐ์ ๊ตฌํ์๋ง ๋งค๋ชฐ๋๋ ๊ฒ์ด ์๋๋ผ ๋น์ฆ๋์ค์ ์ฑ๊ณต์ด๋ผ๋ ๋ ํฐ ๊ทธ๋ฆผ์ ๋ณด๋ ๊ฒ์ ์งํฅํด์ผ ํ๋ค.
์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง
1๋จ๊ณ: ํต์ฌ ์๊ตฌ์ฌํญ ๋ค์ ์ ์ํ๊ธฐ (MVP)
- MVP(Minimum Viable Product, ์ต์ ๊ธฐ๋ฅ ์ ํ)๋ฅผ ์ ์ํ๋ ๊ณผ์ ์ด๋ค.
- ์์ฅ์์ ์ด์๋จ๊ธฐ ์ํด ํ์ํ ์ต์ํ์ ๊ธฐ๋ฅ์ ์ ์ํ๋ ๊ฒ์ด๋ค.
2๋จ๊ณ: ํต์ฌ ์ํฐํฐ ๋์ถ
- ๋จ์ํด์ง ์๊ตฌ์ฌํญ์์ ๋ฐ์ดํฐ์ ๋ผ๋, ์ํฐํฐ๋ฅผ ์ฐพ์๋ด๋ ๋จ๊ณ๋ค.
- ์์: ํ์, ์ํ, ์ฃผ๋ฌธ, ๊ฒฐ์ , ๋ฐฐ์ก
3๋จ๊ณ: ์์ฑ ์ ์ ๋ฐ ๊ด๊ณ ์ค์
- ๊ฐ ์ํฐํฐ์ ์ธ๋ถ ์ ๋ณด(์์ฑ)๋ฅผ ์ ์ํ๊ณ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ ๋จ๊ณ๋ค.
- ์์: product ํ ์ด๋ธ์ ์์ฑ - id, product_name, price, stock ๋ฑ
4๋จ๊ณ: M:N ๊ด๊ณ ํด์์ '์ฐ๊ด ์ํฐํฐ'
- ๋ ์ํฐํฐ์ ๊ด๊ณ ์์์๋ง ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ์์ฑ์ด ์๋๊ฐ๋ฅผ ํ๋จํ๋ค.
์ฃผ๋ฌธ๊ณผ ์ฃผ๋ฌธ ํญ๋ชฉ์ ๊ด๊ณ (1:N)
- ํ๋์
์ฃผ๋ฌธ์ ์ฌ๋ฌ ๊ฐ์์ฃผ๋ฌธ ํญ๋ชฉ์ ๊ฐ์ง ์ ์๋ค. - ํ๋์
์ฃผ๋ฌธ ํญ๋ชฉ์ ๋ฐ๋์ ํ๋์์ฃผ๋ฌธ์ ์ํ๋ค.
์ํ๊ณผ ์ฃผ๋ฌธ ํญ๋ชฉ์ ๊ด๊ณ (1:N)
- ํ๋์
์ํ์ ์ฌ๋ฌ์ฃผ๋ฌธ ํญ๋ชฉ์ ํฌํจ๋ ์ ์๋ค. - ํ๋์
์ฃผ๋ฌธ ํญ๋ชฉ์ ๋ฐ๋์ ํ๋์์ํ์ ๊ฐ์ง๋ค.
'Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง โ ํค(Key)์ ๋ชจ๋ ๊ฒ (0) | 2026.01.03 |
|---|---|
| Postgres์ PostGIS ๊ฐ๋ , ์ปค๋จธ์ค ํ์ฉ ์ฌ๋ก ๋ฐ ์ค์น ๊ฐ์ด๋ (1) | 2026.01.01 |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ฑ ์ ์ด (0) | 2026.01.01 |
| ๊ฐ๋ ์ ๋ชจ๋ธ๋ง (1) - ์๊ตฌ์ฌํญ ๋ถ์๊ณผ ์ํฐํฐ์ ์ดํด (1) | 2025.10.07 |
| DB ์ค๊ณ์ ์ค์์ฑ๊ณผ 3๋จ๊ณ ์ค๊ณ ํ๋ก์ธ์ค (0) | 2025.10.07 |