Live Today

[์ž๋ฃŒ๊ตฌ์กฐ] B-Tree & B+ Tree ๋ณธ๋ฌธ

Computer Science/์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] B-Tree & B+ Tree

ilivetoday 2022. 9. 19. 22:55
๋ฐ˜์‘ํ˜•

๐Ÿ“‹ ๋ชฉ์ฐจ

  • B-Tree๋ž€?
  • B-Tree ํŠน์ง•
  • B+ Tree๋ž€?
  • B+ Tree ํŠน์ง•
  • B-Tree์™€ B+ Tree ๋น„๊ต
  • B-Tree ์ด์šฉ ์‚ฌ๋ก€

1๏ธโƒฃ B-Tree๋ž€?

B-Tree

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜์—ฌ ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ๋ฐ ์ˆœ์ฐจ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์œ ์ง€ํ•˜๋Š” ํŠธ๋ฆฌํ˜• ์ž๋ฃŒ๊ตฌ์กฐ
  • ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ํ™•์žฅํ•ด ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ž์‹ ๋…ธ๋“œ์˜ ์ตœ๋Œ€ ์ˆซ์ž๊ฐ€ 2๋ณด๋‹ค ํฐ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…

ํƒ์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ท ํ˜•์žˆ๊ฒŒ ๋†’์ด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ท ํ˜• ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

→ (๋‹จ, B-Tree๋Š” ‘์ด์ง„ ํŠธ๋ฆฌ’๊ฐ€ ์•„๋‹˜ !)

 

2๏ธโƒฃ B-Tree ํŠน์ง•

  • ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ N์ด๋ฉด, ์ž์‹ ์ˆ˜๋Š” N+1
  • ๊ฐ ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๋Š” ์ •๋ ฌ๋œ ์ƒํƒœ์ด์–ด์•ผ ํ•จ
  • ๋ฃจํŠธ ๋…ธ๋“œ๋Š” ์ ์–ด๋„ 2๊ฐœ ์ด์ƒ์˜ ์ž์‹์„ ๊ฐ€์ ธ์•ผ ํ•จ
  • ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ ์–ด๋„ M/2๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ (M=๋…ธ๋“œ ๋‚ด ์ตœ๋Œ€ ๋ฐ์ดํ„ฐ ์ˆ˜)
  • ์™ธ๋ถ€(๋‹จ๋ง) ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค
  • ์ž…๋ ฅ ์ž๋ฃŒ๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์—†์Œ
  • ์ด์ง„ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๊ฐ„๊ฒฐํ•จ + ๊ท ํ˜• → ๊ฒ€์ƒ‰/์‚ฝ์ž…/์‚ญ์ œ ๋ชจ๋‘ O(logN)

 

3๏ธโƒฃ B+ Tree๋ž€?

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 ํŠธ๋ฆฌ

๊ท ๋“ฑํ•œ ์‘๋‹ต์†๋„๋ฅผ ์œ„ํ•œ ํƒ์ƒ‰ ํŠธ๋ฆฌ, B-Tree

[Data Structure] B Tree(Balanced Tree) | B Tree ๊ทœ์น™ | B+ Tree | B Tree์™€ B+ Tree ์ฐจ์ด

[์ž๋ฃŒ๊ตฌ์กฐ] ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋Š” B-Tree, B+Tree, B*Tree

[Computer Science] B-ํŠธ๋ฆฌ(B-Tree)

B-tree ์™€ B+ tree