PostgreSQL is a sophisticated
object-relational database management system
(ORDBMS).
An ORDBMS is an extension of the
more traditional
relational database management systems
(RDBMS).
An RDBMS enables users to store related
pieces of data in two-dimensional data structures called
tables
. This data may consist of many defined
types
, such as integers, floating-point numbers,
character strings, and timestamps. Data inserted in the table can be
categorized using a grid-like system of vertical
columns, and horizontal rows.
The relational model was built on a strong premise of conceptual
simplicity, which is arguably both its most prominent strength and
weakness.
The object-relational aspect of PostgreSQL adds numerous enhancements to
the straight relational data model. These include support for
arrays
(multiple values in a single column),
inheritance
(child-parent relationships between
tables), and
functions
(programmatic methods
invoked by SQL statements). For the advanced developer, PostgreSQL even
supports extensibility of its data types and procedural languages.
Due to this object-relational concept, tables are sometimes called
classes, while rows and columns can be referred to as object-instances
and object-attributes, respectively. We will use this terminology
interchangeably in this book. Other SQL data structures, such as indices
and views, can be referred to as database objects.
Note: Take care to observe that
object-relational
is not synonymous with
object-oriented
, a term pertaining to many modern programming languages. While PostgreSQL supports
several objective improvements to the relational model, it is still accurate to refer to PostgreSQL as a relational
database management system (RDBMS).