Neden PostgreSQL ?

Emre savaş
3 min readDec 25, 2020

Merhaba arkadaşlar, günümüzde popüler olan PostgreSQL veritabanı sistemi neden kullanmamız gerektiğini araştırmak ve bulduklarımı, deneyimlediklerimi sizlerle de paylaşmak istedim. Bu yazımı bir seri halinde olacaktır.

İlk olarak PostgreSQL geçmişine bakarsak, 1986 yılında University of California’ da POSTGRES projesinin bir parçası olarak PostgreSQL, 30 yılı aşkın süredir gelişimini sürdürmektedir. Bu sürede bir çok sürümü tanıtılan PostgreSQL’de veritabanı açısından en önemli değişiklik ise PostQUEL’in SQL’e geçiş yaptığı 1996 yılında yayımlanan sürümünde adını “PostgreSQL” olarak değiştirilmiştir.

Peki PostgreSQL diğerlerinden farklı kılan özellikleri yani avantajları nelerdir ?

  • Birçok işletim sistemi tarafından desteklenmektedir.(Unix, Linux, MacOS, Windows vs.)
  • Nesne ilişkisel bir dildir. Coğrafi veri yapılarını ve yeni NoSQL yapısal olmayan veri türlerini (JSON, JSONB, XML, vb.) destekler.
  • Açık kaynak kod olarak sadece gönüllüler tarafından geliştirilmektedir.
  • Gerçek bir açık kaynak ürünü olan PostgreSQL’in hiçbir maliyeti yoktur, Kullanması tamamen ücretsiz!
  • Bir çok programlama dilleriyle kullanılabilir.(C, Embedded C, Python, Java vs.)
  • PostgreSQL, MySQL ve aynı sınıftaki veritabanlarıyla kıyaslandığında INSERT/UPDATE işlemlerinde, transaction bazlı çalıştığından dolayı daha yavaştır. Bu konuda geri de olmasına rağmen güvenirlik ve esneklik bakımından daha avantaja sahiptir.
  • Öğrenmesi ve kurması kolaydır. Güncel, detaylı, herkese açık ve erişimi kolay yaygın dokümantasyonu vardır.
  • Hata mesajları ve log sistemi açıktır, anlaşılırdır.
  • Kaynak kodu kullanılarak özelleşmiş açık veya kapalı kodlu çözümler geliştirilebilir.

PostgreSQL, yük dengeleme ve kümeleme yapıları ile veritabanı sunucuları arasındaki iş yüklerinin dengelenmesini sağlar. Sunucuların herhangi birinde aşırı yüklenme önlenirken, kaynak kullanımı optimize edilir, verimlilik en üst düzeye çıkar ve yanıt süreleri en aza iner.

PostgreSQL’de Multi-Master Replikasyonu ile birden çok sunucu master statüsüne sahip olabilirken, farklı lokasyonlarda dağıtık iş yükü yönetimini, yük dengelemeyi, Cluster Mimariyi destekler.

Natif Asenkron Çoğaltma (Native Asynchronous Replication), Tam / Artırımlı Yedekleme (Full/Incremental Backup) ve kurtarma modları, veri yeniden senkronizasyon mekanizmalarının kolaylığı gibi özellikler ile PostgreSQL, Disaster Recovery Center (DRC) hazırlığının tam özellik setini destekleyerek, daha fazla maliyet / araç eklemeden veri tabanınızın herhangi bir felaketten kurtarılmasını sağlar.

Diğer Veri Tabanlarını PostgreSQL’e Taşımak

PostgreSQL’in mimarisi, hem ilişkisel hem de ilişkisel olmayan modellerden herhangi bir mevcut veritabanı sisteminden geçişi destekler.

Veritabanı taşınmasını kolaylaştıran özelliklere sahiptir. Veri tabanlarının PostgreSQL’e bağlanmasını sağlayan Foreign Data Wrappers özelliği vardır. Foreign Data Wrappers eklentileri ile harici veri kaynaklarına bağlanarak üzerinde sorgu çalıştırılabilir, veri aktarılabilir/alınabilir (ETL). Genel, spesifik (Oracle, MySQL, PostgreSQL, MS SQL Server, DB2, Teradata), NoSQL (Cassandra, MongoDB, Redis, Neo4j), dosya (XML, CSV, düz metin), coğrafi bilgi sistemleri gibi farklı yapılarda harici veri kaynaklarına ve farklı veri tabanlarına erişebilirsiniz. Diğer veri tabanlarından PostgreSQL’e göç için geliştirilmiş açık kaynak kodlu ve ticari araçlar mevcuttur.

Coğrafi Veri Desteği

PostgreSQL ile coğrafi verilerinizi yönetebilirsiniz. PostGIS eklentisi ile PostgreSQL mekansal veri yapılarını destekleyecek veritabanı haline gelir.

PostgreSQL Veri Türleri

  • Basit: Integer, Numeric, Float, Char, String, Boolean
  • Kompleks: Date/Time, Array, Money (para birimi), Ağ Adresi Türleri (cidr, inet ve macaddr), tsvector (ts — text search, tam metin araması yapmasını sağlayan sıralanmış sözcük listesi), evrensel benzersiz tanımlayıcılar (UUID), enumerated, range, interval (izin verilen değerler kümesi, veri aralığı kısıtlaması ve denetim kısıtlamaları yapılabilen)
  • NoSQL, Doküman: JSON/JSONB, XML, Key-value (Hstore)
  • Geometrik: Point, Line, lseg, Box, Circle, Polygon, Path
  • Özel/Kompozit Veri Türleri: Yeni veri türlerini desteklemek için kolayca genişletilebilir.

Bu bölümde yazının sonuna geldik. PostgreSQL hakkında artık genel olarak bilgi sahibiyiz. Bir sonraki yazımda beraber PostgreSQL kurulumu ve örnek yapacağız.

Umarım faydalı olmuştur.
Okuduğunuz için teşekküler…

--

--