Wednesday, July 9, 2008

CSC 121 As I See It 006

Differentiate all the basic and alternative database models :

Hierarchical

This is a tree structured model for a database. It requires that the application knows about the physical relationships between entities. The structure is rigid. Hierarchical structures were widely used in the early mainframe database management systems. This structure allows one 1:N relationship between two types of data and is very efficient to describe many relationships in the real world; recipes, table of contents, ordering of paragraphs/verses, any nested and sorted information. However, the hierarchical structure is inefficient for certain database operations when a full path is not also included for each record.

ex. IMS is a hierarchical database.

Network

An extension of the tree into a lattice so that multiple relationships can be supported. This model is inflexible, requiring significant changes if relationships change. 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.

ex. CODASYL and IDMS is a network database.

Relational

This model is based on relational algebra and encompasses the rules developed by Codd. Most of the databases in commercial use now are relational. The model is flexible and extensible. It makes database management systems more independent of any particular application. Three key terms are used extensively in relational database models: relations, attributes, and domains. A relation is a table with columns and rows. The named columns of the relation are called attributes, and the domain is the set of values the attributes are allowed to take.

ex. Sybase, Oracle, Ingres.

Object

Object databases address the need to store more complex data types than are supported by the relational model. These databases attempt to bring the database world and the application programming world closer together, in particular by ensuring that the database uses the same type system as the application program. This aims to avoid the overhead of converting information between its representation in the database (for example as rows in tables) and its representation in the application program. At the same time, object databases attempt to introduce the key ideas of object programming into the world of databases
Object databases suffered because of a lack of standardization: although standards were defined by ODG, they were never implemented well enough to ensure interoperability between products. Nevertheless, object databases have been used successfully in many applications: usually specialized applications such as engineering databases or molecular biology databases rather than mainstream commercial data processing

No comments: