๐งฉ [Data Structure] B-tree์ ์ฐจ์(Degree)๋ ๋ฌด์์ผ๊น์?
๐ Intro.
-
B-tree(Balanced Multiway Search Tree)๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ๊ธฐ ์ํ ํธ๋ฆฌ ๊ตฌ์กฐ์
๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋งค๋์ง๋จผํธ ์์คํ (DBMS), ์ธ๋ฑ์ค ๊ตฌ์กฐ ๋ฑ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
โ 1๏ธโฃ B-Tree์ ์ฃผ์ ํน์ง.
1๏ธโฃ ๊ท ํ ํธ๋ฆฌ(Balanced Tree)
- ๋ฃจํธ์์ ๋ฆฌํ๊น์ง์ ๊ฒฝ๋ก ๊ธธ์ด๊ฐ ํญ์ ๋์ผํฉ๋๋ค.
- ์ฝ์ ๋ฐ ์ญ์ ์ ์๋์ผ๋ก ๊ท ํ์ ์ ์งํ์ฌ O(log N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ณด์ฅํฉ๋๋ค.
2๏ธโฃ ๋ค์ง ๊ตฌ์กฐ(Multiway Tree)
- ํ ๋
ธ๋์ ์ฌ๋ฌ ๊ฐ์ ํค(Key)์ ์ฌ๋ฌ ์์(Child)์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์ผ๋ฐ์ ์ธ ์ด์ง ํธ๋ฆฌ(Binary Tree)๋ณด๋ค ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ ธ๋์ ์ ์ฅํ๋ฏ๋ก, ํธ๋ฆฌ์ ๋์ด๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
3๏ธโฃ ๋์คํฌ ๊ธฐ๋ฐ ํจ์จ์ฑ
- ํ ๋
ธ๋์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๋์คํฌ I/O ํ์๋ฅผ ์ค์ด๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ์ด๋ฅผ ํตํด ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๋์คํฌ ๊ธฐ๋ฐ ์์คํ ์์ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
4๏ธโฃ ์ ๋ ฌ๋ ๋ฐ์ดํฐ ์ ์ฅ
- ๋ชจ๋ ๋
ธ๋๋ ํค(Key)๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋ฉ๋๋ค.
- ๊ฐ ํค๋ ํด๋น ์์ ๋ ธ๋ ๋ฒ์์ ๊ฐ์ ๋ํ๋ ๋๋ค.
โ 2๏ธโฃ B-Tree์ ๊ท์น
1๏ธโฃ ํค(Key)์ ์์(Child) ๊ด๊ณ
- ํ ๋
ธ๋์ ์ต๋ d-1๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.(์ฌ๊ธฐ์ d๋ ํธ๋ฆฌ์ ์ฐจ์)
- ๋ ธ๋์ ํค๊ฐ N๊ฐ๋ผ๋ฉด, ํด๋น ๋ ธ๋๋ ์ต๋ N+1๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
2๏ธโฃ ๋ชจ๋ ๋ ธ๋๋ ์ ๋ ฌ๋ ์ํ.
- ๋ ธ๋ ๋ด๋ถ์ ํค๋ ํญ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค.
- ์์ ๋ ธ๋๋ ๊ฐ ํค์ ๋ฒ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
3๏ธโฃ ํค ๊ฐ์ ๋ฒ์.
- ๋ชจ๋ ๋ ธ๋๋ ์ต์ ceil(d/2)-1๊ฐ์ ํค๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค.
- ๋ฃจํธ ๋ ธ๋๋ ์์ธ์ ์ผ๋ก 1๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
4๏ธโฃ ๊ท ํ ์ ์ง.
- ํธ๋ฆฌ๋ ์ฝ์ , ์ญ์ ์ ์๋์ผ๋ก ๊ท ํ์ ์ ์งํฉ๋๋ค.
- ํธ๋ฆฌ์ ๋์ด๊ฐ ๊ธ๊ฒฉํ ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
โ 3๏ธโฃ B-Tree์ ๊ตฌ์กฐ.
๐1๏ธโฃ ์์: ์ฐจ์(d) = 3์ธ B-Tree
-
์ฐจ์(Degree)๋ B-Tree ๋๋ B+ Tree์์ ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- ๋ํ ํ ๋
ธ๋๋ ์ต๋ d-1๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์ฐจ์(d) = 3, ์ต๋๋ก ๊ฐ์ง ์ ์๋ ์์ ์ โ 3
- ์ฐจ์(d) = 3, ์ต๋๋ก ์ ์ฅํ ์ ์๋ ํค โ 3-1 = 2
- ๋ํ ํ ๋
ธ๋๋ ์ต๋ d-1๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
๐2๏ธโฃ ํน์ง
1๏ธโฃ ๋ด๋ถ ๋ ธ๋์ ํค.
- ๋ฃจํธ ๋
ธ๋
[30]
์ 1๊ฐ์ ํค๋ฅผ ๊ฐ์ง๊ณ 2๊ฐ์ ์์์ ๊ฐ์ง.
2๏ธโฃ ๋ฆฌํ ๋ ธ๋.
- ๋ฆฌํ ๋
ธ๋
[10, 20]
์[40, 50]
์ ํค๋ฅผ ์ ์ฅํ๋ฉฐ, ์์ ๋ ธ๋๊ฐ ์์.
โ 4๏ธโฃ B-Tree์ ์ฃผ์ ์ฐ์ฐ.
1๏ธโฃ ๊ฒ์(Search)
- ๋ฃจํธ์์ ์์ํ์ฌ ๋ ธ๋๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์.
- ํค๋ฅผ ๋น๊ตํ๋ฉฐ ์์ ๋ ธ๋๋ก ๋ด๋ ค๊ฐ.
- ์๊ฐ ๋ณต์ก๋: O(log N)
2๏ธโฃ ์ฝ์ (Insert)
-
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์์น๋ฅผ ์ฐพ์(๋ฆฌํ ๋ ธ๋).
-
- ๋ฆฌํ ๋ ธ๋์ ๋ฐ์ดํฐ ์ถ๊ฐ.
-
- ๋ ธ๋๊ฐ ๊ฐ๋ ์ฐจ๋ฉด ๋ถํ (Split) ์ํ.
-
- ๋ถํ ๋ ํค๋ฅผ ๋ถ๋ชจ ๋ ธ๋๋ก ์ด๋.
-
- ํ์ํ ๊ฒฝ์ฐ, ๋ถ๋ชจ ๋ ธ๋๋ ๋ถํ (Split).
3๏ธโฃ ์ญ์ (Delete)
-
- ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์์น๋ฅผ ์ฐพ์.
-
- ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ํ, ์ธ๋ํ๋ก์ฐ(Underflow) ๋ฐ์ ์:
- ๋ณํฉ(Merge) ๋๋ ์ฌ๋ถ๋ฐฐ(Redistribute)๋ก ํด๊ฒฐ.
- ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ํ, ์ธ๋ํ๋ก์ฐ(Underflow) ๋ฐ์ ์:
-
- ํธ๋ฆฌ์ ๊ท ํ ์ ์ง.
โ 5๏ธโฃ B-Tree์ ์ฅ์ .
-
1. ๋์ ๊ฒ์ ๋ฐ ์
๋ฐ์ดํธ ์ฑ๋ฅ
- ํธ๋ฆฌ ๋์ด๊ฐ ๋ฎ์ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ ํจ์จ์ ์ ๋๋ค.
-
2. ๋์คํฌ I/O ์ต์ ํ
- ํ ๋ ธ๋์ ๋ง์ ํค๋ฅผ ์ ์ฅํ๋ฏ๋ก ๋์คํฌ ์ ๊ทผ ํ์๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
-
3. ๊ท ํ ์ ์ง
- ํญ์ ๊ท ํ์ ์ ์งํ๋ฏ๋ก, ์ต์ ์ ๊ฒฝ์ฐ์๋ O(log N)์ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
-
4. ์ ๋ ฌ ๋ฐ์ดํฐ ์ ์ฅ
- ํค๊ฐ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๋ฏ๋ก, ๋ฒ์ ๊ฒ์(Range Query)์ด ํจ์จ์ ์ ๋๋ค.
โ 6๏ธโฃ B-Tree๊ฐ ์ฌ์ฉ๋๋ ๊ณณ.
-
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค
- MySQL(InnoDB), PostSQL ๋ฑ์์ ์ฌ์ฉ๋ฉ๋๋ค.
-
2. ํ์ผ ์์คํ
- NTFS, ext4์ ๊ฐ์ ํ์ผ ์์คํ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
-
3. Key-Value ์ ์ฅ์
- RocksDB, LevelDB ๋ฑ์์ B-Tree ๊ธฐ๋ฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐ Intro.
-
์ฐจ์(Degree)๋ B-Tree ๋๋ B+ Tree์์ ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- ์ฐจ์(d)๊ฐ ํฌ๋ฉด ํ ๋ ธ๋์ ๋ ๋ง์ ์์์ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก, ํธ๋ฆฌ์ ๋์ด๊ฐ ๋ฎ์์ง๊ณ ๊ฒ์ ํจ์จ์ด ํฅ์๋ฉ๋๋ค.
- ๋ฐ๋๋ก ์ฐจ์(d)๊ฐ ์์ผ๋ฉด ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ์์ ์๊ฐ ์ ์ด ํธ๋ฆฌ์ ๋์ด๊ฐ ์ปค์ง ์ ์์ต๋๋ค.
โ 1๏ธโฃ B-Tree์์ โ์ฐจ์(Degree)โ์ ์๋ฏธ.
- B-Tree์์ ์ฐจ์(d)๋ ๋ ธ๋์ ํค(Key)์ ์์(Child)์ ์๋ฅผ ์ ํํ๋ ์ค์ํ ๊ธฐ์ค์ด ๋ฉ๋๋ค.
1๏ธโฃ ํ ๋ ธ๋์ ์ต๋ ํค(Key) ๊ฐ์.
- ํ ๋
ธ๋๋ ์ต๋ d-1๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฐจ์ d=4์ธ B-Tree๋ผ๋ฉด, ํ ๋ ธ๋๋ ์ต๋ 4-1=3๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
2๏ธโฃ ํ ๋ ธ๋์ ์์(Child) ์.
- ํ ๋
ธ๋์ ํค(Key) ๊ฐ์๊ฐ N๊ฐ๋ผ๋ฉด, ํด๋น ๋
ธ๋๋ ์ต๋ N+1๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฐจ์ d=4์ธ ๊ฒฝ์ฐ:
- ๋ ธ๋์ 3๊ฐ์ ํค๊ฐ ์์ผ๋ฉด, ์ต๋ 4๊ฐ์ ์์(Child)์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฐจ์ d=4์ธ ๊ฒฝ์ฐ:
โ 2๏ธโฃ B-Tree์์ ์ฐจ์(Degree)์ ๊ท์น.
-
1. ํค(Key) ๊ฐ์์ ๋ฒ์:
- ํ ๋
ธ๋๋ ์ต์ ceil(d/2)-1๊ฐ์ ํค๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ต๋ d-1๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์: ์ฐจ์ d=4๋ผ๋ฉด:
- ์ต์ ํค ๊ฐ์: ceil(4/2)-1 = 1
- ์ต๋ ํค ๊ฐ์: 4-1 = 3
- ์: ์ฐจ์ d=4๋ผ๋ฉด:
- ํ ๋
ธ๋๋ ์ต์ ceil(d/2)-1๊ฐ์ ํค๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ต๋ d-1๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
-
2. ์์(Child) ์์ ๋ฒ์:
- ํ ๋
ธ๋๋ ์ต์ ceil(d/2)๊ฐ์ ์์์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ต๋ d๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์: ์ฐจ์ d=4๋ผ๋ฉด:
- ์ต์ ์์ ์: ceil(4/2) = 2
- ์ต๋ ์์ ์: 4
- ์: ์ฐจ์ d=4๋ผ๋ฉด:
- ํ ๋
ธ๋๋ ์ต์ ceil(d/2)๊ฐ์ ์์์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ต๋ d๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
โ 3๏ธโฃ ์ฐจ์(d)์ ์์ .
์: ์ฐจ์(d) = 4์ธ B-Tree
[ 30 | 60 ]
/ | \
[10, 20] [40, 50] [70, 80]
-
1. ๋ด๋ถ ๋
ธ๋:
- ๋ฃจํธ ๋
ธ๋
[30 | 60]
๋ ์ต๋ d-1 = 3๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.- ํ ๋ ธ๋๋ ์ต๋ d-1๊ฐ์ ํค๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ฃจํธ ๋
ธ๋
[30 | 60]
์ ์ต์ ceil(4/2)-1 = 1๊ฐ์ ํค๋ฅผ ๊ฐ์ ธ์ผํ๋ฉฐ, ์ต๋ d-1 = 3๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.- ํ ๋ ธ๋๋ ์ต์ ceil(d/2)-1๊ฐ์ ํค๋ฅผ ๊ฐ์ ธ์ผํ๋ฉฐ, ์ต๋ d-1๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์์ ๋
ธ๋ ์๋ ์ต๋ d = 4๊ฐ.
- ํ ๋ ธ๋์ ํค(Key) ๊ฐ์๊ฐ N๊ฐ๋ผ๋ฉด, ํด๋น ๋ ธ๋๋ ์ต๋ N+1๊ฐ์ ์์์ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ํ ๋ ธ๋๋ ์ต์ ceil(4/2) = 2๊ฐ์ ์์์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ์ต๋ 4๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ๋ฃจํธ ๋
ธ๋
-
2. ๋ฆฌํ ๋
ธ๋:
- ๋ฆฌํ ๋
ธ๋
[10, 20], [40, 50], [70, 80]
์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ(Key)๋ฅผ ์ ์ฅํฉ๋๋ค.- B-Tree์ ๊ท์น ์ค โ๋ชจ๋ ๋
ธ๋๋ ์ ๋ ฌ๋ ์ํโ๊ฐ ์์ต๋๋ค.
- ๋ ธ๋ ๋ด๋ถ์ ํค๋ ํญ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์์ ๋ ธ๋๋ ๊ฐ ํค์ ๋ฒ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- B-Tree์ ํน์ง ์ค โ์ ๋ ฌ๋ ๋ฐ์ดํฐ ์ ์ฅโ์ด ์์ต๋๋ค.
- ๋ชจ๋ ๋
ธ๋๋ ํค(Key)๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
- ๊ฐ ํค(Key)๋ ํด๋น ์์ ๋ ธ๋์ ๋ฒ์ ๊ฐ์ ๋ํ๋ ๋๋ค.
- ๋ชจ๋ ๋
ธ๋๋ ํค(Key)๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
- B-Tree์ ๊ท์น ์ค โ๋ชจ๋ ๋
ธ๋๋ ์ ๋ ฌ๋ ์ํโ๊ฐ ์์ต๋๋ค.
- ๋ฆฌํ ๋
ธ๋
-
3. ํธ๋ฆฌ ๋์ด:
- ์ฐจ์(d)๊ฐ ํฌ๋ฉด ํธ๋ฆฌ์ ๋์ด๊ฐ ์ค์ด๋ค์ด ๊ฒ์์ด ๋ ๋น ๋ฆ
๋๋ค.
- ์ฐจ์(d)๊ฐ ํฌ๋ฉด ํ ๋ ธ๋์ ๋ ๋ง์ ์์์ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก, ํธ๋ฆฌ์ ๋์ด โฅฅ๊ฐ ๋ฎ์์ง๊ณ (๋์ ๋๋นโ๊ฐ ๋์ด์ง) ๊ฒ์ ํจ์จ์ด ํฅ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ฐ๋๋ก ์ฐจ์(d)๊ฐ ์์ผ๋ฉด ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ์์ ์๊ฐ ์ ์ด ํธ๋ฆฌ์ ๋์ด๊ฐ โ๋์์ง๋๋ค(๋๋นโ๊ฐ ์ข์์ง).
- ์ฐจ์(d)๊ฐ ํฌ๋ฉด ํธ๋ฆฌ์ ๋์ด๊ฐ ์ค์ด๋ค์ด ๊ฒ์์ด ๋ ๋น ๋ฆ
๋๋ค.
โ 4๏ธโฃ ์ฐจ์๊ฐ ์๊ณ ํฐ ๊ฒฝ์ฐ์ ์ฐจ์ด.
1๏ธโฃ ์ฐจ์(d)๊ฐ ์์ผ๋ฉด:
- ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ํค(Key)์ ์์ ์๊ฐ ์ ์ต๋๋ค.
- ํธ๋ฆฌ์ ๋์ด๊ฐ ์ปค์ ธ ๊ฒ์ ์ฑ๋ฅ์ด ์ฝ๊ฐ ๋จ์ด์ง ์ ์์ต๋๋ค.
- ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ํค(Key)์ ์์ ์๊ฐ ์ ์ด ํธ๋ฆฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ์.
- ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ํค(Key)์ ์์ ์๊ฐ ์ ์ด ํธ๋ฆฌ์ ๋์ด๋ ๋์ง๋ง ๋๋น๋ ์ข๊ธฐ ๋๋ฌธ์.
2๏ธโฃ ์ฐจ์(d)๊ฐ ํฌ๋ฉด:
- ํ ๋ ธ๋์ ๋ ๋ง์ ํค(Key)์ ์์์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ํธ๋ฆฌ์ ๋์ด๊ฐ ๋ฎ์์ ธ ๊ฒ์, ์ฝ์
, ์ญ์ ๊ฐ ๋ ๋น ๋ฆ
๋๋ค.
- ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ํค(Key)์ ์์ ์๊ฐ ๋ง์ ํธ๋ฆฌ๊ฐ ๋ฎ๊ธฐ ๋๋ฌธ์.
- ๋งค๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ํ ๋ ธ๋์ ์ ์ฅํ ์ ์๋ ํค(Key)์ ์์ ์๊ฐ ๋ง์ ํธ๋ฆฌ์ ๋์ด๋ ๋ฎ์ง๋ง ๋๋น๋ ๋๊ธฐ ๋๋ฌธ์.
๐1๏ธโฃ ์ฐจ์(d)์ ์์ ์์์ ์ ์ฉ.
1๏ธโฃ ์ฐจ์(d) = 4์ธ ๊ฒฝ์ฐ
-
์ฐจ์(d)๋ B-Tree์์ ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ์์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- ๋ฐ๋ผ์, ๋ด๋ถ ๋ ธ๋(๋ฃจํธ ๋ ธ๋ ํฌํจ)์ ์์ ๋ ธ๋ ์๋ ์ต๋ 4๊ฐ๊ฐ ๋ฉ๋๋ค.
2๏ธโฃ ํค(Key) ๊ฐ์์ d-1 ๋ฒ์น
- ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ํค(Key) ๊ฐ์๋ d-1์
๋๋ค.
- ์ฐจ์ d=4๋ผ๋ฉด:
- ์ต๋ ํค ๊ฐ์ = d-1 = 3๊ฐ
- ์ฐจ์ d=4๋ผ๋ฉด:
- ๋ฃจํธ ๋
ธ๋
[30 | 60]
๋ 2๊ฐ์ ํค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก, ์ต๋ 3๊ฐ๋ฅผ ๊ฐ์ง ์ ์๋ ๊ท์น์ ์ค์ํฉ๋๋ค.- ์ฌ๊ธฐ์ 2๊ฐ๋ โํ์ฌ ์ ์ฅ๋ ํค ๊ฐ์โ๋ฅผ ๋ํ๋ด๋ฉฐ, 3๊ฐ๋ โ์ต๋ ์ ์ฅ ๊ฐ๋ฅ ํค ๊ฐ์โ์ ๋๋ค.
3๏ธโฃ ๋ฃจํธ ๋ ธ๋์ ์์ ์
- ๋ฃจํธ ๋
ธ๋๋ 2๊ฐ์ ํค(Key)๋ฅผ ๊ฐ์ง๋ฏ๋ก, ์ต๋ N+1๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ฌ๊ธฐ์ N = 2(๋ฃจํธ ๋
ธ๋์ ํค ๊ฐ์)๋ผ๋ฉด:
- ์์ ๋ ธ๋ ์๋ N+1 = 3๊ฐ์ ๋๋ค.
- ์ฌ๊ธฐ์ N = 2(๋ฃจํธ ๋
ธ๋์ ํค ๊ฐ์)๋ผ๋ฉด:
- ๋ฃจํธ ๋
ธ๋
[30 | 60]
์ ์์ ๋ ธ๋๋ก[10, 20], [40, 50]. [70. 80]
3๊ฐ์ ๋ฆฌํ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.- ์ด๋ ์ฐจ์(d=4)์ ๊ท์น์ ์ถฉ์กฑํฉ๋๋ค.
4๏ธโฃ ๋ฆฌํ ๋ ธ๋์ ๊ตฌ์ฑ
- ๋ฆฌํ ๋ ธ๋์ ํค๋ ๊ฐ ๋ ธ๋์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๋ฆฌํ ๋
ธ๋๋ ์์์ด ์์ผ๋ฉฐ, ๋ฆฌํ ๋
ธ๋๋ก:
[10, 20]
[40, 50]
-
[70, 80]
- ์ด 3๊ฐ๊ฐ ์กด์ฌํฉ๋๋ค.
๐5๏ธโฃ ๊ฒฐ๋ก .
-
-
์ฐจ์(d=4):
- ๋ด๋ถ ๋ ธ๋(๋ฃจํธ ๋ ธ๋ ํฌํจ)์ ์์ ๋ ธ๋ ์๋ ์ต๋ 4๊ฐ์ ๋๋ค.
-
์ฐจ์(d=4):
-
-
ํค(Key) ๊ฐ์:
- ๋ฃจํธ ๋
ธ๋
[30 | 60]
๋ ํ์ฌ 2๊ฐ์ ํค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋, ์ต๋ 3๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ด๋ ๊ท์น์ ์ค์ํฉ๋๋ค.
- ๋ฃจํธ ๋
ธ๋
-
ํค(Key) ๊ฐ์:
-
-
๋ฆฌํ ๋
ธ๋:
- ์์ ๋ ธ๋:
[10, 20]
[40, 50]
-
[70, 80]
- ์ด 3๊ฐ์ ๋ฆฌํ ๋ ธ๋๊ฐ ์์ผ๋ฉฐ, ์ด๋ ์ ์ ํ ๊ตฌ์ฑ์ ๋ฐ๋ฆ ๋๋ค.
-
๋ฆฌํ ๋
ธ๋: