What is PostgreSQL?
Origins at UC Berkeley
What “object-relational” actually means
A purely relational database stores data strictly as rows and columns using a small set of primitive types (numbers, text, dates). An object-relational database keeps that same relational foundation — tables, rows, SQL, transactions — but adds concepts borrowed from object-oriented programming on top of it:
Rich, extensible data types — arrays, JSON/JSONB documents, geometric types, IP address ranges, and more, alongside the usual numbers and text
Table inheritance — one table can inherit the columns of another, useful for certain partitioning and modeling patterns
User-defined types and functions — you can define entirely new data types and the operators/functions that work with them
Custom operators and index types — advanced users can teach PostgreSQL new ways to store and search their data
This is the single biggest thing that sets PostgreSQL apart from a traditional relational database: it was designed from day one to be extended rather than treated as a closed box.
Standards compliance and extensibility
Enabling an extension
-- Extensions are opt-in per database CREATE EXTENSION IF NOT EXISTS pgcrypto;
Community and license
Aspect | Detail |
|---|---|
First released | 1996 (as "PostgreSQL"), project began 1986 |
Type | Object-relational database management system |
License | PostgreSQL License (permissive, similar to MIT/BSD) |
Governance | Open community, no single corporate owner |
Release cadence | One major version per year, with minor patch releases |