The Postgres system is setup differently than some other database systems, and while long-time Postgres users consider its layout natural, people coming from other database are often initially confused. Therefore, it is helpful to explicitly mention some of those differences.
First, Postgres allows multiple databases in a single cluster (which is controlled by a single postmaster). This often confuses Oracle users because in Oracle you can only have one database in a cluster. This also confuses MySQL users because they have multiple ”databases”, but these databases share a single system catalog and allow cross-”database” queries. Effectively, they are “schemas”, rather than databases. Microsoft SQL has a similar facility to Postgres, with multiple database in a cluster, and multiple schemas in a database.
Multiple Databases and Global Objects
Libpq is the C interface library for Postgres. Your reaction, “But I don’t use C, I use Python, PHP, etc., so libpq isn’t useful to me?” Hold on! Don’t overlook libpq so quickly.




