This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the
current
version, or one of the other supported versions listed above instead.
PostgreSQL |
Prev |
Chapter 1.
Introduction |
Next |
Traditional relational database management systems (DBMSs)
support a data model consisting of a collection of named relations,
containing attributes of a specific type. In current commercial
systems, possible types include floating point numbers, integers,
character strings, money, and dates. It is commonly recognized that
this model is inadequate for future data processing applications.
The relational model successfully replaced previous models in part
because of its "Spartan simplicity". However, as mentioned, this
simplicity often makes the implementation of certain applications
very difficult. Postgres offers substantial additional power by
incorporating the following four additional basic concepts in such
a way that users can easily extend the system:
classes |
inheritance |
types |
functions |
Other features provide additional power and flexibility:
constraints |
triggers |
rules |
transaction integrity |
These features put Postgres into the category of databases
referred to as object-relational. Note
that this is distinct from those referred to as object-oriented, which in general are not as well
suited to supporting the traditional relational database languages.
So, although Postgres has some object-oriented features, it is
firmly in the relational database world. In fact, some commercial
databases have recently incorporated features pioneered by
Postgres.