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 a user to store related pieces of data via two-dimensional data structures called tables . This data may consist of many defined types , such as integers, floating-point numbers, character strings, and timestamps. Inserted data in the table is categorized usinga 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 has support for extensibility of its data types, and procedural languages.

Due to this object-related 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 Database Objectivity

Take care to observe that while PostgreSQL is considered object-relational, this 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 more accurate to refer to PostgreSQL as a relational database management system (RDBMS).