Conceptual Models of Databases
While the relational model offers a considerable amount of flexibility and preserves considerable efficiency, there are several alternative models for organizing databases, including network and hierarchical models. The hierarchical model is a tree structure in which information is organized as branches and nodes from a particular base. As an example, Figure 5-2 illustrates a hierarchical structure for rented equipment costs. In this case, each piece of equipment belongs to a particular supplier and has a cost which might vary by the duration of use. To find the cost of a particular piece of equipment from a particular supplier, a query would first find the supplier, then the piece of equipment and then the relevant price.
The hierarchical model has the characteristic that each item has a single predecessor and a variable number of subordinate data items. This structure is natural for many applications, such as the equipment cost information described above. However, it might be necessary to construct similar hierarchies for each project to record the equipment used or for each piece of equipment to record possible suppliers. Otherwise, generating these lists of assignments from the database illustrated in Figure 5-2 would be difficult. For example, finding the least expensive supplier of a crane might involve searching every supplier and every equipment node in the database to find all crane prices.
The network model or database organization retains the organization of information on branches and nodes, but does not require a tree of structure such as the one in Figure 5-2.This gives greater flexibility but does not necessarily provide ease of access to all data items. For example, Figure 5-3 shows a portion of a network model database for a building. The structural member shown in the figure is related to four adjoining members, data on the joints designed for each end, an assembly related to a room, and an aggregation for similar members to record member specifications.
While the early, large databases were based on the hierarchical or network organizations, the relational model is now preferred in many applications due to its flexibility and conceptual simplicity. Relational databases form the kernel for large systems such as ORACLE or SAP. However, databases distributed among numerous servers may have a network structure (as in Figure 5-3), with full relational databases contained at one or more nodes. Similarly, "data warehouse" organizations may contain several different types of databases and information files. For these data warehouses, more complicated search approaches are essential, such as automatic indexing of multi-media files such as photographs.
More recently, some new forms of organized databases have appeared, spurred in part by work in artificial intelligence. For example, Figure 5-4 illustrates a frame data structure used to represent a building design element. This frame describes the location, type, cost, material, scheduled work time, etc. for a particular concrete footing. A frame is a general purpose data representation scheme in which information is arranged in slots within a named frame. Slots may contain lists, values, text, procedural statements (such as calculation rules), pointers or other entities. Frames can be inter-connected so that information may be inherited between slots. Figure 5-5 illustrates a set of inter-connected frames used to describe a building design and construction plan. Object oriented data representation is similar in that very flexible local arrangements of data are permitted. While these types of data storage organizations are active areas of research, commercial database systems based on these organizations are not yet available.