Slide 13.16: Implementation of an inverted list
Slide 14.2: A binary search tree
Home

B-Tree Evloution


The major goal of a file structure design is to discover a general method for efficiently accessing and maintaining an index that is too large to hold in memory. The problems the designers confronted were The following file structures were designed to solve the two problems:
  1. Binary search tree (late 1950s): It is a binary tree where every node's left subtree has values less than the node's value, and every right subtree has values greater. The major problem is the lack of an effective strategy of balancing the tree.

  2. AVL tree (1962): It is a balanced binary search tree where the height of the two subtrees of a node differs by at most one. It provides an acceptable solutions to the second problem above but not the first.

  3. B-tree (early 1970s): It is a balanced search tree in which every node has between ⌈m/2⌉ and m children, where m>1 is a fixed integer. The B-tree is, de facto, the standard organization for indexes in a database system.

  4. B+ tree (late 1970s): It is a B-tree in which keys are stored in the leaves. By using this structure, a file is able to be accessed sequentially with efficiency, which is not possible for B-tree.

  5. Hashing (1970s): It is a scheme for providing rapid access to data items which are distinguished by some key. Each data item to be stored is associated with a key, e.g. the name of a person.