PostgreSQL
- Okunuşu
- postgres-kyu-el
Kısaca
PostgreSQL, güvenilirliği, standartlara sıkı uyumu ve eklentileriyle bilinen ücretsiz, açık kaynaklı ilişkisel veritabanıdır; web uygulamalarında yaygındır.
PostgreSQL nedir?
Çoğu zaman kısaca Postgres denen PostgreSQL, Kaliforniya Üniversitesi Berkeley'de 1986'da başlayan POSTGRES araştırma projesinden doğdu. İlişkisel bir veritabanıdır: veri satır ve sütunlardan oluşan tablolarda durur, onu SQL ile okur ve değiştirirsiniz. Dünya çapında bir topluluk tarafından geliştirilir ve serbest bir lisansla yayımlanır; yani ticari ürünler dahil herkes onu ücretsiz kullanabilir.
Postgres, işleri doğru yapmasıyla tanınır. Transaction'lar ACID kurallarına uyar; yani bir grup değişiklik ya hep birlikte gerçekleşir ya da hiçbiri gerçekleşmez. Çok sürümlü eşzamanlılık denetimi (MVCC) de birçok kullanıcının birbirini engellemeden aynı anda okuyup yazmasını sağlar. Pencere fonksiyonları (window function), ortak tablo ifadeleri (CTE) ve birçok indeks türü gibi gelişmiş SQL özelliklerini destekler.
Alışılmadık derecede genişletilebilirdir. Sütunlar, indekslenip sorgulanabilen ve JSONB denen ikili bir biçimde JSON tutabilir; böylece tek bir veritabanı hem ilişkisel hem de belge tarzı veriye hizmet edebilir. Eklentiler tümüyle yeni yetenekler katar: harita ve coğrafya için PostGIS, yapay zekâ embedding'leri için pgvector; tam metin arama ise zaten yerleşiktir.
Sık yapılan bir yanlış, PostgreSQL'in yalnızca çok büyük ya da karmaşık projeler için olduğu düşüncesidir. Küçük bir web sitesinin arkasında da aynı iyilikte çalışır ve bulut sağlayıcılarının çoğu onu yönetilen bir servis olarak sunar. MySQL'e göre genellikle daha katı ve özellik bakımından daha zengin olarak tarif edilir; ikisi de olgun, hızlı ve geniş destekli veritabanlarıdır.
Önemli noktalar
- PostgreSQL, SQL kullanan ücretsiz ve açık kaynaklı bir ilişkisel veritabanıdır.
- Transaction'lar ACID'dir; MVCC okuyanların ve yazanların aynı anda çalışmasını sağlar.
- JSONB sütunları belge tarzı veriyi saklayıp indekslemesini sağlar.
- PostGIS ve pgvector gibi eklentiler yeni yetenekler ekler.
- Bulut sağlayıcılarının çoğu onu yönetilen bir servis olarak sunar.
Örnek
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
price NUMERIC(10, 2) NOT NULL,
attrs JSONB -- flexible, document-style data
);
INSERT INTO products (name, price, attrs)
VALUES ('Desk lamp', 39.90, '{"color": "black", "watts": 8}');
-- Query inside the JSON
SELECT name FROM products WHERE attrs->>'color' = 'black';Sık sorulan sorular
PostgreSQL ücretsiz mi?
Evet. Serbest bir açık kaynak lisansı olan PostgreSQL Lisansı ile yayımlanır; yani ticari yazılımlar dahil onu ücret ödemeden kullanabilir, değiştirebilir ve dağıtabilirsiniz.
PostgreSQL ile MySQL arasındaki fark nedir?
İkisi de açık kaynaklı ilişkisel veritabanıdır. PostgreSQL genellikle standartlar konusunda daha katı, gelişmiş özellikler ve eklentiler bakımından daha zengin görülür; MySQL ise sadeliği ve web barındırmadaki uzun geçmişiyle bilinir. Çoğu uygulama için ikisi de sağlam bir seçimdir.
PostgreSQL JSON saklayabilir mi?
Evet. JSONB tipi JSON'u indekslenip operatörlerle sorgulanabilen ikili bir biçimde saklar; böylece PostgreSQL birçok belge veritabanı kullanımını karşılayabilir.
Sık karşılaştırılanlar
- PostgreSQL vs MySQLPostgreSQL gelişmiş SQL'i, genişletilebilirliği ve titizliğiyle, MySQL ise sadeliği, hızı ve yaygınlığıyla bilinen açık kaynaklı ilişkisel veritabanlarıdır.
- MongoDB vs PostgreSQLPostgreSQL veriyi sabit şemalı tablolarda tutup SQL ile birleştirir; MongoDB ise esnek, JSON benzeri belgeler saklar ve sunuculara bölünmek için tasarlanmıştır.
İlgili sayfalar
- İlişkisel VeritabanıVeritabanları, s. 14İlişkisel veritabanı, veriyi satır ve sütunlardan oluşan tablolarda saklar, tabloları anahtarlarla bağlar ve veriyi SQL ile sorgulayıp birleştirmeyi sağlar.
- SQLVeritabanları, s. 29SQL, ilişkisel veritabanlarıyla çalışmanın standart dilidir; tablo oluşturmak ve içindeki veriyi eklemek, sorgulamak, güncellemek ve silmek için kullanılır.
- ACIDVeritabanları, s. 1ACID; atomiklik, tutarlılık, yalıtım ve dayanıklılıktan oluşan, hata ya da çökme olsa bile veritabanı transaction'larını güvenilir tutan dört garantidir.
- TransactionVeritabanları, s. 36Transaction, tek bir bütün olarak başarılı ya da başarısız olan veritabanı işlemleri grubudur; böylece veri asla yarım kalmış, tutarsız bir durumda bırakılmaz.
- MySQLVeritabanları, s. 18MySQL, SQL ile sorgulanan popüler, açık kaynaklı bir ilişkisel veritabanıdır; uzun süredir WordPress'in ve klasik LAMP yığınının veritabanı olarak bilinir.
- JSONBackend ve API'ler, s. 24JSON, yapılandırılmış veriyi anahtar-değer çiftleri ve listelerle saklayıp aktarmaya yarayan, insanın da makinenin de okuyabildiği hafif bir metin biçimidir.
- SupabaseVeritabanları, s. 34Supabase, veritabanı, kimlik doğrulama, depolama, gerçek zamanlı güncelleme ve anında API sunan, PostgreSQL tabanlı açık kaynaklı bir backend platformudur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin