b trees
Download
Skip this Video
Download Presentation
B-Trees

Loading in 2 Seconds...

play fullscreen
1 / 12

B-Trees - PowerPoint PPT Presentation


  • 159 Views
  • Uploaded on

B-Trees. But first, a little note about data structures. Not all data structures work well as file structures Example: Binary Search Tree. Knight. Gibson. Sanders. Coleman. Hudson. Monroe. Motivation for B-Trees. Index too large for memory search time better than binary search

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'B-Trees' - lamya


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
but first a little note about data structures
But first,a little note about data structures
  • Not all data structures work well as file structures
  • Example: Binary Search Tree

Knight

Gibson

Sanders

Coleman

Hudson

Monroe

motivation for b trees
Motivation for B-Trees
  • Index too large for memory
  • search time better than binary search
  • not just fast search, but also fast delete and fast insert
  • What's the "B" stand for?
    • Bayer and McCreight
    • Boeing
    • balanced, bushy, broad
indexed files
Data File

Level Two

Indexed Files
  • Searching
    • Dannelly
  • Deleting
    • Duncan
  • Adding
    • Walters
    • Aardvark

Level One

b tree informal definition
B-Tree Informal Definition
  • multi-level indexes
  • nodes are indexes, indexes are nodes
  • "Order" - maximum references in a node, minimum references is ½ the order
  • When node fills, split it and move up largest key
  • When node is too empty, combine it with parent
example insertion
Example Insertion
  • Insert these letters into an 4-order B-Tree
  • C S D T A M P I B W N G U R
  • After C S D and T
  • After A, node splits and largest keys of each node move up
  • M and P are added to right node, but so is I
slide7
C S D T A M P I B W N G U R
  • B, W, and N are no problem
  • Insertion of G causes another split, then U is no problem
  • Inserting R causes right node to split, then root to split
analysis
Analysis
  • Order Size?
    • match to disk cluster size and memory
  • Number of file accesses to Search
    • depth of tree
    • so bigger the Order the better
      • Order = 100 and Levels = 4 == 100million records
  • Number of file accesses to Delete
    • search downward to the leaf
    • modify node
    • if it was largest, adjust parent node
analysis1
Analysis
  • Number of file accesses to Add
    • best case
      • search downward
      • adjust the node
    • worst case (split)
      • search downward to the leaf
      • insert, overflow detect, split upward
      • create new root node
definition of b tree
Definition of B-Tree

In general, a B-Tree of Order N has the following properties:

  • the root has at least two descendants, or is a leaf
  • each node has no mode that N descendents
  • each node that is not the root or a leaf has at least N/2 descendants
  • all leaf nodes are at the same level
  • a nonleaf node with k descendants contains k-1 key values
b trees1
B+ Trees
  • Since search time = depth of tree, we need to keep the tree short and wide
  • Uneven tree (some full nodes and some near empty nodes, or leans to one side) creates poor performance
  • Using a slightly smarter split method during add keeps the tree short and balanced
  • B+ Tree is the de facto standard for databases
storing a b tree in files
Storing a B-Tree in Files
  • Data File
    • order does not matter
  • Index File
    • lists of indexes
    • each index: key, RRN

When inserting a new node, does its placement in the index file matter?

ad