2024. 1. 2. 16:27ใ๋ฉด์ ์ค๋น/๋ฉด์ ์คํฐ๋
2024.01.03 ์ผ์๋ก ์งํ ์์ ์ธ ๋ฉด์ ์คํฐ๋ ์ค๋น์ ์ผํ์ผ๋ก, ๋ฐฐ์ ๋ ํํธ์ธ JOIN์ ๋ํด ์ ๋ฆฌ ํ์ ์ด๋ฅผ ํ ๋๋ก ๋์ถํด๋ณผ๋งํ ์ง๋ฌธ๋ค์ ์์ฑํ๊ฒ ์ต๋๋ค.
์กฐ์ธ์ด๋?
์กฐ์ธ์ด๋ RDB์์ ์ฌ๋ฌ ํ ์ด๋ธ์ ๊ฑธ์ณ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ค์ ํจ๊ป ์กฐํํ๊ธฐ ์ํด ํ ์ด๋ธ์ ๊ฒฐํฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์กฐ์ธ ์ ๋จผ์ ์ ๊ทผํ๊ฒ ๋๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ์ด๋ผ๊ณ ํ๊ณ , ๋๋ผ์ด๋น์ ํน์ ์นผ๋ผ ๊ฐ์ ์ด์ฉํ์ฌ ๋ค์ ์กฐํ๋๋ ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ด๋ผ๊ณ ํ๋ค.
์กฐ์ธ์ ์ข ๋ฅ์๋ INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN ๋ฑ์ด ์๋ค.
์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ
์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ์๋ NL ์กฐ์ธ(Nested Loop), ์ํธ ๋จธ์ง ์กฐ์ธ(Sort merge), ํด์ ์กฐ์ธ(Hash) ๋ฑ์ด ์๋ค.
NL ์กฐ์ธ
NL ์กฐ์ธ์ด๋ ๋๋ผ์ด๋น ํ ์ด๋ธ(์์ฐํฐ ํ ์ด๋ธ)๊ณผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ(์ด๋ ํ ์ด๋ธ)์ ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ํํ๋ก ์กฐ์ธ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋๋ผ์ด๋น ํ ์ด๋ธ์์ ์ฟผ๋ฆฌ์ ํ๊ฒ์ด ๋๋ ๋ ์ฝ๋๋ฅผ ์ฐพ์ ํ ํด๋น ๋ ์ฝ๋์ ์กฐ์ธ ๊ธฐ์ค ์นผ๋ผ ๊ฐ์ ํตํด ๊ณง๋ฐ๋ก ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ์ ๊ทผํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. ์ด ๋ ๋๋ผ์ด๋น ํ ์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ ๋ํ ์ ๊ทผ ๋ชจ๋ ์ธ๋ฑ์ค์ ํ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, NL ์กฐ์ธ ํน์ฑ ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ ์ชฝ ์กฐ์ธ ์นผ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด ๋๋ผ์ด๋น ํ ์ด๋ธ์์ ๋ฐ๊ฒฌ๋๋ ํ๊ฒ ๋ ์ฝ๋ ํ๊ฑด๋น ํ ์ด๋ธ ํ์ค์บ์ด ๋งค๋ฒ ๋ฐ์ํ์ฌ ์ฑ๋ฅ์ด ๋ชน์ ์ ํ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ NL ์กฐ์ธ์ OLTP ํ๊ฒฝ์์ ๊ฐ์ฅ ์ค์ํ ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๊ฐ ๋ฐ๋๋ฐ, ๊ทธ ์ด์ ๋ OLTP ํ๊ฒฝ์ ํน์ฑ ์ ์๋ ๋ฐ์ดํฐ ์ ๊ทผ์ด ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ ๋๋ถ๋ถ์ ์ฟผ๋ฆฌ๊ฐ ๋ถ๋ถ ๋ฒ์ ์ฒ๋ฆฌ ๋ฐฉ์์ผ๋ก ์ต์ ํ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Sort merge ์กฐ์ธ
๋จธ์ง ์กฐ์ธ์ ๋ ํ ์ด๋ธ์ ๋ชจ๋ ์กฐ์ธ ๊ธฐ์ค ์นผ๋ผ์ผ๋ก ์ ๋ ฌํ๊ณ (ํน์ ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ) ๋ ์ ๋ ฌ๋ ํ ์ด๋ธ๋ค์ ์ฝ์ด๊ฐ๋ฉด์ ๋ ์ฝ๋๋ฅผ ๊ฒฐํฉํ๋ ์กฐ์ธ์ ์๋ฏธํ๋ค.
๊ฒฐ๊ตญ ๋ ํ ์ด๋ธ์ ๋ํด ์ ๋ ฌ์ ์ํํด์ผํ๊ธฐ ๋๋ฌธ์ ์กฐ์ธ ์นผ๋ผ์ ๋ํ ์ธ๋ฑ์ค๊ฐ ์ด๋ฏธ ์กด์ฌํ์ฌ ๋ฐ๋ก ์ ๋ ฌ์ ์ํํ ํ์๊ฐ ์๋ค๋ฉด ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค. ๋ค๋ง ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ, ์ ์ชฝ ํ ์ด๋ธ์ ๋ํด ๋ชจ๋ ์ ๋ ฌ์ ์ํํด์ผ ํ๋ค๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์กด์ฌํ๋ค.
Hash ์กฐ์ธ
ํด์ ์กฐ์ธ์ ๋ ํ ์ด๋ธ ์ค ํ ์ชฝ ํ ์ด๋ธ(๋ณดํต ๋ ์์ ํ ์ด๋ธ์ ์ด์ฉ)์ ์ด์ฉํ์ฌ ํค ๊ฐ์ ์กฐ์ธ ์นผ๋ผ ๊ฐ์ผ๋ก, ๋ฐธ๋ฅ ๊ฐ์ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋๋ ๋๋จธ์ง ์นผ๋ผ ๊ฐ์ผ๋ก ํ๋ ํด์ ํ ์ด๋ธ์ ์์ฑํ๊ณ , ์ดํ ๋๋จธ์ง ํ ์ด๋ธ์ ์ฝ์ผ๋ฉฐ ํด์ ํ ์ด๋ธ์ ํตํด ๋ ์ฝ๋๋ฅผ ํฉ์น๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ ์กฐ์ธ์ ์๋ฏธํ๋ค.
์กฐ์ธ์ ์ํ ์ฌ์ ์์ ์ด ์กด์ฌํ๋ ์์ ํ ์ด๋ธ์ ์ด์ฉํ์ฌ O(1)๋ก ์ ๊ทผ๊ฐ๋ฅํ ํด์ ํ ์ด๋ธ์ ์์ฑํ๋ฏ๋ก ๋๊ท๋ชจ ๋ฐ์ดํฐ JOIN ์ NL ์กฐ์ธ๋ณด๋ค ์ฑ๋ฅ ์ ์ฐ์์ ์๊ณ , ๋ ์ฌ์ ์์ ์ ์์ชฝ ํ ์ด๋ธ์ ๋ํ ์ ๋ ฌ์ด ์๊ตฌ๋๋ ๋จธ์ง ์กฐ์ธ๋ณด๋ค๋ ๋ ๋น ๋ฅด๊ฒ ์๋ํ๋ค.
๋ฐ๋ผ์ NL ์กฐ์ธ๊ณผ Sort merge ์กฐ์ธ์ ๋ฌธ์ ์ ๋ค์ ํด๊ฒฐํ ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณผ ์ ์๊ณ , ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ฃผ๋ก ํ์ฉ๋๋ ๋ฐฉ์์ด๋ค.
๋ฉด์ ์์ ์ง๋ฌธ
1. ์กฐ์ธ์ด ๋ฌด์์ธ์ง ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ณ , ์ ์กฐ์ธ์ด ํ์ํ์ง ์ค๋ช ํด์ฃผ์ธ์.
2. ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ์๋ ๋ฌด์์ด ์๋์ง ์ด์ผ๊ธฐํด์ฃผ์ธ์.
2-1. ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค OLTP ํ๊ฒฝ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์กฐ์ธ ๋ฐฉ์๊ณผ ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋์ง OLTP์ ํน์ฑ์ ์ฐ๊ด์ง์ด ์ค๋ช ํด์ฃผ์ธ์.
3. ๋๋ผ์ด๋น ํ ์ด๋ธ๊ณผ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ด ์กด์ฌํ ๋ ๊ฒฐ๊ณผ ์งํฉ์ด ์์ ํ ์ด๋ธ์ ๋ ์ค ์ด๋ค ํ ์ด๋ธ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ด ์ข์์ง ์ด์ผ๊ธฐ ํด์ฃผ์ธ์.
3-1. ๋ง์ฝ ์์ ์ชฝ ํ ์ด๋ธ์์ ํ์ธํด์ผํ๋ ๋ ์ฝ๋ ์๊ฐ n๊ฐ์ด๊ณ , ํฐ ์ชฝ ํ ์ด๋ธ์์ ํ์ธํด์ผํ๋ ๋ ์ฝ๋ ์๊ฐ m๊ฐ๋ผ๋ฉด ๊ฒฐ๊ตญ ํ์ธํ๋ ํ์๋ n x m์ด ๋ ๊ฒ ๊ฐ์๋ฐ ์์ ์ชฝ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ๋ก ์ฌ์ฉํ๋๊ฒ ์ด์งธ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋์ง ์ค๋ช ํด์ฃผ์ธ์.
4. ํ ์ด๋ธ ๊ฐ ์กฐ์ธ์ ํตํ๋ฉด ์ฑ๋ฅ์ด ์ ํ๋๋ค๊ณ ๊ด์ต์ ์ผ๋ก ์ด์ผ๊ธฐํฉ๋๋ค. ํด๋น ์์ ์ด ํ๋นํ์ง ๋ต๋ณํ๊ณ , ๊ทธ์ ๋ํ ๋ช ํํ ๊ทผ๊ฑฐ๋ฅผ ๋ค์ด์ฃผ์ธ์.
'๋ฉด์ ์ค๋น > ๋ฉด์ ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฉด์ ๋๋น ์์ ์ง๋ฌธ (Network) (0) | 2024.01.11 |
---|---|
๋ฉด์ ๋๋น ์์ ์ง๋ฌธ (Database & ์ด์์ฒด์ ์ผ๋ถ) (0) | 2024.01.11 |
์ด์ ํ์, ์ ๊ทํ - ๋ฉด์ ๋๋น (0) | 2024.01.01 |
๋ฉด์ ๋๋น ์ง๋ฌธ ์์ (์ด์์ฒด์ ) (0) | 2023.12.27 |