What is PostgreSQL?

The purpose of this post is to define exactly what PostgreSQL is and to set up future articles that will go into further detail.

Is it PostgreSQL or Postgres?

PostgreSQL is officially written as “PostgreSQL”.

The standard pronunciation is "post-GRES-cue-ell".

Some choose to pronounce this as “postgres sequel”.

Also, sometimes “Postgres” is used interchangeably with “PostgreSQL”.

Confused? Let's delve into the history to clarify things.


History of PostgreSQL

The name “PostgreSQL” is derived from Ingres, a relational database developed by Michael Stonebraker.

In 1986, Stonebraker initiated an upgrade to Ingres called POSTGRES (Post + Ingres) that added new features including object programming.

In 1994, POSTGRES become an open-source project with an MIT license.

In 1995, Andrew Yu and Jolly Chen replaced the POSTGRES internal query language named QUEL with the nascent SQL language.

After a brief name change to Postgre95, the project was rebranded as PostgreSQL by a development team including Bruce Momjian [a PUG speaker!] in 1996.


Defining PostgreSQL

PostgreSQL: The World's Most Advanced Open Source Relational Database

-- postgresql.org

The definition above appears as the masthead for postgresql.org, which is the official website for source code, installation software downloads, documentation, news, and community listings.

This is pithy, but more promotional than informative.

The following is a more comprehensive definition.

PostgreSQL is an ACID-compliant open-source relational database management system (RDBMS) and application platform that uses SQL (Sequel Query Language) for search; includes procedural languages such as PL/pgSQL, PL/Python, and PL/V8 (JavaScript); and contains an integrated command-line interface called psql and a GUI tool named pgAdmin.

Parsing this definition will be the launching point for a series of posts that will break down the components of PostgreSQL, starting with an in-depth analysis of SQL.

For now, let's start with an overview.


What is data?

This question is not as obvious as it seems.

Data refers to a set of qualitative or quantitative values generated by observation, measurement, or recording of scientific phenomena or any form of human activity.

Refractive indices of materials, sales figures, stock prices, and sports statistics are examples of this.

Data usually takes the form of numerical values and/or string (character) values.

Basically, numbers and words.


What is a database?

A database is a container used to store, organize, and retrieve data.

Databases are structured in the form of tables, which are analogous to the rows and columns of spreadsheet tables.


What is a relational database?

Relational databases connect data elements through relations between multiple tables.


What is ACID?

ACID is an acronym of the properties used to indicate that the database provides atomicity, consistency, isolation, and durability.

Atomicity means that a complex database operation is processed as a single instruction even when it is made up of different operations.

Consistency means that the data within the database is always kept consistent and that is it is not corrupted due to partially performed operations.

Isolation ensures that concurrent transactions [multiple reads and writes to tables simultaneously] leave the database in the same state that would have been obtained if the transactions were executed sequentially.

Durability means that the database is required to protect the data it contains, even in the case of software and hardware failures.


What is SQL?

SQL is an abbreviation for Standard Query Language, a special-purpose declarative programming language for manipulating data within a relational database.

SQL will be explored extensively in upcoming posts.


How do I install PostgreSQL?

Go to the PostgreSQL Downloads page (https://www.postgresql.org/download).

There you will find source code archives [build it yourself] and links to ready-to-use packages and installers for various operating systems, including Windows, Linux, MacOS. and more.


PostgreSQL Variants

There are a number of proprietary implementations of PostgreSQL that may be of interest.

AWS

Amazon RDS for PostgreSQL

Amazon Aurora for PostgreSQL


MS Azure

Azure Database for PostgreSQL


GCP

Google Cloud SQL for PostgreSQL


Postgres-BDR from 2ndQuadrant is an advanced clustering & scaling variant for high availability enterprise systems.


CockroachDB is a distributed SQL database with free, enterprise, and cloud versions built with PostgreSQL compatibility.  Representatives for CockroachDB have spoken at Chicago PUG events in the past.


EnterpriseDB (EDB) provides subscriptions, tool suites, services, and support for a database platform comprised of open-source PostgreSQL or EDB Postgres Advanced Server for enterprise-class workloads.


PostgreSQL Resources

PostgreSQL.org is the official home website.

Planet PostgreSQL (https://planet.postgresql.org) is an aggregator of blogs.

PostgreSQL Wiki (https://wiki.postgresql.org/wiki/Main_Page) is a community site for articles, guides, and documentation.

Chicago PostgreSQL blog (https://chicagopugblog.blogspot.com) – You are here!


UPCOMING EVENTS

Robert Haas from EDB (https://www.enterprisedb.com) will present a talk entitled “PostgreSQL Optimizer Methodology” on Wednesday May 18, 2021 at 6 PM CST.

For more details and to sign up, go to the Chicago PostgreSQL Meetup Group website

https://www.meetup.com/Chicago-PostgreSQL-User-Group

If you would like to submit questions to the speaker prior to the event, use the following Google form:

https://forms.gle/fExUdoGifWUcMVME6 





Comments

  1. To be precise, a DBMS is not a storage, but a special software designed for data storage and management.

    ReplyDelete

Post a Comment

Popular posts from this blog

Chicago PUG + PgUS

Chicago PUG Participation Drive