Search This Blog

Network model

The network model (defined by the CODASYL specification) organizes
data using two fundamental constructs, called records and sets.
Records contain fields (which may be organized hierarchically, as in
the programming language COBOL). Sets (not to be confused with
mathematical sets) define one-to-many relationships between records:
one owner, many members. A record may be an owner in any number of
sets, and a member in any number of sets.

The network model is a variation on the hierarchical model, to the
extent that it is built on the concept of multiple branches
(lower-level structures) emanating from one or more nodes
(higher-level structures), while the model differs from the hierchical
model in that branches can be connected to multiple nodes. The network
model is able to represent redundancy in data more efficiently than is
the hierarchical model.

The operations of the network model are navigational in style: a
program maintains a current position, and navigates from one record to
another by following the relationships in which the record
participates. Records can also be located by supplying key values.

Although it is not an essential feature of the model, network
databases generally implement the set relationships by means of
pointers that directly address the location of a record on disk. This
gives excellent retrieval performance, at the expense of operations
such as database loading and reorganization.

Most Object databases use the navigational concept to provide fast
navigation across networks of objects, generally using Object
Identifiers as "smart" pointers to related objects. Objectivity/DB,
for instance, implements named 1:1, 1:many, Many:1 and Many:Many named
relationships that can cross databases. Many object databases also
support SQL, combining the strengths of both models.