"IBM introduced the first generation of database technology, known as hierarchical, when it installed IMS (Information Management System) in its mainframe computers in the mid-1960s. This technology was upgraded in the mid-1970s to network database technology. Both hierarchical and network databases are often described by the term hierarchical database.
As the term implies, in a hierarchical database records are grouped in a logical hierarchy, connected in a branching structure similar to an organizational chart. An application retrieves data by first finding the primary record and then following pointers stored in that record to other connected records."
"Although still in use by a few thousand mainframe computer installations, hierarchical database systems gave way to relational database (RDB) technology for two major reasons:
Hierarchical database systems are difficult to use. They require application developers to program navigation through the connected records [...]
They also require developers to predict all possible access patterns in advance and design the database accordingly. A database access pattern that is not included in the design becomes very difficult and inefficient.
RE: IBM introduced the first generation of database technology
I don't think IMS is the first "database" system. There were some NetworkDatabases from other company(s) in the early 1960's. Links to follow....
IBM on IMS:
"IMS is the fastest, most reliable database computing system in the world, plain and simple. When immediate access to mission-critical information is imperative, over 95% of the world's major corporations rely on IMS to provide a continuous link to data that is accurate, up-to-date, and quickly accessed by many end users. Customers rely on IMS systems to process billions of vital transactions a day. Any time you make an airline reservation, rent a car, get cash from an ATM, or pick up a prescription from the pharmacy, chances are you've used IMS."
Here's an example customer experience with maintaining a legacy IMS system:
As I recall, accessing records in IMS was remarkably similar to card-based and tape-based sequential methods that preceded it:
Logically, you read sequential records that each had leading "record type" codes.
Like, you'd have a "customer master" records,
each of which were followed by the appropriate "order header" records for that customer,
each of which were followed by the appropriate "order line" records.
IMS didn't concern itself much with the content of the records, only their type and order.
If you wanted to access the records in a different hierarchical order -- different from the physical order -- you could, but it was done by having IMS maintain "pointers" between records.
Traversing records through pointers is relatively slow.
See Also: NavigationalDatabase (near bottom)