Models Of Database
a) Post-relational database
models: Products
offering a more general data model than the relational model are sometimes
classified as post-relational. Alternate
terms include "hybrid database", "Object-enhanced RDBMS"
and others. The data model in such products incorporates relations but is not constrained by E.F. Codd's
Information Principle, which requires that. all information in the database
must be cast explicitly in terms of values in relations and in no other way. Some
of these extensions to the relational model integrate concepts from
technologies that pre-date the relational model. For example, they allow
representation of a directed graph with trees on the nodes.
Some post-relational products extend relational systems with non-relational
features. Others arrived in much the same place by adding relational features
to pre-relational systems.
b) Object
database models: In recent years[update],
the object-oriented paradigm has been applied in areas
such as engineering and spatial databases, telecommunications and in various
scientific domains. The conglomeration of object oriented programming and
database technology led to this new kind of database. 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 (sometimes referred
to as the impedance mismatch)
of converting information between its representation in the database (for
example as rows in tables) and its representation in the application program
(typically as objects). At the same time, object databases attempt to introduce
key ideas of object programming, such as encapsulation and polymorphism, into the world of
databases. A variety of these ways have been tried for storing objects in a
database. Some products have approached the problem from the
application-programming side, by making the objects manipulated by the program persistent. This also typically
requires the addition of some kind of query language, since conventional
programming languages do not provide language-level functionality for finding
objects based on their information content. Others have attacked the problem
from the database end, by defining an object-oriented data model for the
database, and defining a database programming language that allows full
programming capabilities as well as traditional query facilities.
c) Storage structures: Databases
may store relational tables/indexes in memory or on hard disk in one of many
forms:
- ordered/unordered flat files
- ISAM
- heaps
- hash buckets
- logically-blocked files
- B+ trees
The
most commonly used are B+ trees and
ISAM. Object databases use a range of storage mechanisms. Some use virtual
memory-mapped files to make the native language (C++, Java etc.) objects persistent. This can
be highly efficient but it can make multi-language access more difficult.
Others disassemble objects into fixed- and varying-length components that are
then clustered in fixed sized blocks on disk and reassembled into the
appropriate format on either the client or server address space. Another
popular technique involves storing the objects in tuples (much like a relational database) which the database server
then reassembles into objects for the client.
No comments:
Post a Comment