B-Tree๋?
๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ง๋์ด ์๋ ํธ๋ฆฌ๋ก ์ผ๋ฐ์ ์ธ ์ด์ง ํธ๋ฆฌ์ ๋น์ทํ์ง๋ง ํ ๋ ธ๋ ๋น ์์ ๋ ธ๋๊ฐ 2๊ฐ ์ด์ ๊ฐ๋ฅํ ํธ๋ฆฌ. ์ด๋ค ๊ฐ์ ๋ํด์๋ ๊ฐ์ ์๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ ๊ฒ์ด ์ฅ์ .
ํธ๋ฆฌ๋? ๊ทธ๋ํ์ ์ผ์ข ์ผ๋ก, ํ ๋ ธ๋์์ ์์ํด์ ๋ค๋ฅธ ์ ์ ๋ค์ ์ํํ์ฌ ์๊ธฐ ์์ ์๊ฒ ๋์์ค๋ ์ํ์ด ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ
B tree
์ฌ๊ฐํ์ผ๋ก ํ์๋ ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ ธ๋(node)
๊ฐ์ฅ ์๋จ์ ๋ ธ๋๋ฅผ ๋ฃจํธ ๋ ธ๋(root node)
์ค๊ฐ ๋ ธ๋๋ค์ ๋ธ๋์น ๋ ธ๋ (branch node)
๊ฐ์ฅ ์๋ ๋ ธ๋ ๋ฆฌํ ๋ ธ๋(leaf node)
ํน์ง
- ๊ท ์ผ์ฑ : ์ด๋ค ๊ฐ์ ๋ํด์๋ ๊ฐ์ ์๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
(ํธ๋ฆฌ ๋์ด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ, ์ฝ๊ฐ์ ์ฐจ์ด๋ ์์ง๋ง O(logN)) - ๊ท ํํธ๋ฆฌ : ๋ฃจํธ๋ก ๋ถํฐ ๋ฆฌํ๊น์ง์ ๊ฑฐ๋ฆฌ๊ฐ ์ผ์ ํ ํธ๋ฆฌ ๊ตฌ์กฐ. ์ฑ๋ฅ์ด ์์ ํ ๋์ด ์์.
(์ฒ์ ์์ฑ ๋น์๋ ๊ท ํ ํธ๋ฆฌ์ด์ง๋ง ๊ฐฑ์ ์ด ๋ฐ๋ณต๋๋ฉด ์์ํ ๊ท ํ์ด ๊นจ์ง๊ณ , ์ฑ๋ฅ๋ ์ฝํ ๋จ. - ํญ์ ์ ๋ ฌ๋ ์ํ๋ก ํน์ ๊ฐ๋ณด๋ค ํฌ๊ณ ์์ ๋ถ๋ฑํธ ์ฐ์ฐ์ ๋ฌธ์ ๊ฐ ์๋ค.
๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์ฌ์ด์ ๋ฒ์๋ฅผ ์ด์ฉํ์ฌ ์์ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
๋
ธ๋ ๋ด ๋ฐ์ดํฐ๋ค์ ํญ์ ์ ๋ ฌ๋ ์ํ. ๊ฐ ๋
ธ๋๋ ์ฌ๋ฌ ๊ฐ์ key๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ๊ฐ key์ ๋์ํ๋ data๋ ๊ฐ์ง๊ณ ์๋ค.
๋ฐ์ดํฐ ์ฝ์
- ์ถ๊ฐ๋ ํญ์ Leaf Node์ ํ๋ค.
Node๊ฐ ๋์น๋ฉด ๊ฐ์ด๋ฐ Key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ข์ฐKey๋ค์ ๋ถํ ํ๊ณ ๊ฐ์ด๋ฐ Key๋ ์น์ง
๐ค๋ ธ๋๊ฐ ๋์น๋ค?
๐M์ฐจ b-tree์์ M์ ์ต๋๋ก ๊ฐ์ง์์๋ ๋ ธ๋์ ์, Mํธ๋ฆฌ์์ ๊ฐ ๋ ธ๋๊ฐ ๊ฐ์ง์ ์๋ ์ต๋ ํค์ ์ = M - 1 ์ฆ, M -1 ๋ณด๋ค ํฌ๋ฉด ๋ ธ๋๊ฐ ๋์น๋ค๊ณ ๋ณผ ์ ์๋ค.
๐ค๐คex) 3์ฐจ bTree์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ค๋ฉด?๐ 3์ฐจ btree์์ 3์ ์ต๋๋ก ๊ฐ์ค์ ์๋ ๋ ธ๋์ ์. ๊ฐ ๋ ธ๋๊ฐ ๊ฐ์ง์ ์๋ ์ต๋ ํค์ ์๋ : 3-1์ธ 2๊ฐ ์ต๋ ํค๊ฐ์ด๋ค. ์ฆ, ๋ ธ๋๊ฐ 2๊ฐ๋ณด๋ค ํฌ๋ฉด ๋ ธ๋๊ฐ ๋์ณค๋ค๋ผ๊ณ ํ ์ ์๋ค.
๋ฐ์ดํฐ ์ญ์
โป ์ญ์ ๋ ํญ์ Leaf Node์์ ๋ฐ์
โป ์ญ์ ํ ์ต์ key ์ ๋ณด๋ค ์ ์ด์ก๋ค๋ฉด ์ฌ์กฐ์
1. key ์๊ฐ ์ฌ์ ์๋ ํ์ ์ ์ง์ ๋ฐ๋๋ค
2. 1๋ฒ ๋ถ๊ฐ๋ฅํ๋ฉด ๋ถ๋ชจ์ ์ง์์ ๋ฐ๊ณ ํ์ ์ ํฉ์น๋ค.
3. 2๋ฒ ํ ๋ถ๋ชจ์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๊ฑฐ๊ธฐ์ ๋ค์ ์ฌ์กฐ์
Internal ๋ ธ๋ ๋ฐ์ดํฐ ์ญ์
โป leaf๋
ธ๋์์ ์ญ์ ํ๊ณ ํ์ํ๋ฉด ์ฌ์กฐ์
์ธํฐ๋ ๋
ธ๋์์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด leaf๋
ธ๋์ ์๋ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋ฐ๊พผํ ์ญ์
๐ค์ด๋ค ๋ฐ์ดํฐ์ ๋ฐ๊ฟ๊ฑด์ง?
- ์ญ์ ํ ๋ฐ์ดํฐ์ ์ ์์๋ ํ์์์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
์ ์์
: ๋๋ณด๋ค ์์ ๋ฐ์ดํฐ๋ค ์ค ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐํ์์
: ๋๋ณด๋ค ํฐ ๋ฐ์ดํฐ๋ค ์ค ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ
B+Tree๋?
B Tree๋ฅผ ํ์ฅํ ๊ฒ์ผ๋ก Leaf Node์๋ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ๋๋จธ์ง ๋ ธ๋๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ํ Key๋ง์ ๊ฐ๋๋ค.
ํน์ง
- ์ค์ง ๋ฆฌํ๋ ธ๋์๋ง ๋ฐ์ดํฐ ์ ์ฅ ๊ฐ๋ฅ
- ๋ฆฌํ ๋ ธ๋๋ฅผ ์ ์ธํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ด์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํ๋ณดํจ์ผ๋ก์จ ๋ ๋ง์ key๋ค์ ์์ฉํ ์ ์๋ค. ํ๋์ ๋ ธ๋์ ๋ ๋ง์ key๋ค์ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ์ ๋์ด๊ฐ ๋ฎ์์ง๋ค.
- ์ค๋ณต๋ ํค๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋ฆฌํ ๋ ธ๋๋ผ๋ฆฌ ๋งํฌ๋๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.
- ํ ์ค์บ ์, B+tree๋ ๋ฆฌํ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ ์ ํํ์๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ B tree์ ๋นํด ๋น ๋ฅด๋ค.
๋ฐ์ดํฐ ์ฝ์
- key์ ์๊ฐ ์ต๋๋ณด๋ค ์ ์ leaf node์ ์ฝ์
ํ๋ ๊ฒฝ์ฐ
- ๋ ธ๋์ ๊ฐ์ฅ ์์ด ์๋ ๊ณณ์ ์ฝ์ ๋๋ ๊ฒฝ์ฐ ๋จ์ํ ์ฝ์ .
- ์์ ์ฝ์ ๋๋ ๊ฒฝ์ฐ ํด๋น ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ถ๋ชจ ๋ ธ๋์ ํฌ์ธํฐ์ ์ค๋ฅธ์ชฝ์ ์์นํ key๋ก ๋ฐ๊ฟ์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฆฌํ๋ ธ๋๋ผ๋ฆฌ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ด์ด์ค์ผ ํ๋ฏ๋ก ์ฝ์ ๋ key์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ๋ค.
- key์ ์๊ฐ ์ต๋์ธ leaf node์ ์ฝ์
ํ๋ ๊ฒฝ์ฐ
- ey์ ์๊ฐ ์ต๋์ด๋ฏ๋ก ๋ถํ ์ ํด์ผํ๋ค. ์ค๊ฐ node์์ ๋ถํ ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ๋ B tree์ ๋์ผํ๋ค.
- ๋ฆฌํ๋
ธ๋์์ ๋ถํ ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ ์ค๊ฐ key๋ฅผ ๋ถ๋ชจ node๋ก ์ฌ๋ ค์ฃผ๋๋ฐ ์ด๋, ์ค๋ฅธ์ชฝ node์ ์ค๊ฐ key๋ฅผ ๋ถ์ฌ ๋ถํ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถํ ๋ ๋ ๋
ธ๋๋ฅผ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ๋ค.
๋ฐ์ดํฐ ์ญ์
- ์ญ์ ํ key๊ฐ ๋ฆฌํ๋
ธ๋์ ๊ฐ์ฅ ์์ ์์ง ์์ ๊ฒฝ์ฐ
- B tree์ ๋์ผํ๋ค.
- ์ญ์ ํ key๊ฐ ๋ฆฌํ๋
ธ๋์ ๊ฐ์ฅ ์์ ์์นํ ๊ฒฝ์ฐ
- ๋ฆฌํ๋
ธ๋๊ฐ ์๋ ๋
ธ๋์ key๊ฐ ์ค๋ณตํด์ ์กด์ฌํ๋ค. ํด๋น key๋ฅผ ๋
ธ๋๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์์ผ๋ฉด์ ๊ฐ์ฅ ์์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค์ผ ํ๋ค.
- ๋ฆฌํ๋
ธ๋๊ฐ ์๋ ๋
ธ๋์ key๊ฐ ์ค๋ณตํด์ ์กด์ฌํ๋ค. ํด๋น key๋ฅผ ๋
ธ๋๋ณด๋ค ์ค๋ฅธ์ชฝ์ ์์ผ๋ฉด์ ๊ฐ์ฅ ์์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค์ผ ํ๋ค.
์ถ์ฒ
'๐์คํฐ๋ > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - Join (0) | 2024.04.03 |
---|---|
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - ์ธ๋ฑ์ค (0) | 2024.03.31 |
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - ํธ๋ฆฌ๊ฑฐ (0) | 2024.03.27 |