[๋ชฉ์ฐจ]
๐์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๊ฐ์
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ํ์์ : ๋ถ์/์ค๊ณ๋จ๊ณ
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณ ๋ ค์ฌํญ
๐์ ๊ทํ์ ์ฑ๋ฅ
์ ๊ทํ๋ฅผ ํตํ ์ฑ๋ฅ ํฅ์ ์ ๋ต
ํจ์์ ์ข
์์ฑ๊ณผ ์ ๊ทํ ๊ณผ์
๐๋ฐ์ ๊ทํ์ ์ฑ๋ฅ
๋ฐ์ ๊ทํ๋ฅผ ํตํ ์ฑ๋ฅํฅ์ ์ ๋ต
๋ฐ์ ๊ทํ ์ ์ฉ๋ฐฉ๋ฒ
๋ฐ์ ๊ทํ ๋์์กฐ์ฌ, ๋ค๋ฅธ๋ฐฉ๋ฒ ์ ๋ ๊ฒํ
๋ฐ์ ๊ทํ ์ ์ฉ
๐๋๋ ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ
๋๋ ๋ฐ์ดํฐ๋ฐ์์ ๋ฐ๋ฅธ ํ
์ด๋ธ ๋ถํ (Row Chaining, Row Migration)
PK์ ์ํ ํ
์ด๋ธ ํํฐ์
๋ (Range, List, Hash ํํฐ์
๋)
ํ
์ด๋ธ์ ๋ํ ์ํ/์์ง๋ถํ ์ ์ฐจ
๐๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ์ฑ๋ฅ
์ํผ/์๋ธํ์
๋ชจ๋ธ(=Extended ER๋ชจ๋ธ)์ ์ฑ๋ฅ๊ณ ๋ ค๋ฐฉ๋ฒ (One to One, Plus, Single Type)
์ธ๋ฑ์ค ํน์ฑ์ ๊ณ ๋ คํ PK/FK ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ํฅ์
๐๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ
๋ถ์ฐ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๋ช
์ฑ
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ๋จ์
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฉ ๊ธฐ๋ฒ
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ๊ณ ๋ คํด์ผํ๋ ๊ฒฝ์ฐ
๐์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๊ฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅํฅ์์ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋จ๊ณ๋ถํฐ ์ ๊ทํ, ๋ฐ์ ๊ทํ, ํ ์ด๋ธํตํฉ, ํ ์ด๋ธ๋ถํ , ์กฐ์ธ๊ตฌ์กฐ, PK, FK ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์ฑ๋ฅ๊ณผ ๊ด๋ จ๋ ์ฌํญ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ฐ์๋ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ํ์์ : ๋ถ์/์ค๊ณ๋จ๊ณ
์ฑ๋ฅ ํฅ์ ๋น์ฉ์ ์ฌ์ ์ ํ ์๋ก ์ ๋ ดํ๋ค.
ํนํ ๋ถ์/์ค๊ณ ๋จ๊ณ์์ ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ํํ ๊ฒฝ์ฐ, ์ฑ๋ฅ ์ ํ์ ๋ฐ๋ฅธ ์ฌ์ ๋ฌด ๋น์ฉ์ ์ต์ํํ ์ ์๊ฒ๋๋ค.
๋ฐ์ดํฐ์ ์ฆ๊ฐ๊ฐ ๋น ๋ฅผ์๋ก ์ฑ๋ฅ์ ํ์ ๋ฐ๋ฅธ ์ฑ๋ฅ๊ฐ์ ๋น์ฉ์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋๋ค.
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณ ๋ ค์ฌํญ
โ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ ๋ ์ ๊ทํ๋ฅผ ์ ํํ๊ฒ ์ํํ๋ค.
โก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ๋์ฐ์ ์ ์ํํ๋ค.
โข ๋ฐ์๋๋ ํธ๋์ญ์
์ ์ ํ์ ํ์
ํ๋ค.
โฃ ์ฉ๋๊ณผ ํธ๋์ญ์
์ ์ ํ์ ๋ฐ๋ผ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค.
โค ์ด๋ ฅ๋ชจ๋ธ์ ์กฐ์ , PK/FK์กฐ์ , ์ํผํ์
/์๋ธํ์
๋ฑ๋ฑ์ ์กฐ์ ๋ฑ์ ์ํํ๋ค.
โฅ ์ฑ๋ฅ๊ด์ ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฒ์ฆํ๋ค.
๐์ ๊ทํ์ ์ฑ๋ฅ
์ ๊ทํ๋ฅผ ํตํ ์ฑ๋ฅ ํฅ์ ์ ๋ต
์ ๊ทํ๋ ์ต์ํ์ ๋ฐ์ดํฐ ์ค๋ณต, ๋ฐ์ดํฐ์ ์ ์ฐ์ฑ์ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ณผ์ ์ด๋ค.
ํ์ง๋ง, ์กฐ์ธ์ด ๋ง์ด ๋ฐ์ํ๊ฒ๋์ด ์ฑ๋ฅ์ด ์ ํ๋ ์๋ ์๋ค. => ๋ฐ์ ๊ทํ ์ํํ๋ฉด ํด๊ฒฐ๋๋ค.
์กฐํ์ฑ๋ฅ | ์ฒ๋ฆฌ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ํฅ์๐๋ ์ ์์ |
์ฒ๋ฆฌ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ์ ํ๐๋ ์ ์์ | |
์ ๋ ฅ/์์ /์ญ์ ์ฑ๋ฅ | ์ฑ๋ฅ์ด ํฅ์๋จ๐ |
ํจ์์ ์ข ์์ฑ๊ณผ ์ ๊ทํ ๊ณผ์
ํจ์์ ์ข ์์ฑ์ ๋ฐ์ดํฐ(์ข ์์)๋ค์ด ์ด๋ค ๊ธฐ์ค๊ฐ(๊ฒฐ์ ์)์ ์ํด ์ข ์๋๋ ํ์์ ๋งํ๋ค.
EX. ์ด๋ฆ, ์ถ์์ง, ์ฃผ์๋ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ํจ์ ์ข ์์ฑ์ ๊ฐ์ง๊ณ ์๋ค. = ์ด๋ฆ, ์ถ์์ง, ์ฃผ์๋ฅผ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ก ํน์ ํ ์ ์๋ค.
๐๋ฐ์ ๊ทํ์ ์ฑ๋ฅ
๋ฐ์ ๊ทํ๋ฅผ ํตํ ์ฑ๋ฅํฅ์ ์ ๋ต
๋ฐ์ ๊ทํ๋ ์ ๊ทํ๋ ์ํฐํฐ, ์์ฑ, ๊ด๊ณ์ ๋ํด ์์คํ ์ ์ฑ๋ฅํฅ์๊ณผ ์ด์์ ๋จ์ํ๋ฅผ ์ํด ์ค๋ณต, ํตํฉ, ๋ถ๋ฆฌ ๋ฑ์ ์ํํ๋ ๊ธฐ๋ฒ์ด๋ค.
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ๊นจ์ง๋ ๊ฒ์ ๊ฐ์ํ๊ณ ๋ฐ์ ๊ทํ๋ฅผ ํ๋ ์ด์ ๋
๋ฐ์ดํฐ ์กฐํ ์ ์ ์ถ๋ ฅ๋์ด ๋ง์์ ์ฑ๋ฅ์ด ์ ํ๋๊ฑฐ๋,
๊ฒฝ๋ก๊ฐ ๋๋ฌด ๋ฉ์ด ์กฐ์ธ์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋๊ฑฐ๋,
์นผ๋ผ์ ๊ณ์ฐํ์ฌ ์ฝ์ ๋ ์ฑ๋ฅ์ด ์ ํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค.
๋ฐ์ ๊ทํ ์ ์ฉ๋ฐฉ๋ฒ
๋ฐ์ ๊ทํ ๋์์กฐ์ฌ, ๋ค๋ฅธ๋ฐฉ๋ฒ ์ ๋ ๊ฒํ
๋ฐ์ ๊ทํ ๋์์กฐ์ฌ | ๋ค๋ฅธ๋ฐฉ๋ฒ ๊ฒํ |
์๋์ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ ๊ทํ๋ฅผ ๊ณ ๋ คํ์. | ๋ฐ์ดํฐ ์ค๋ณต์ผ๋ก ์ธํ ๋ฌด๊ฒฐ์ฑ์ ๊นจํธ๋ฆฌ์ง ์๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋์ง ๊ณ ๋ คํ์. |
- ์์ฃผ ์ฌ์ฉ๋๋ ํ ์ด๋ธ์ ์ ๊ทผ ํ๋ก์ธ์ค ์๊ฐ ๋ง๊ณ , ์ผ์ ๋ฒ์๋ง ์กฐํํ๋ ๊ฒฝ์ฐ | - ํด๋ฌ์คํฐ๋ง ์ ์ฉ : ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ/์์ /์ญ์ ํ๋ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ์ ํ๋จ. ์กฐํ ์ค์ฌ์ ํ ์ด๋ธ์ด ์๋๋ผ๋ฉด ๊ถ์ฅํ์ง ์๋๋ค. - ์ธ๋ฑ์ค๋ฅผ ์กฐ์ ํ๋ค. |
- ๋๋์ ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ์์ฃผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ | ํํฐ์
๋ ์ ์ฉ : ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ถ์ ์ธ ํ ์ด๋ธ๋ก ๋ถ๋ฆฌํ๋ค. ํํฐ์ ๋ ํค๋ก ์กฐํํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ์ข์์ง๋ค. |
- ๋ง์ ์กฐ์ธ์ด ๊ฑธ๋ ค ๋ฐ์ดํฐ ์กฐํ ์ ์ด๋ ค์์ด ์๋ ๊ฒฝ์ฐ | view๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋๋ก ํ๋ค. |
- ํต๊ณ์ฑ ํ๋ก์ธ์ค์ ์ํด ํต๊ณ์ ๋ณด๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ | ๋ณ๋์ ํต๊ณํ ์ด๋ธ์ ์์ฑํ๋ค. |
๋ฐ์ ๊ทํ ์ ์ฉ
ํ
์ด๋ธ ๋ฐ์ ๊ทํ |
ํ ์ด๋ธ ๋ณํฉ | 1:1 ๊ด๊ณ ํ ์ด๋ธ ๋ณํฉ | ๋ถ๋ฆฌ๋ ํ
์ด๋ธ์ join์ฐ์ฐ์ผ๋ก ์ฑ๋ฅ์ด ์ ํ๋์๋ ๊ฒ์ ๋ณํฉํ์ฌ ์ฑ๋ฅ์ ๋์ธ๋ค. |
1:M ๊ด๊ณ ํ ์ด๋ธ ๋ณํฉ | |||
์ํผ-์๋ธํ์ ํ ์ด๋ธ ๋ณํฉ | |||
ํ ์ด๋ธ ๋ถํ | ์์ง๋ถํ | ํธ๋์ญ์
์ฒ๋ฆฌ ์ ํ ํ์
์ด ์ ํ๋์ด์ผํ๋ค. ์์ฃผ ์ฌ์ฉํ๋ ํน์ ์นผ๋ผ๋ค๋ก ๋ถํ ํ๋ค. ๋์คํฌ I/O๋ฅผ ๋ถ์ฐ์ฒ๋ฆฌํ๊ธฐ ์ํจ์ด๋ค. ex. (์ผ์, ์ฌ๋ฒ, ๋ฐฉ๋ฒ, ์ฝ๋, ๋ฒํธ) -> (์ผ์, ๋ฐฉ๋ฒ), (์ฌ๋ฒ, ์ฝ๋, ๋ฒํธ) |
|
์ํ๋ถํ | ์์ฃผ ์ฌ์ฉํ๋ ํน์ ํํ๋ค๋ก ๋ถํ ํ๋ค. ex. ๋ฐ์ดํฐ๋ค์ ์๋ณ๋ก ๋ถ๋ฆฌ -> ์๋ฉ์ด๋ ฅ 1์, 2์, 3์.... |
||
ํ ์ด๋ธ ์ถ๊ฐ | ์ค๋ณตํ ์ด๋ธ ์ถ๊ฐ | ๋ค๋ฅธ ์ ๋ฌด์ด๊ฑฐ๋ ์๋ฒ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ, ์๊ฒฉ์กฐ์ธ์ ์ ๊ฑฐํ์ฌ ์ฑ๋ฅ์ ๋์ธ๋ค. | |
ํต๊ณํ ์ด๋ธ ์ถ๊ฐ | SUM, AVG๋ฑ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํด ๋ ์ผ๋ก์จ ์ฑ๋ฅ์ ๋์ธ๋ค. | ||
์ด๋ ฅํ ์ด๋ธ ์ถ๊ฐ | ๋ง์คํฐํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ค๋ณตํ๋ค. | ||
๋ถ๋ถํ ์ด๋ธ ์ถ๊ฐ | ์์ฃผ ์ฌ์ฉํ๋ ํน์ ์นผ๋ผ๋ค๋ก ๋ถํ ํ๋ค. ๋์คํฌ I/O๋ฅผ ์ค์ด๊ธฐ ์ํจ์ด๋ค. |
||
์นผ๋ผ ๋ฐ์ ๊ทํ |
์ค๋ณต์นผ๋ผ ์ถ๊ฐ | ์กฐ์ธ์ ๊ฐ์์ํค๊ธฐ ์ํด ์ถ๊ฐํ๋ค. | |
ํ์์นผ๋ผ ์ถ๊ฐ | ๊ณ์ฐ ์ฑ๋ฅ์ ํ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ๊ฐ์ ๊ณ์ฐํ์ฌ ์ ์ฅํ๋ค. | ||
์ด๋ ฅํ ์ด๋ธ ์นผ๋ผ ์ถ๊ฐ | ๋๋์ ํ
์ด๋ธ์์ ๋ถํน์ ํ ๋ ์ง ์กฐํ๋ ์ต๊ทผ ๊ฐ์ ์กฐํํ ๋์ ์ฑ๋ฅ์ ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ธฐ๋ฅ์ฑ์นผ๋ผ(์ต๊ทผ๊ฐ ์ฌ๋ถ, ์์๊ณผ ์ข ๋ฃ์ผ์ ๋ฑ)์ ์ถ๊ฐํ๋ค |
||
PK์ ์ํ ์นผ๋ผ ์ถ๊ฐ | ๋ณตํฉ์๋ฏธ๋ฅผ ๊ฐ๋ PK๋ฅผ ๋จ์ผ ์์ฑ์ ๊ตฌ์ฑํ์ ๋ ๋ฐ์ํ๋ค. PK์ ๊ฐ์ ์ค๋ณตํ์ฌ ์ผ๋ฐ์์ฑ์ผ๋ก ์ถ๊ฐํ๋ค. |
||
์ค์๋์ ์ํ ์นผ๋ผ ์ถ๊ฐ | ์๋ชป ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๊ฐ์ ๋ณต๊ตฌํ๊ธฐ ์ํด ์ด์ ๋ฐ์ดํฐ๋ฅผ ์์์ ์ผ๋ก ์ค๋ณตํ์ฌ ๋ณด๊ดํ๋ค. | ||
๊ด๊ณ ๋ฐ์ ๊ทํ |
์ค๋ณต๊ด๊ณ ์ถ๊ฐ | ๋ง์ ์กฐ์ธ ๋ฐ์ ์ ์ฑ๋ฅ์ ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. |
๐๋๋ ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ
๋๋ ๋ฐ์ดํฐ๋ฐ์์ ๋ฐ๋ฅธ ํ ์ด๋ธ ๋ถํ (Row Chaining, Row Migration)
์ธ๋ฑ์ค์ Tree ๊ตฌ์กฐ๊ฐ ๋๋ฌด ์ปค์ ธ ํจ์จ์ฑ์ด ๋จ์ด์ง๊ฒ๋๊ณ ,
๋ฐ์ดํฐ ์ฒ๋ฆฌ(์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํ) ์ I/O๋ฅผ ๋ง์ด ์ ๋ฐํ๊ฒ๋๋ค.
Row Chaining | Row Migration |
ํ ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ์ด์ ๋ฐ์ดํฐ ๋ธ๋ก 1๊ฐ์ ๋ชจ๋ ์ ์ฅ๋์ง ์๊ณ ๋ค์ ๋ธ๋ก์ผ๋ก ๋์ด๊ฐ ์ ์ฅ๋๋ ํํ์ด๋ค. | ์ ์ฅ๊ณต๊ฐ์ด ๋ถ์กฑํ ์ํฉ์์ 10๋งํผ ์ ์ฅ๋์ด์๋ ๋ฐ์ดํฐ๋ฅผ 15๋งํผ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ ํ๋ฉด ๋ค๋ฅธ ๋ธ๋ก์ ์ฐพ์ ์ ์ฅํด์ผํ๋ ํํ |
๋ ๊ธฐ๋ฒ์ผ๋ก ์ฑ๋ฅ์ ํ๊ฐ ๋ฐ์ํ๋ฉด, ํธ๋์ญ์ ์ ๋ถ์ํ์ฌ ์ ์ ํ๊ฒ 1:1 ๊ด๊ณ๋ก ๋ถ๋ฆฌํ์ฌ ์ฑ๋ฅ์ ํฅ์ํ๋ค. |
PK์ ์ํ ํ ์ด๋ธ ํํฐ์ ๋(Range, List, Hash ํํฐ์ ๋)
Range ํํฐ์ ๋ | ๋ฐ์ดํฐ๊ฐ ๋ ์ง ๋๋ ์ซ์๋ก ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค. SQL๋ฌธ์ ์คํํ ๋ ๋ด๋ถ์ ์ผ๋ก ๊ตฌ๋ถ๋ ํ ์ด๋ธ์์ ์ฒ๋ฆฌํ์ฌ ์ฑ๋ฅ์ด ๊ฐ์ ๋๋ค. ๋ฐ์ดํฐ ๋ณด๊ด์ฃผ๊ธฐ์ ๋ฐ๋ฅธ ํ ์ด๋ธ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๋ค. ex. ๋ /์์ ์ด์ฉํ์ฌ 12๊ฐ์ ํํฐ์ ํ ์ด๋ธ์ ๋ง๋ ๋ค. |
List ํํฐ์ ๋ | ์ผ๋ จ๋ฒํธ ๋ฑ์ ์ฝ๋๊ฐ์ผ๋ก PK๊ฐ ๊ตฌ์ฑ๋์ด์๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค. ex. ์ฌ์ ์์ฝ๋๋ณ๋ก ํํฐ์ ํ ์ด๋ธ์ ๋ง๋ ๋ค. |
Hash ํํฐ์ ๋ | ์ง์ ๋ hash์กฐ๊ฑด์ ๋ฐ๋ผ ํด์ ์๊ณ ๋ฆฌ์ฆ์ด ์ ์ฉ๋๋ค. ์ค๊ณ์๋ ์ด๋ค ํ ์ด๋ธ์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋์ง ์ ์ ์๋ค. |
ํ ์ด๋ธ์ ๋ํ ์ํ/์์ง๋ถํ ์ ์ฐจ
- ํธ๋์ญ์ ์ฒ๋ฆฌํจํด์ ๋ถ์ํ๋ค.
- ์นผ๋ผ๋จ์์ ์ฒ๋ฆฌ๊ฐ ๋ฐ์๋๋๊ฑด์ง, ๋ก์ฐ๋จ์์ ์ฒ๋ฆฌ๊ฐ ๋ฐ์๋๋๊ฑด์ง ๋ถ์ํ๋ค.
๐๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ์ฑ๋ฅ
์ํผ/์๋ธํ์ ๋ชจ๋ธ(=Extended ER๋ชจ๋ธ)์ ์ฑ๋ฅ๊ณ ๋ ค๋ฐฉ๋ฒ
์ํผ/์๋ธํ์ ๋ชจ๋ธ์ ๊ณตํต๋ถ๋ถ์ ์ํผํ์ ์ผ๋ก ๋ชจ๋ธ๋งํ๊ณ , ๋ด์ฉ์ ์์๋ฐ์ ์๋ธํ์ ์ํฐํฐ๋ฅผ ๋ง๋ค์ด
์ ๋ฌด์ ๋ด์ฉ์ ์ ํํ๊ฒ ํํํ๋ฉด์ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋ณํ ์ ์ ํ์ ํญ์ด ๋๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
์ํผ/์๋ธํ์ ์ ๋ณํ ๊ธฐ์ค์ ๋ฐ์ดํฐ ์๊ณผ ํธ๋์ญ์ ์ ์ ํ์ด๋ค.
One to One Type 1:1 ํ์ |
Plus Type ์ํผ+์๋ธ ํ์ |
Single Type All in One ํ์ |
|
์ค๋ช | ์ํผํ์
๊ณผ ์๋ธํ์
๊ฐ๊ฐ ํธ๋์ญ์ ์ด ๋ฐ์ํ๋ฉด ๊ฐ๋ณ ํ ์ด๋ธ๋ก ๊ตฌ์ฑํ์ฌ 1:1 ๊ด๊ณ๋ฅผ ๊ฐ๋๋ก ํ๋ค. ex. ์ํผํ์ ์ ์ด๋ฆ์ ๋ฃ์ผ๋ฉด, ์๋ธํ์ ์ผ๋ก ์ธ๋ถ์ ๋ณด๊ฐ ๋์ค๋ ๊ฒฝ์ฐ |
์ํผํ์
๊ณผ ์๋ธํ์
ํจ๊ป ํธ๋์ญ์ ์ด ๋ฐ์ํ๋ฉด ์ํผํ์ ์ PK์ ๊ฐ ์๋ธํ์ ์ ์์ฑ์ ๋ฌถ์ด N๊ฐ์ ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ค. ex. ์ํผํ์ ๊ณผ ์๋ธํ์ ์ด 1๊ฐ ํ ์ด๋ธ๋ก ํตํฉ๋์ด์๊ณ A์นผ๋ผ๋ง ๊ฐ๋ณ์ ์ผ๋ก ๋ง์ด ์ฒ๋ฆฌํ๋๋ฐ B, C ๋ฑ์ ์นผ๋ผ๋ด์ฉ๊น์ง ํฌํจ๋์ด์์ด์ ํ์์๋ ์ฒ๋ฆฌ๊ฐ ๋ฐ์ํ๊ฒ๋๋ ๊ฒฝ์ฐ. (PK๋น์ฌ์๋ฒํธ, ์ดํด๊ด๊ณ์ธ, ๋๋ฆฌ์ธ, ๋งค์์ธ) -> (FK๋น์ฌ์๋ฒํธ, ์ดํด๊ด๊ณ์ธ) -> (FK๋น์ฌ์๋ฒํธ, ๋๋ฆฌ์ธ) -> (FK๋น์ฌ์๋ฒํธ, ๋งค์์ธ) |
์ผ์ชฝ ์์ ์์ ๋น์ฌ์๋ฒํธ, ์ดํด๊ด๊ณ์ธ,..์ ์์ฑ์ ํญ์ ํตํฉ์ฒ๋ฆฌํ๊ฑฐ๋ ์ํผ+์๋ธํ์ ์ ์ ํํ ์ง์ ํ์ง ๋ชปํ๋ ์ํฉ์์๋ ํ๋์ ํ ์ด๋ธ๋ก ๊ตฌ์ฑํ๋ค. |
ํ์ฅ์ฑ | ์ข์ | ๋ณดํต | ๋์จ |
์กฐ์ธ์ฑ๋ฅ | ๋์จ | ๋์จ | ์ข์ |
I/O๋ ์ฑ๋ฅ | ์ข์ | ์ข์ | ๋์จ |
๊ด๋ฆฌ์ฉ์ด์ฑ | ๋์จ | ๋์จ | ์ข์(1๊ฐ) |
๐ ์ํผํ์
๊ณผ ์๋ธํ์
๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฌผ๋ฆฌ์ ์ธ ํ
์ด๋ธ ํ์์ผ๋ก ๋ณํํ ๋ ์ค๋ช
์ผ๋ก ๋ถ์ ์ ํ ๊ฒ์?
1) ํธ๋์ญ์
์ ํญ์ ์ ์ฒด๋ฅผ ๋์์ผ๋ก ์ผ๊ด ์ฒ๋ฆฌํ๋๋ฐ ํ
์ด๋ธ์ ์๋ธํ์
๋ณ๋ก ๊ฐ๋ณ ์ ์งํ๋ ๊ฒ์ผ๋ก ๋ณํํ๋ฉด UNION ์ฐ์ฐ์ ์ํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
2) ํธ๋์ญ์
์ ํญ์ ์๋ธํ์
๊ฐ๋ณ๋ก ์ฒ๋ฆฌํ๋๋ฐ ํ
์ด๋ธ์ ํ๋๋ก ํตํฉํ์ฌ ๋ณํํ๋ฉด ๋ถํ์ํ๊ฒ ๋ง์ ์์ ๋ฐ์ดํฐ๊ฐ ์ง์ ๋์ด์์ด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
3) ํธ๋์ญ์
์ ํญ์ ์ํผ+์๋ธํ์
์ ํจ๊ผ ์ฒ๋ฆฌํ๋๋ฐ ๊ฐ๋ณ๋ก ์ ์งํ๋ฉด ์กฐ์ธ์ ์ํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
4) ํธ๋์ญ์
์ ํญ์์ ์ฒด๋ฅผํตํฉํ์ฌ ๋ถ์ ์ฒ๋ฆฌํ๋๋ฐ ํ๋๋ก ํตํฉ๋์ด ์์ผ๋ฉด ๋ฐ์ดํฐ ์ง์ ์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค. //์กฐ์ธ์ด ๊ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋ ์ฐ์ํด์ง ์ ์๋ค.
์ธ๋ฑ์ค ํน์ฑ์ ๊ณ ๋ คํ PK/FK ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ํฅ์
PK/FK๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ ์ฑ๋ฅ์ ์ธก๋ฉด์์๋ ์ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
ํ ์ด๋ธ์ ๋ฐ์๋๋ ํธ๋์ญ์ ์ ์กฐํ ํจํด์ ๋ถ์ํ์ฌ PK/FK ์นผ๋ผ์ ์์๋ฅผ ์กฐ์ ํด์ผํ๋ค.
Primary Key | Foreign Key |
PK๋ ํ
์ด๋ธ์ ์ธ๋ฑ์ค(Unique Index)๋ฅผ ์๋ ์์ฑํ๋ค. ์์ชฝ์ ์์นํ ์์ฑ์ ๊ฐ์ด ๋น๊ต์(=, between, <> ...)๋ก ์์ด์ผ ์ข์ ํจ์จ์ ๋ํ๋ผ ์ ์๋ค. ์ธ๋ฑ์ค ํน์ง์ ๊ณ ๋ คํ์ง ์๊ณ PK๋ฅผ ์ง์ ํ๋ฉด, ํจ์จ์ ์ด์ง ์์ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋์ด FULL TABLE SCAN์ด ์ ๋ฐ๋๋ค. => ์ฑ๋ฅ์ ํ |
FK๋ ์กฐ์ธ์ผ๋ก ์ด์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์๊ธฐ๋๋ฌธ์ FK์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ์ฑ๋ฅ์ด ์ข์์ง๋ค. FK์ธ๋ฑ์ค๊ฐ ๋ฏธ์์ฑ๋๋ฉด FULL TABLE SCAN์ด ๋ฐ์ํ์ฌ ์ฑ๋ฅ์ด ์ ํ๋๋ค. ํ์ง๋ง, FK์ธ๋ฑ์ค๊ฐ ๊ฑฐ์ ํ์ฉ๋์ง ์๋๋ค๋ฉด FK์ธ๋ฑ์ค๋ฅผ ์ง์ฐ๋ ๊ฒ๋ ์ ์ ํ๋ค. |
๐๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค :
์ฌ๋ฌ ๊ณณ์ผ๋ก ๋ถ์ฐ๋์ด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ๋์ ๊ฐ์ ์์คํ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ๋ถ๋ฆฌ๋์ด์์ง๋ง, ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ๋์ผํ ์์คํ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํตํฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๊ณตํ ์ ์๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
๋ถ์ฐ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๋ช ์ฑ
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋ 6๊ฐ์ง ํฌ๋ช ์ฑ์ ๋ง์กฑํด์ผํ๋ค.
๋ถํ | ํ๋์ ๋ ผ๋ฆฌ์ ๋ฆด๋ ์ด์ ์ด ์ฌ๋ฌ๊ฐ๋ก ๋ถํ ๋์ด ์๋ค. |
์์น | ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ์ ์ ์ฅ์ฅ์ ๋ช
์๊ฐ ๋ถํ์ํ๋ค. System Catalog์ ์์น์ ๋ณด๊ฐ ์ ์ฅ๋์ด์ผํ๋ค. |
์ง์ญ์ฌ์ | ์ง์ญDBMS์ ๋ฌผ๋ฆฌ์ DB ์ฌ์ด์ MAPPING์ ๋ณด์ฅํ๋ค. ๊ฐ ์ง์ญ์์คํ ์ด๋ฆ๊ณผ ๋ฌด๊ดํ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์๋ค. |
์ค๋ณต | DB๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ์์คํ ์ ์ค๋ณต๋์ด์๋์ง ์ ํ์ ์๋ค. |
์ฅ์ | DBMS ๋๋ ์ปดํจํฐ์ ์ฅ์ ์ ๋ฌด๊ดํ๊ฒ ํธ๋์ญ์ ์ ์์์ฑ์ด ๋ณด์ฅ๋์ด์ผํ๋ค. |
๋ณํ | ๋ค์ ํธ๋์ญ์ ์ ๋์์ ์ํํด๋ ๊ฒฐ๊ณผ๋ ์ผ๊ด์ฑ์์ด์ผ ํ๋ค. |
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ๋จ์
์ฅ์ | ๋จ์ |
- ์ ๋ขฐ์ฑ, ๊ฐ์ฉ์ฑ, ํจ์ฉ์ฑ, ์ต๋์ฑ์ด ๋๋ค - ๋ณ๋ ฌ์ฒ๋ฆฌ ์ํํ์ฌ ๋น ๋ฅธ ์๋ต ๊ฐ๋ฅํ๋ค - ์์คํ ์ฉ๋ ํ์ฅ์ด ์ฝ๋ค - ๊ฐ ์ง์ญ ์ฌ์ฉ์๋ค์ ์๊ตฌ ์์ฉ์ด ๋น ๋ฅด๋ค |
- ์ค๊ณ์ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ๋ค, ๋น์ฉ์ด ๋๋ค - ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ํ ์ํ์ด ์๋ค - ๋ณด์, ๊ด๋ฆฌ, ํต์ ์ด๋ ต๊ณ ์ค๋ฅ ์ ์ฌ์ฑ์ด ํฌ๋ค - ์๋ต์๋๊ฐ ๋ถ๊ท์นํ๋ค. |
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฉ ๊ธฐ๋ฒ
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๊ธฐํ๋ ์ค์๊ฐ ์ฒ๋ฆฌ๋ณด๋ค๋ ์ผ๊ฐ ๋ฐฐ์น์์ ์ผ๋ก ๋ณต์ ๋๋ค.
ํ ์ด๋ธ ์์น ๋ถ์ฐ | ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ ๋ณํ์ง ์๋๋ค. ํ ์ด๋ธ์ด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ณต๋์ด ์์ฑ๋์ง ์๋๋ค. ํ ์ด๋ธ์ ์์น๋ฅผ ๋ค๋ฅด๊ฒ ์์น์ํจ๋ค. |
ex. ์์ฌํ๋ชฉ์ ๋ณธ์ฌDB์, ์์ฐ์ ํ์ ์ง์ฌDB์ ์์น | |
ํ
์ด๋ธ ๋ถํ ๋ถ์ฐ |
์ํ๋ถํ | ํ ์ด๋ธ์ ํน์ ํ์ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ์ด ๋ถ์ฐํ๋ค. | ex. ์ง์ฌ๋ณ๋ก ์ฌ์ฉํ๋ ํ์ด ๋ค๋ฅผ ๋ ์ด์ฉํ๋ค. |
์์ง๋ถํ | ํ
์ด๋ธ์ ํน์ ์นผ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ์ด ๋ถ์ฐํ๋ค. ํ ์ด๋ธ์ ๋์ผํ PK๊ฐ ์์ด์ผ ํ๋ค. |
ex. ์ฌ๊ณ ๋์ ๊ฐ ์ง์ฌ์์ ๊ด๋ฆฌํ๊ณ , ๋จ๊ฐ๋ ๋ณธ์ฌ์์ ๊ด๋ฆฌ | |
ํ
์ด๋ธ ๋ณต์ ๋ถ์ฐ (๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค) |
๋ถ๋ถ๋ณต์ | ๋ง์คํฐ ํ ์ด๋ธ์ ์ผ๋ถ๋ง ๋ค๋ฅธ์ง์ญ์ด๋ ์๋ฒ์ ๋์ผํ๊ฒ ์์ฑํ์ฌ ๊ด๋ฆฌํ๋ค. | ex. ์ง์ฌ์ ๋ฐ์ดํฐ ์ค ๊ณ ๊ฐ์ ๋ณด๋ง ๋ณธ์ฌ์ ๋ณต์ |
๊ด์ญ๋ณต์ | ๋ง์คํฐ ํ ์ด๋ธ์ ์ ๋ถ๋ฅผ ๋ค๋ฅธ์ง์ญ์ด๋ ์๋ฒ์ ๋์ผํ๊ฒ ์์ฑํ์ฌ ๊ด๋ฆฌํ๋ค. | ex. ์ง์ฌ์ ๋ฐ์ดํฐ ์ ๋ถ๋ฅผ ๋ณธ์ฌ์ ๋ณต์ | |
ํ
์ด๋ธ ์์ฝ ๋ถ์ฐ |
๋ถ์์์ฝ | ์ง์ญ๊ฐ, ์๋ฒ๊ฐ ๋ฐ์ดํฐ๊ฐ ๋น์ทํ์ง๋ง ์๋ก ๋ค๋ฅธ ์ ํ์ผ๋ก ์กด์ฌํ๋ค. ์ง์ญ๋ณ๋ก ์กด์ฌํ๋ ๋์ผํ ์ ๋ณด๋ฅผ ๋ณธ์ฌ์์ ํตํฉํ๋ค. |
ex. ๊ฐ ์ง์ฌ๋ณ๋ก ํ๋งค ์ ํ์ด ๊ฐ๊ณ , ํ๋งค์ค์ ์ ๋ณธ์ฌ์์ ํตํฉํ๋ค. |
ํตํฉ์์ฝ | ์ง์ญ๊ฐ, ์๋ฒ๊ฐ ๋ฐ์ดํฐ๊ฐ ๋น์ทํ์ง๋ง ์๋ก ๋ค๋ฅธ ์ ํ์ผ๋ก ์กด์ฌํ๋ค. ์ง์ญ๋ณ๋ก ์กด์ฌํ๋ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ๋ณธ์ฌ์์ ํตํฉํ๋ค. |
ex. ๊ฐ ์ง์ฌ๋ณ๋ก ํ๋งค ์ ํ์ด ๋ค๋ฅด๊ณ , ํ๋งค์ค์ ์ ๋ณธ์ฌ์์ ํตํฉํ๋ค. |
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ๊ณ ๋ คํด์ผํ๋ ๊ฒฝ์ฐ
- ์ฑ๋ฅ์ด ์ค์ํ ์ฌ์ดํธ์ด๋ค.
- ๊ณตํต์ฝ๋, ๊ธฐ์ค์ ๋ณด, ๋ง์คํฐ ๋ฐ์ดํฐ ๋ฑ์ ๋ํด ๋ถ์ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋ฉด ์ฑ๋ฅ์ด ์ข์์ง๋ค.
- ์ค์๊ฐ ๋๊ธฐํ๋ฅผ ์๊ตฌํ์ง ์๋๋ค.
- ํน์ ์๋ฒ์ ๋ถํ๊ฐ ์ง์ค๋๋ค.
- ๋ฐฑ์ ์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ๋ค.
#SQLD #์ฑ๋ฅ๋ฐ์ดํฐ๋ชจ๋ธ๋ง #์ ๊ทํ #ํจ์์ข ์์ฑ #๋ฐ์ ๊ทํ #RowChainning #RowMigration #Rangeํํฐ์ ๋ #Listํํฐ์ ๋ #Hashํํฐ์ ๋ #์ํผ/์๋ธํ์ ๋ชจ๋ธ #OnetoOneType #PlusType #SingleType #PK/FK์ธ๋ฑ์คํน์ฑ #๋ถ์ฐ๋ฐ์ดํฐ๋ฒ ์ด์ค