PostgreSQL, tüm dünyada popüler olan açık kaynak kodlu, platform bağımsız gelişmiş bir nesne ilişkisel (ORDBMS – Object Relational Database Management System) veritabanı yönetim sistemidir.
Veritabanları için ilişkisel model kullanmayı ve SQL (Structured Query Language – Yapılandırılmış Sorgu Dili) dilini destekler. PostgreSQL aynı zamanda iyi performans veren, güvenli ve geniş özellikleri olan bir DBMS (Database Management System – Veritabanı Yönetim Sistemi)’dir. En karmaşık veri iş yüklerini güvenli bir şekilde depolayabilir ve ölçeklendirebilir.
Hemen hemen tüm UNIX yani UNIX türevi (GNU/Linux, FreeBSD gibi…) işletim sistemlerinde çalışacak şekilde tasarlanmıştır. Ayrıca NT çekirdekli tüm Windows işletim sistemlerinde de çalıştırılabilir. PorsgreSQL ücretsiz ve açık kaynak kodludur.
PostgreSQL, gelişmiş veri türlerini ve gelişmiş performans optimizasyonunu destekler. Bu özellikler Oracle ve SQL Server gibi yalnızca ticari veritabanlarında bulunur.
Tarihçesi
PostgreSQL’in geliştirilmesi; 1977’de Bereket üniveristesi Ingress adındaki ilişkisel veritabanı geliştirmeye başlanmasına kadar dayanır. 1986-1994 yılları arasında bu DBMS Postgres adını aldı ve Illustra tarafından satın alınıp Informix olarak değiştirildi ve geliştirilmeye devam etti. 1994’te SQL özelliklerinin eklenmesiyle Postgres95 adını aldı 1996 yılında kod geliştirilmesi için gönüllü toplanmak için bir e-posta listesi açıldı ve bir çok gönüllü Postgres95’i geliştirmek için çalışmaya başladı. 1996 yılına gelindiğinde SQL standartlarını desteklemesiyle PostgreSQL adını aldı.
1997 – 1985 Ingres : PostgresSQL’in 1977 yılında başlayan 20 yılı akademik, sonraki 20 yılını da endüstride geçen 40 yıllık bir geçmişi vardır. Berekeley Kaliforniya Üniversitesinde Micheal Stonebraker, Ingres adıyla ilişkisel modeli bazı alan bir araştırma projesi olarak ilişkisel veritabanı yönetim sistemini geliştirdi.
1986-1994 Posgres : 1985’den itibaren Micheal Stonebraker, kompleks veri yapıları ve nesne ilişkisel modeli destekleyen postgres veritabanı yönetim sistemini geliştirdi.
1994-1995 Postgre95 : 1995’te Andrew Yu ve Jolly Chen tarafından SQL sorgu dili geliştirilerek, önceki POSTQUEL sorgu dili ile değiştirildi ve geliştirilmiş bu versiyona Postgres95 adı verildi.
1996 – Günümüz PostgreSQL : Bir çok geliştiricinin Postgre95 üzerinde yoğun çalışması ile bir çok yeni özellik eklenmesi ve iyileştirmelerin adından ilk açık kaynak versiyonu 1997 yılında yayınlandı ve endüstride kullanılmaya başlandı. Açık kaynak versiyonun adı Postgre95 değiştirilerek PostgreSQL oldu.
PostgreSQL’in Özellikleri
PostgreSQL’in özellikleri ve kabiliyetleri ve yenilikçi özellikleriyle mevcut ticari veritabanları ile rekabet edebilecek özelliklere sahiptir. Ekonomiktir, hiç bir lisans ücreti yoktur, size üretici bağımsızlığı sağlar. PostgreSQL’i istediğiniz kadar sunucuya kurabilir veya dağıtımı yapabilirsiniz.
Türkçe’ye yerelleştirilmiş ve Türkçe desteği vardır (https://www.postgresql.org/docs/13/multibyte.html)
Platform bağımsızdır. PostgreSQL’i kullanmak için geliştirme ortamınıza ve sistemlerinize değiştirmenize gerek yoktur. Tüm modern işletim sitemlerini (Linux, Unix, Windows, Mac OS vb..) ve işlemciler (x86, x86_64, IA64 vb..) üzerinde çalışır ve destekler (http://buildfarm.postgresql.org).
Yüksek güvenliklidir. Yüksek erişilebilir ve genişleyebilir bir mimariye sahiptir. Her işlem ve veri büyüklüğüne göre ölçeklenebilir, esnektir, genişleyebilir veya daratılabilir.
Yüksek performanslıdır. Çok büyük veri operasyonları ve yüksek anlık işlem yükleri karşısında sağlamdır. ACID (Atomicity, Consistency, Isolation, Durability – Bütünlük, Tutarlılık, Bağımsız, Dayanıklılık) uyumludur. SQL Standartlarına (ANSI-SQL 2008/2011) en çok uyum gösteren bir veritabanıdır.
PostgreSQL’in çok gelişmiş bir sorgu planlayıcısı vardır. Farklı yazılım geliştirme platform ve dillerini destekler ve uyumlu çalışır. Coğrafi veri yapılarını ve yeni NoSQL yapısal olmayan veri türlerini (JSON, JSONB, XML vb..) destekler.
Öğe | Üst Sınır | Açıklama |
---|---|---|
Veritabanı Boyutu | sınırsız | |
Veritabanı Sayısı | 4.294.950.911 | |
Veritabanı başına ilişkiler | 1.431.650.303 | |
İlişki boyutu | 32 TB | varsayılan BLCKSZ8192 bayt ile |
Tablo başına satır sayısı | 4,294,967,295 sayfaya sığabilen tuple sayısı ile sınırlıdır | |
Tablo başına sütun sayısı | 1600 | |
Alan boyutu | 1 GB | |
Tanımlayıcı uzunluğu | 63 bayt | PostgreSQL yeniden derlenerek artırılabilir |
Tablo başına dizin uzunluğu | sınırsız | veritabanı başına maksimum ilişki ile sınırlandırılmıştır |
Dizin başına sütun uzunluğu | 32 | PostgreSQL yeniden derlenerek artırılabilir |
Bölüm anahtarları | 32 | PostgreSQL yeniden derlenerek artırılabilir |
PostgreSQL’in Lisansı
“Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.”
“Bu yazılımı ve belgelerini herhangi bir amaç için, ücretsiz ve yazılı bir anlaşma olmaksızın kullanma, kopyalama, değiştirme ve dağıtma izni verilir.”
PostgreSQL’in Kullanımı ve Türetilmiş Ürünler
PostgreSQL dünya ve özel kamu sektörlerinde iş kritik sistemlerde ve ürünlerde tercih edilen bir veritabanıdır. Örneğin CERN (Avrupa Nükleer Araştırma Merkezi) 400 TB’tan büyük verisini yönetmek için PostgreSQL’e güveniyor. Bankacılık sektöründe Goldman Sachs ve Morgan Stanly gibi büyük bankalar veri yönetim altyapısı için PostgreSQL’i tercih etmektedirler.
Ayrıca Güney Kore, İngiltere, Fransa, Hindistan, ABD, Yeni Zelanda, İsrail, Estonya, Norveç ve bir çok ülke e-Devlet uygulamalarında PostgreSQL kullanıyor.
PostgreSQL’den türetilmiş bir çok ticari veri yönetim ürünü ve açık kaynaklı proje bulunmaktadır. Bunlardan bazıları;
- IBM – Netezza
- Teradata – Aster Data, Hadapt
- Amazon – Redshift
- HP – Vertica
- FUJITSU – Enterprise Postgre
- EnterpriseDB – Postgres Advanced Server
- Google Cloud SQL for PostgreSQL
- Citus Data – Citus
- Greenplum – Greenplum Database
- Brytlyt – Brytlyt GPU Database
- Postgres Professional – Postgres Pro Enterprise
- Postgres-XL (the XL stands for eXtensible Lattice)
- PipelineDB – PipelineDB
- TimescaleDB
PostgreSQL’in Önemli Özellikleri
- ACID (Atomicity, Consistency, Isolation, Durability)
- MVCC (Multi Version Concurrency Control)
- WAL (Write-Ahead Logging
- PITR (Point-in-Time Recovery), active / passive standbys
- High Availability
- Authentication: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate, and more
- Procedural Languages: PL/PGSQL, Perl, Python (and many more)
- SQL/JSON path expressions
- Full-text search
- Case-insensitive and accent-insensitive collations
- Table partitioning
- Replication: Asynchronous/Synchronous, Physical/Logical, Cascaded
- Procedural languages
- Native Partitioning, Inheritance
- Sophisticated query planner/cost based optimizer
- Multi-platform
- Advanced Indexing: GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom filters
- Parallelization of read queries
- Tablespaces
- Triggers
- Functions
- Views(Materialized/Updatable)
- Transactions, Nested Transactions (via savepoints)
- Constraint enforcement: check constraints, unique constraints, foreign keys, primary keys
- Extension system: hstore, pg_stat_statements
- Temporary tables
- Unlogged tables
- Foreign Data Wrappers (RDBMS, NoSQL, File): MongoDB, Hadoop, Redis , MySQL, Oracle, Delimited Files, vb
- GIS, NoSQL, Graph
Cevapla
Want to join the discussion?Feel free to contribute!