Hierarchical model is a data model which uses the tree as its basic structure. So, lets define the basics of the tree.
Basics of Tree :
A tree is a data structure that consists of hierarchy of nodes with a single node, called the root at highest level.
A node may have any number of children, but each child node may have only one parent node on which it is dependent. Thus the parent to child relationship in a tree is one to many relationship whereas child to parent relationship in a tree is one to one.
In figure 1, the node at level 1 is called the root node and the nodes at that has no children are called leaves. For example, node 4, 5, 7, 8, 9, 10 and 11.
Nodes that are children of the same parent are called siblings. For example, nodes 2, 3, 4 are siblings.
For any node there is a single path called the hierarchical path from the root node. The nodes along this path are called that nodes ancestors.
Similarly for a given node, any node along a path from that node to leaf is called its descendent.
For example, suppose we have to find out the hierarchical path of node 10, then it will be 1→2→6→10 and the ancestors of node 10 are 1, 2 and 6.
The height of tree is the number of levels on the longest hierarchical path from the root to a leaf. The above tree has a height= 4.
A tree is said to be balanced if every path from the root node to a leaf has the same length.
Figure 2 shows a balanced and an unbalanced tree.
A binary tree is one in which each node has not more than two children.
Figure 3 shows a binary tree
Example of Hierarchical Model :
Figure 4 shows a data structure diagram for a tree representing the STUDENT, FACULTY and CLASS.
The root node chosen is faculty, CLASS as a child of faculty and STUDENT as a child of class.
The cardinality between CLASS and FACULTY is one to many cardinality as a FACULTY teaches one or more CLASS.
The cardinality between a CLASS and a STUDENT is also one to many cardinality because a CLASS has many STUDENTS.
Figure 5 shows an occurrence of the FACULTY-CLASS-STUDENT.
Deletion- If CS02 is deleted, then all the students in CS02 class will be deleted. So deletion is very difficult. However deletion of leaf nodes that is students does not create difficulty in deletion.
Insertion- A new class say, CS03 may not be introduced unless some faculty is available at root level. So insertion is also difficult.
Updation- Suppose a student has changed his subject from Hindi to Sanskrit, then firstly a search is performed to find out Hindi subject and then an update is made. A search is a time consuming process here.
So these problem occurs in all the three operations.
Advantages of Hierarchical Model
Easy to understand
Performance is better than relational data model
Disadvantages of Hierarchical Model
Difficult to access values at lower level
This model may not be flexible to accomodate the dynamic needs of an organisation
Deletion of parent node result in deletion of child node forcefully
Extra space is required for the storage of pointers