์ฑ๋ฅ์ ๊ณ ๋ คํ ๋ฐ์ดํฐ๋ชจ๋ธ๋ง ์ํ๋ฐฉ๋ฒ
1. ๋ฐ์ดํฐ๋ชจ๋ธ๊ตฌ์กฐ์ ์ํ ์ฑ๋ฅํฅ์
์ ๊ทํ
๋ฐ์ ๊ทํ
๋ฐ์ดํฐ ๋ชจ๋ธ ๋จ์ํ
2. ๋์ฉ๋ ํน์ฑ์ ๊ณ ๋ คํ ์ฑ๋ฅํฅ์
ํ ์ด๋ธ ์์ง/์ํ ๋ถํ
์ํผํ์ / ์๋ธํ์ ๊ณ ๋ ค
์ด๋ ฅ๋ชจ๋ธ
3. ์ธ๋ฑ์ค ํน์ฑ์ ๊ณ ๋ คํ ์ฑ๋ฅํฅ์น
PK๊ตฌ์ฑ
FK๊ตฌ์ฑ
๋ฐ์ดํฐํ์ ํน์ฑ์ ์ด์ฉ
ํจ์จ์ ์ธ ์ฑ๋ฒ ๋ฐฉ๋ฒ ์ ํ
๋ฐ์ ๊ทํ (De-Normalization)
์์คํ ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํตํฉํ๋ ํ๋ก์ธ์ค์ด๋ค.
์ ๊ทํ์ ๋ฐ์ ๊ทํ๋ Trade off ๊ด๊ณ์ ์๋ค.
๋ณธ๊ฒฉ์ ์ธ ๋ฐ ์ ๊ทํ ๋ฐฉ์์ ๋ํด ์ด์ผ๊ธฐ ํ๊ธฐ ์ ์ ๋์งํธ ๋๋ฐ์ด์ค(ํ๋์จ์ด)์ ์ฑ๋ฅ์ ์ด๋ค์์ผ๋ก ๋ณด์ฅํด ์ฃผ์ด์ผํ๋์ง ์์๋ณด์.
๋์คํฌ์ ๋ฉ๋ชจ๋ฆฌ(M/M), CPU ํฐ ์๋์ ๊ฐ๊ฒฉ ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฐ์ฐ์ ์ํํ๋ CPU๊ฐ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๋น์ธ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์คํฌ๋ ๊ฐ์ฅ ํฐ ์ ์ฅ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๊ณ ๋๋ฆฌ๋ค. ๋์คํฌ์ CPU๋ 1๋ง๋ฐฐ ์ด์์ ์๋ ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค๊ฐ์ ์๋ฆฌ์ก๊ณ ์๋๋ฐ, ๋์คํฌ๊ฐ ์ฅ๊ธฐ๊ธฐ์ต์ฅ์๋ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ ๋จ๊ธฐ๊ธฐ์ต์ฅ์์ด๋ค. (๋ฉ๋ชจ๋ฆฌ์ CPU์ ์๋์ฐจ์ด๋ ์ปค์ ์บ์๋ผ๋ ๋น์ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ทธ ๊ฐ๊ทน์ ๋ณด์ํ๋ค.)
๋ฉ๋ชจ๋ฆฌ๋ ํ ํธ๋์ญ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์์ ๊ฐ์ ธ์ CPU ์ฐ์ฐ์์ ์ ํ๋ ๊ธฐ๊ฐ๋์ ์ ์ฅํด๋๋๋ค. ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ํผ์ค๋ ํ์๋ฅผ ์ค์ผ์๋ก (์๋)๋ฅผ ํฅ์์ํฌ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ ์ด๋์ ์ ์ฅ๋ ๊น?
๋น์ฐํ ์ฅ๊ธฐ๊ธฐ์ต๋งค์ฒด์ธ ๋์คํฌ์ ์ ์ฅ๋๋ฉฐ, ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ํผ์ค๋ ํ์๋ฅผ ์ค์ด๋ ค๋ ๋ ธ๋ ฅ์ด ๋ฐ์ ๊ทํ์ด๋ค.
ํ ์ด๋ธ ๋ฐ์ ๊ทํ ๋ฐฉ๋ฒ
1. ํ ์ด๋ธ ๋ณํฉ
- 1:1๊ด๊ณ์ ํ ์ด๋ธ ๋ณํฉ:
๋ณํฉํ์ ๋ ์ดํ์ ์ข ์์ด ๋ฐ์ํ๋๋ผ๋, ์์ฃผ ๋ณ๊ฒฝ(Update)๋๋ ์ ๋ณด๊ฐ ์๋๋ฉฐ ๊ฐ์ด ์กฐํ(Read)๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ฉด ํตํฉํ๋ค.
- 1:m๊ด๊ณ์ ํ ์ด๋ธ ๋ณํฉ
- ์ํผํ์ ์๋ธํ์ ํ ์ด๋ธ ๋ณํฉ
2. ํ ์ด๋ธ ๋ถํ
- ์์ง ๋ถํ (column ๋จ์):
ํ ์ํฐํฐ(ํ ์ด๋ธ)์์ ์ง์คํ๋ ์ผ๋ถ ํญ๋ชฉ๋ค์ ๋ค๋ฅธ ์ํฐํฐ๋ก ๋ถ๋ฆฌํ๋ค
- ์ํ ๋ถํ (recode ๋จ์):
ํ๋ก์ธ์ค๊ฐ ๊ตฌ๊ฐ๋ณ(e.g ์๋ณ)๋ก ๋ฐ์ํ๋ ํ ์ํฐํฐ(ํ ์ด๋ธ)๋ฅผ ๊ตฌ๊ฐ๋ณ ์ํฐํฐ๋ก ๋ถํ ํ๋ค.
๊ตฌ๊ฐ๋ณ๋ก ์ํฐํฐ๋ฅผ ๋ถํ ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ ์ฑ๋ฅ์ ํฅ์๋๋ ์ฝ๋๋ฅผ ์งค ๋๋ ๋นํจ์จ์ ์ด๋ค. ๊ทธ๋์ ๊ทผ๋ DBMS์๋ ํํฐ์ ๋์ด๋ผ๋ ๊ธฐ๋ฅ์ ํตํด ํ ์ด๋ธ์ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ 1๊ฐ์ธ ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ N๊ฐ๋ก ์ชผ๊ฐ์ ์ ์ฅํ ์ ์๊ฒ ํด์ค๋ค.
3. ํ ์ด๋ธ ์ถ๊ฐ
์ค๋ณต ํ ์ด๋ธ, ์ง๊ณ ํ ์ด๋ธ, ์ด๋ ฅ ํ ์ด๋ธ, ๋ถ๋ถ ํ ์ด๋ธ ์ถ๊ฐ: ์ค๋ณต์๋ฆฌ์ ์ํด ์กฐํ(Read)์ฑ๋ฅ์ด ํฅ์๋๋ค.
์ปฌ๋ผ์ ๋ฐ์ ๊ทํ ๋ฐฉ๋ฒ
- ์ค๋ณต ์ปฌ๋ผ ์ถ๊ฐ:
์ด๋ฏธ ํ ์ด๋ธ C์์ ํ ์ด๋ธ A์ e์ปฌ๋ผ์ ์กฐํํ ์ ์๋ ๊ด๊ณ๊ฐ ์์ผ๋, ์์ฃผ ์กฐํ(Read)ํ๋ ์ปฌ๋ผ e๋ฅผ ํ ์ด๋ธ C์๋ ์ถ๊ฐํ์ฌ ์ ๊ทผ ๊ฒฝ๋ก๋ฅผ ๋จ์ถ์์ผ์ค๋ค.
- ํ์ ์ปฌ๋ผ ์ถ๊ฐ
- Primary Key์ ์ํ ์ปฌ๋ผ ์ถ๊ฐ
- ์ค ์ ๋ ฅ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ปฌ๋ผ ์ถ๊ฐ
๊ด๊ณ์ ๋ฐ์ ๊ทํ
- ๊ด๊ณ์ค๋ณต:
์ด๋ฏธ Aํ ์ด๋ธ์์ Cํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ์ฝ์ ์ ์๋ ๊ด๊ณ๊ฐ ์์์๋ ๊ด๊ณ๋ฅผ ์ค๋ณตํ์ฌ ์กฐํ(Read) ๊ฒฝ๋ก๋ฅผ ๋จ์ถ์ํจ๋ค.