Hierarchical model
From Wikipedia, the free encyclopedia
| Database models |
|---|
| Common models |
|
Hierarchical |
| Other models |
|
Associative |
In a hierarchical data model, data are organized into a tree-like structure. The structure allows repeating information using parent/child relationships: each parent can have many children but each child only has one parent. All attributes of a specific record are listed under an entity type. In a database, an entity type is the equivalent of a table; each individual record is represented as a row and an attribute as a column. Entity types are related to each other using 1: N mapping, also known as one-to-many relationships.
An example of a hierarchical data model would be if an organization had records of employees in a table (entity type) called "Employees". In the table there would be attributes/columns such as First Name, Last Name, Job Name and Wage. The company also has data about the employee’s children in a separate table called "Children" with attributes such as First Name, Last Name, and DOB. The Employee table represents a parent segment and the Children table represents a Child segment. These two segments form a hierarchy where an employee may have many children, but each child may only have one parent.
Contents |
Hierarchical structures were widely used in the first mainframe database management systems. Hierarchical relationships between different types of data can make it very easy to answer some questions, but very difficult to answer others. If a one-to-many relationship is violated (e.g. a patient can have more than one physician), then the hierarchy becomes a network.[1]
The most common form of hierarchical model used currently is the LDAP model. Other than that, the hierarchical model is rare in modern databases. It is, however, common in many other means of storing information, ranging from geographic, file systems to the Windows registry to XML documents.
In a hierarchical data model, an example of hierarchical database could be displaying the hierarchy of departmental responsibility or 'who reports to whom'.[2]
Consider the following structure:
| EmpNo | Designation | ReportsTo |
|---|---|---|
| 10 | Director | |
| 20 | Senior Manager | 10 |
| 30 | Typist | 20 |
| 40 | Programmer | 20 |
In this, the "child" is the same type as the "parent". The hierarchy stating EmpNo 10 is boss of 20, and 30 and 40 each report to 20 is represented by the "ReportsTo" column. In Relational database terms, the ReportsTo column is a foreign key referencing the EmpNo column. If the "child" data type were different, it would be in a different table, but there would still be a foreign key referencing the EmpNo column of the employees table.
See also nested set model.
- GT.M
- IMS
- MUMPS
- Caché (software)
- Metakit
- Multidimensional hierarchical toolkit
- Mumps compiler
- DMSII
- FOCUS
- ^ White, Basil (1996) Developing Products and Their Rhetoric from a Single Hierarchical Model, 1996 Proceedings of the Annual Conference of the Society for Technical Communication, 43, 223-224.
- ^ Chapter 23 'Logic-Based Databases' of An Introduction To Database Systems by C.J.Date seventh Edition
- Hierarchical databases at the Open Directory Project
- Hierarchies
- Managing hierarchical data in relational databases
- Mumps Compiler
- C++ Hierarchical Toolkit
|
|
|
|---|---|
| Database models · Database normalization · Database storage · Distributed DBMS · Referential integrity · Relational algebra · Relational calculus · Relational database · Relational DBMS · Relational model · Transaction processing | |
| Concepts | Database · ACID · Null · Candidate key · Foreign key · Primary key · Superkey · Surrogate key |
| Objects | Trigger · View · Table · Cursor · Log · Transaction · Index · Stored procedure · Partition |
| SQL | Select · Insert · Update · Merge · Delete · Join · Union · Create · Drop · Begin work · Commit · Rollback · Truncate · Alter |
| Implementations | Relational · Flat file · Deductive · Dimensional · Hierarchical · Network · Object-oriented · Object-relational · Temporal · XML data stores |
| Components | Concurrency control · Query language · Query optimizer · Query plan · ODBC · JDBC |
| Database products: Object-oriented (comparison) · Relational (comparison) | |