Live Today
[์๋ฃ๊ตฌ์กฐ] B-Tree & B+ Tree ๋ณธ๋ฌธ
๋ฐ์ํ
๐ ๋ชฉ์ฐจ
- B-Tree๋?
- B-Tree ํน์ง
- B+ Tree๋?
- B+ Tree ํน์ง
- B-Tree์ B+ Tree ๋น๊ต
- B-Tree ์ด์ฉ ์ฌ๋ก
1๏ธโฃ B-Tree๋?
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ์ฌ ํ์, ์ฝ์ , ์ญ์ ๋ฐ ์์ฐจ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ์ ์งํ๋ ํธ๋ฆฌํ ์๋ฃ๊ตฌ์กฐ
- ์ด์ง ํธ๋ฆฌ๋ฅผ ํ์ฅํด ํ๋์ ๋ ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ์์ ๋ ธ๋์ ์ต๋ ์ซ์๊ฐ 2๋ณด๋ค ํฐ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ผ์ข
→ ํ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ๊ท ํ์๊ฒ ๋์ด๋ฅผ ์ ์งํ๋ ๊ท ํ ํธ๋ฆฌ์ ๋๋ค.
→ (๋จ, B-Tree๋ ‘์ด์ง ํธ๋ฆฌ’๊ฐ ์๋ !)
2๏ธโฃ B-Tree ํน์ง
- ๋ ธ๋์ ๋ฐ์ดํฐ ์๊ฐ N์ด๋ฉด, ์์ ์๋ N+1
- ๊ฐ ๋ ธ๋์ ๋ฐ์ดํฐ๋ ์ ๋ ฌ๋ ์ํ์ด์ด์ผ ํจ
- ๋ฃจํธ ๋ ธ๋๋ ์ ์ด๋ 2๊ฐ ์ด์์ ์์์ ๊ฐ์ ธ์ผ ํจ
- ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋๋ ์ ์ด๋ M/2๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํจ (M=๋ ธ๋ ๋ด ์ต๋ ๋ฐ์ดํฐ ์)
- ์ธ๋ถ(๋จ๋ง) ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ๋ก์ ๊ธธ์ด๋ ๋ชจ๋ ๊ฐ๋ค
- ์ ๋ ฅ ์๋ฃ๋ ์ค๋ณต๋ ์ ์์
- ์ด์ง ํธ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ๊ฒฐํจ + ๊ท ํ → ๊ฒ์/์ฝ์ /์ญ์ ๋ชจ๋ O(logN)
3๏ธโฃ B+ Tree๋?
- B-Tree๋ ํ์์ ์ํด์ ๋ ธ๋๋ฅผ ์ฐพ์์ ์ด๋ํด์ผ ํ๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ด๋ฌํ ๋จ์ ์ ํด์ํ๊ณ ์ B+Tree๋ ๊ฐ์ ๋ ๋ฒจ์ ๋ชจ๋ ํค๊ฐ๋ค์ด ์ ๋ ฌ๋์ด ์๊ณ , ๊ฐ์ ๋ ๋ฒจ์ Sibiling node๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ ํํ๋ก ์ด์ด์ ธ ์์ต๋๋ค.
- Index node๋ค๊ณผ Data node๋ก ๊ตฌ์ฑ
- Index node : ๋ฆฌํ๋
ธ๋๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋
ธ๋
- Index set : index node ๋ค์ ๋ชจ์ → ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ์ ์ํ ์ธ๋ฑ์ค ์ญํ
- Data node : ๋ฆฌํ๋
ธ๋
- sequence set : ๋ฆฌํ๋ ธ๋์ ๋ชจ์ → ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ( ์ค์ ๋ฐ์ดํฐ)
4๏ธโฃ B+ Tree ํน์ง
- Data node๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ํ์ฑ๋์ด ์๋ค.
- Bํธ๋ฆฌ์ ์์ฐจ์ ๊ทผ์ ๋ํ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์ ์๋์๋ค.
- Bํธ๋ฆฌ์ ๋ค๋ฅด๊ฒ ์ฝ์ , ์ญ์ ์ฐ์ฐ์ด ๋ฆฌํ๋ ธ๋์์๋ง ์ด๋ฃจ์ด์ง๋ค.
- ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ์ ์ํ ์ธ๋ฑ์ค ์ญํ ๋ง ํ๋ ๋ ธ๋๊ฐ ์ถ๊ฐ๋ก ์๋ค.
- ๋ชจ๋ key, data๊ฐ ๋ฆฌํ๋ ธ๋์ ๋ชจ์ฌ์๋ค.
5๏ธโฃ B-Tree vs B+ Tree
6๏ธโฃ B-Tree ์ด์ฉ ์ฌ๋ก
- DBMS๋ ํ์ผ์์คํ ์ ์ธ๋ฑ์ค ์๋ฃ๊ตฌ์กฐ๋ก ํ์ฉ (B+tree, B*tree๋ก ๋ฐ์ )
- ๊ฒ์์์ง, ํจํด ๋งค์นญ ๋ฑ ์ฑ๋ฅ์ด ์ผ์ ํ๋ฉด์ ๋น ๋ฅธ ํ์์ด ์๊ตฌ๋๋ ๋ถ์ผ์ ํ์ฉ
๐ ์ฐธ๊ณ ๋งํฌ
๊ท ๋ฑํ ์๋ต์๋๋ฅผ ์ํ ํ์ ํธ๋ฆฌ, B-Tree
[Data Structure] B Tree(Balanced Tree) | B Tree ๊ท์น | B+ Tree | B Tree์ B+ Tree ์ฐจ์ด
[์๋ฃ๊ตฌ์กฐ] ๊ฐ๋จํ ์์๋ณด๋ B-Tree, B+Tree, B*Tree
'Computer Science > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] Trie(ํธ๋ผ์ด) (1) | 2022.10.03 |
---|---|
[์๋ฃ๊ตฌ์กฐ] Binary Search Tree(์ด์ง ํ์ ํธ๋ฆฌ) (3) | 2022.08.30 |
[์๋ฃ๊ตฌ์กฐ] Array & ArrayList & LinkedList (6) | 2022.08.15 |
[์๋ฃ๊ตฌ์กฐ] Stack & Queue & Map & Set (6) | 2022.08.07 |