What is PostGreSQL ?
PostgreSQL, often known as Postgres is a very powerful, Open-Source, Object-Relational Database Management System.
An Object-Relational Database Management System is a System which incorporates ideas of both Relational Database Systems and Object-Oriented Database Systems. The primary purpose of opting for an ORDBMS System is to leverage the efficiencies of a Relational Database combined with the advantages of Object-Oriented Programming model.
PostGres was developed in 1986 at University of California, Berkeley and has been in industry since more then 25 years. It has evolved a lot in recent years making it a very good and efficient choice for variety of use cases such as Geospatial Analysis, OLTP/OLAP Applications, Web developments, DWH solutions etc.
Key Features of Postgres:
The most lovable feature of this database is due to its open source nature making it available for every one and anyone can modify/use/distribute as per their business needs and requirements.
Since it has incorporated the features of Relational Database Systems, it is highly equipped with SQL Standards. It supports almost advanced SQL features such as CTEs, Subqueries, set operations, joins etc.
Again since it has features of Relational Database system, it follows ACID Properties i.e. Atomicity, Consistency, Isolation and Durability.
We have mentioned above that Postgres is an ORDBMS, which means it follows object-oriented programming such as Inheritance which lets us to define a table that can inherit attributes from a Parent table. We can also define our own Data Types, operators, Indexes.
Postgres is highly extensible. Meaning, we can add custom functions that supports multiple languages like SQL, PL/SQL, T-SQL, Python etc.
It Supports various Indexing methods such as B-Tree, Hash, GiST, BRIN. These indexes not only optimize our queries but also helps in improving performance.
Postgres acts as both Relational and NOSQL Database due to its support to JSON and JSONB (JSON for Binary) data types enabling to store and query un-structured data.
Postgres follows the MVCC i.e. Multi Version Concurrency Control mechanism to allow concurrent transactions to execute without the headache of using Locking mechanism.
It supports Parallel query processing, Partitioning and other optimization techniques for faster data retrieval and improved query performance.
With the support of Foreign Keys, Constraints and Triggers, Postgres ensures high level of data integrity and relationships among the tables.
It offers robust security features such as Role-Based Access Control, SSL Encryption, Row Level Security.
It has Cross-Platform compatibility i.e. Postgres can run in all major OS such as Windows/Linux/MacOS and other Unix based OS.
PostGres supports Streaming Replication (synchronous and Asynchronous), Logical Replication for High Availability and Disaster Recovery. It also has features for Backing and Restoring Databases along with the availability of 3rd party tools for managing backups in an Enterprise environments.
I hope this helps in an overview about what Postgres is and its features. We will be covering Postgres Architecture in detail in next section.
Please feel free to add comments/reviews/suggestions. Those are highly appreciated.
Thank you.
Subscribe to my newsletter
Read articles from prakhar singh rajawat directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
prakhar singh rajawat
prakhar singh rajawat
I am a Data Modeler and love Database Systems. I like to read software architectural designs/patters/, interesting stuff on OS/Networking/Programming. There is no better music then Rock and Heavy metal and also Carnatic music. Eminem is the KING/GOAT of RAP Industry. CR7 Fan.