Unit 6
Unit 6
Primary
indices, Secondary indices, B+ Tree index Files, B Tree index Files, Indexing and Hashing Techniques and their Comparisons.
What is File?
File is a collection of records related to each other. The file size is limited by the size of memory and storage
medium.
1. File Activity
2. File Volatility
File activity specifies percent of actual records which proceed in a single run.
File volatility addresses the properties of record changes. It helps to increase the efficiency of disk design
than tape.
File Organization
File organization ensures that records are available for processing. It is used to determine an efficient file
organization for each base relation.
For example, if we want to retrieve employee records in alphabetical order of name. Sorting the file by
employee name is a good file organization. However, if we want to retrieve all employees whose marks are in a
certain range, a file is ordered by employee name would not be a good file organization.
Direct access file helps in online transaction processing system (OLTP) like online railway reservation system.
In direct access file, sorting of the records are not required.
It accesses the desired records immediately.
It updates several files quickly.
It has better control over record allocation.
Disadvantages of direct access file organization
In indexed sequential access file, sequential file and random file access is possible.
It accesses the records very fast if the index table is properly organized.
The records can be inserted in the middle of the file.
It provides quick access for sequential and direct processing.
It reduces the degree of the sequential search.
Disadvantages of Indexed sequential access file organization
Indexed sequential access file requires unique keys and periodic reorganization.
Indexed sequential access file takes longer time to search the index for the data access or retrieval.
It requires more storage space.
It is expensive because it requires special software.
It is less efficient in the use of storage space as compared to other file organizations.
File Organization
o The File is a collection of records. Using the primary key, we can access the records. The type and frequency of access
can be determined by the type of file organization which was used for a given set of records.
o File organization is a logical relationship among various records. This method defines how file records are mapped onto
disk blocks.
o File organization is used to describe the way in which the records are stored in terms of blocks, and the blocks are
placed on the storage medium.
o The first approach to map the database to the file is to use the several files and store only one fixed length record in any
given file. An alternative approach is to structure our files so that we can contain multiple lengths for records.
o Files of fixed length records are easier to implement than the files of variable length records.
Objective of file organization
o It contains an optimal selection of records, i.e., records can be selected as fast as possible.
o To perform insert, delete or update transaction on the records should be quick and easy.
o The duplicate records cannot be induced as a result of insert, update or delete.
o For the minimal cost of storage, records should be stored efficiently.
In this method, there is no effort for searching and sorting the entire file. In this method, each record will be stored randomly in
the memory.
B+ File Organization
o B+ tree file organization is the advanced method of an indexed sequential access method. It uses a tree-like structure to
store records in File.
o It uses the same concept of key-index where the primary key is used to sort the records. For each primary key, the
value of the index is generated and mapped with the record.
o The B+ tree is similar to a binary search tree (BST), but it can have more than two children. In this method, all the
records are stored only at the leaf node. Intermediate nodes act as a pointer to the leaf nodes. They do not contain any
records.
Pros of ISAM:
o In this method, each record has the address of its data block, searching a record in a huge database is quick and easy.
o This method supports range retrieval and partial retrieval of records. Since the index is based on the primary key values,
we can retrieve the data for the given range of value. In the same way, the partial value can also be easily searched,
i.e., the student name starting with 'JA' can be easily searched.
Cons of ISAM
o This method requires extra space in the disk to store the index value.
o When the new records are inserted, then these files have to be reconstructed to maintain the sequence.
o When the record is deleted, then the space used by it needs to be released. Otherwise, the performance of the database
will slow down.
1. Indexed Clusters:
In indexed cluster, records are grouped based on the cluster key and stored together. The above EMPLOYEE and DEPARTMENT
relationship is an example of an indexed cluster. Here, all the records are grouped based on the cluster key- DEP_ID and all the
records are grouped.
2. Hash Clusters:
It is similar to the indexed cluster. In hash cluster, instead of storing the records based on the cluster key, we generate the
value of the hash key for the cluster key and store the records with the same hash key value.
B+ Tree
o The B+ tree is a balanced binary search tree. It follows a multi-level index format.
o In the B+ tree, leaf nodes denote actual data pointers. B+ tree ensures that all leaf nodes remain at the same height.
o In the B+ tree, the leaf nodes are linked using a link list. Therefore, a B+ tree can support random access as well as
sequential access.
Structure of B+ Tree
o In the B+ tree, every leaf node is at equal distance from the root node. The B+ tree is of the order n where n is fixed for
every B+ tree.
o It contains an internal node and leaf node.
Internal node
o An internal node of the B+ tree can contain at least n/2 record pointers except the root node.
o At most, an internal node of the tree contains n pointers.
Leaf node
o The leaf node of the B+ tree can contain at least n/2 record pointers and n/2 key values.
o At most, a leaf node contains n record pointer and n key values.
o Every leaf node of the B+ tree contains one block pointer P to point to next leaf node.
Searching a record in B+ Tree
Suppose we have to search 55 in the below B+ tree structure. First, we will fetch for the intermediary node which will direct to
the leaf node that can contain a record for 55.
So, in the intermediary node, we will find a branch between 50 and 75 nodes. Then at the end, we will be redirected to the
third leaf node. Here DBMS will perform a sequential search to find 55.
B+ Tree Insertion
Suppose we want to insert a record 60 in the below structure. It will go to the 3rd leaf node after 55. It is a balanced tree, and
a leaf node of this tree is already full, so we cannot insert 60 there.
In this case, we have to split the leaf node, so that it can be inserted into tree without affecting the fill factor, balance and
order.
The 3rd leaf node has the values (50, 55, 60, 65, 70) and its current root node is 50. We will split the leaf node of the tree in
the middle so that its balance is not altered. So we can group (50, 55) and (60, 65, 70) into 2 leaf nodes.
If these two has to be leaf nodes, the intermediate node cannot branch from 50. It should have 60 added to it, and then we can
have pointers to a new leaf node.
This is how we can insert an entry when there is overflow. In a normal scenario, it is very easy to find the node where it fits
and then place it in that leaf node.
B+ Tree Deletion
Suppose we want to delete 60 from the above example. In this case, we have to remove 60 from the intermediate node as well
as from the 4th leaf node too. If we remove it from the intermediate node, then the tree will not satisfy the rule of the B+ tree.
So we need to modify it to have a balanced tree.
After deleting node 60 from above B+ tree and re-arranging the nodes, it will show as follows:
Hashing
In a huge database structure, it is very inefficient to search all the index values and reach the desired data. Hashing technique
is used to calculate the direct location of a data record on the disk without using index structure.
In this technique, data is stored at the data blocks whose address is generated by using the hashing function. The memory
location where these records are stored is known as data bucket or data blocks.
In this, a hash function can choose any of the column value to generate the address. Most of the time, the hash function uses
the primary key to generate the address of the data block. A hash function is a simple mathematical function to any complex
mathematical function. We can even consider the primary key itself as the address of the data block. That means each row
whose address will be the same as a primary key stored in the data block.