PostgreSQL Nedir?

PostgreSQL, en karmaşık veri iş yüklerini güvenli bir şekilde depolayan ve ölçeklendiren birçok özellikle birlikte SQL dilini kullanan ve genişleten güçlü, açık kaynaklı bir nesne-ilişkisel veritabanı sistemidir. PostgreSQL'in kökenleri, Berkeley'deki California Üniversitesi'ndeki POSTGRES projesinin bir parçası olarak 1986'ya kadar uzanır ve çekirdek platformda 30 yıldan fazla aktif gelişime sahiptir.
PostgreSQL, kanıtlanmış mimarisi, güvenilirliği, veri bütünlüğü, sağlam özellik seti, genişletilebilirliği ve yazılımın arkasındaki açık kaynak topluluğunun sürekli olarak performanslı ve yenilikçi çözümler sunmaya kendini adamasıyla güçlü bir itibar kazanmıştır. PostgreSQL tüm büyük işletim sistemlerinde çalışır, 2001'den beri ACID uyumludur ve popüler PostGIS jeo- uzamsal veritabanı genişleticisi gibi güçlü eklentilere sahiptir . PostgreSQL'in birçok kişi ve kuruluş için tercih edilen açık kaynaklı ilişkisel veritabanı haline gelmesi şaşırtıcı değildir.
PostgreSQL'i kullanmaya başlamak hiç bu kadar kolay olmamıştı - oluşturmak istediğiniz bir proje seçin ve PostgreSQL'in verilerinizi güvenli ve sağlam bir şekilde depolamasına izin verin.
PostgreSQL neden kullanılır?
PostgreSQL, geliştiricilerin uygulamalar oluşturmasına, yöneticilerin veri bütünlüğünü korumasına ve hataya dayanıklı ortamlar oluşturmasına ve veri kümesi ne kadar büyük veya küçük olursa olsun verilerinizi yönetmenize yardımcı olmayı amaçlayan birçok özellikle birlikte gelir. Ücretsiz ve açık kaynak olmasının yanı sıra PostgreSQL oldukça genişletilebilirdir. Örneğin, kendi veri türlerinizi tanımlayabilir, özel işlevler oluşturabilir, hatta veritabanınızı yeniden derlemeden farklı programlama dillerinden kod yazabilirsiniz!
PostgreSQL, bu tür bir uygunluğun geleneksel özelliklerle çelişmediği veya zayıf mimari kararlara yol açabileceği durumlarda SQL standardına uymaya çalışır . SQL standardının gerektirdiği özelliklerin çoğu, bazen biraz farklı sözdizimi veya işlevle desteklenir. Uygunluğa yönelik daha fazla hareket zaman içinde beklenebilir. Eylül 2021'deki sürüm 14 sürümünden itibaren PostgreSQL, SQL:2016 Core uyumluluğu için 179 zorunlu özelliğin en az 170'ine uygundur. Bu yazı itibariyle, hiçbir ilişkisel veritabanı bu standarda tam olarak uymamaktadır.
Aşağıda, PostgreSQL'de bulunan ve her ana sürümde daha fazlasının eklendiği çeşitli özelliklerin kapsamlı bir listesi bulunmaktadır:
Veri tipleri
- İlkel Öğeler: Tamsayı, Sayısal, Dize, Boole
- Yapılandırılmış: Tarih/Saat, Dizi, Aralık / Çok Aralıklı, UUID
- Belge: JSON/JSONB, XML, Anahtar/değer (Hstore)
- Geometri: Nokta, Doğru, Daire, Çokgen
- Özelleştirmeler: Kompozit, Özel Tipler
Veri bütünlüğü
- BENZERSİZ, NULL DEĞİL
- Birincil Anahtarlar
- Yabancı anahtarlar
- Dışlama Kısıtlamaları
- Açık Kilitler, Tavsiye Kilitleri
Eşzamanlılık, Performans
- İndeksleme: B-ağacı, Çok Sütunlu, İfadeler, Kısmi
- Gelişmiş İndeksleme: GiST, SP-Gist, KNN Gist, GIN, BRIN, Covering indeksleri, Bloom filtreleri
- Gelişmiş sorgu planlayıcı / optimize edici, yalnızca dizin taramaları, çok sütunlu istatistikler
- İşlemler, İç İçe İşlemler (kayıt noktaları aracılığıyla)
- Çok Sürümlü Eşzamanlılık Kontrolü (MVCC)
- Okuma sorgularının paralelleştirilmesi ve B-ağacı dizinleri oluşturma
- Tablo bölümleme
- Serileştirilebilir de dahil olmak üzere SQL standardında tanımlanan tüm işlem yalıtım seviyeleri
- Tam zamanında (JIT) ifadelerin derlenmesi
Güvenilirlik, Olağanüstü Durum Kurtarma
- Önceden Yazma Günlüğü (WAL)
- Çoğaltma: Eşzamansız, Eşzamanlı, Mantıksal
- Anında kurtarma (PITR), aktif beklemeler
- Tablo alanları
Güvenlik
- Kimlik Doğrulama: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Sertifika ve daha fazlası
- Sağlam erişim kontrol sistemi
- Sütun ve satır düzeyinde güvenlik
- Sertifikalar ve ek bir yöntemle çok faktörlü kimlik doğrulama
Genişletilebilirlik
- Saklanan işlevler ve prosedürler
- Prosedür Dilleri: PL/PGSQL, Perl, Python (ve daha fazlası)
- SQL/JSON yol ifadeleri
- Yabancı veri sarmalayıcılar: standart bir SQL arayüzü ile diğer veritabanlarına veya akışlara bağlanın
- Tablolar için özelleştirilebilir depolama arayüzü
- PostGIS dahil olmak üzere ek işlevsellik sağlayan birçok uzantı
Uluslararasılaştırma, Metin Arama
- Uluslararası karakter kümeleri için destek, örneğin ICU harmanlamaları aracılığıyla
- Büyük/küçük harfe duyarsız ve vurguya duyarsız harmanlamalar
- Tam metin arama
PostgreSQL belgelerinde keşfedebileceğiniz daha birçok özellik vardır . Ek olarak, PostgreSQL oldukça genişletilebilirdir: dizinler gibi birçok özellik, zorluklarınızı çözmek için PostgreSQL ile oluşturabilmeniz için tanımlanmış API'lere sahiptir.
PostgreSQL'in hem yönetebileceği veri miktarı hem de barındırabileceği eşzamanlı kullanıcı sayısı açısından yüksek düzeyde ölçeklenebilir olduğu kanıtlanmıştır. Üretim ortamlarında birçok terabayt veriyi yöneten aktif PostgreSQL kümeleri ve petabaytları yöneten özel sistemler vardır.
PostgreSQL Windows Install
Aşağıdaki link üzerinden postgreSQL son versiyonunu , Windows platformuna uygulan olacak şekilde indirin.
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

Bu yükleyici PostgreSQL sunucusu için pgAdmin'i içerir. Yani veritabanlarınızı yönetmek ve geliştirmek için grafiksel bir araç olarak kullanmanızı sağlar.
StackBuilder ise PostgreSQL araçlarını ve sürücülerini indirip yüklemek için kullanılabilecek bir paket yöneticisi. Stackbuilder, yönetim, entegrasyon, geçiş, çoğaltma, jeouzaysal, bağlayıcılar ve diğer araçları içerir.
Postgresql yüklemek için inen dosyayı çalıştıralım. Kurulum sihirbazı bizi karşılayacaktır. Yüklemeye devam etmek için next seçeneği ile devam edelim.

Postgresql kurulum dizinini değiştirebilir veya varsayılan olarak bırakabilirsiniz. Varsayılan olarak devam ediyorum.

Makaleye başlamadan önce kısaca bahsettiğimiz bileşenlerin yüklenmesi ile ilgili alandır. Hepsi seçili iken kuruluma devam edelim.
- PostgreSQL Server: Veritabanı sunucusu
- pgAdmin 4: PostgreSQL için grafiksel yönetim aracı
- Stack Builder: Postgresql modüllerini kurabileceğiniz grafiksel arayüz
- Command Line Tools: psql, pg_restore gibi komutlar için interaktif komut istemi arayüzü

PostgreSQL verilerinin tutulacağı konumunu değiştirebilir veya varsayılan olarak bırakabilirsiniz. Varsayılan olarak devam ediyorum.
Data yolu veritabanındaki verilerinizin tutulacağı dizindir. Tüm verileriniz bu alanda tutulacağı için işletim sisteminin kurulu olduğu disk yerine farklı bir disk seçmeniz verilerinizi daha kor korunaklı kılar.

Her veritabanında olduğu gibi postgresql içinde süper kullanıcı şifresi belirlememiz gerekmektedir. Bu şifreyi bir yere not alın.
- PostgreSQL superuser kullanıcı adı postgres olarak oluşur.
- Windows SQL Server kullanıcı adı sa olarak oluşur.
- Oracle SQL Server kullanıcı adı system ve sys olarak oluşur.
Bu kısa bilgilerden sonra kuruluma devam edelim.

Veritabanın dış dünyaya hizmet verebilmesi için bir listener port kullanması gerekmektedir. Varsayılan olarak postgresql 5432 portu ile dinleme yapar. Değiştirmeden kuruluma devam edelim.
En çok kullanılan veritabanlarından bazılarının varsayılan olarak kullandığı port bilgileri aşağıdaki gibidir.
- Postgresql 5432 numaralı portu kullanır.
- Windows SQL Server 1433 numaralı portu kullanır.
- Oracle SQL Server 1521 numaralı portu kullanır.

Yeni veritabanı kümesi tarafından kullanılacak yeri lokal olarak bırakıp, kuruluma devam edelim.

Kurulum için en baştan yaptığınız ayarların özetini bu ekranda görebilirsiniz. Kontrol ettikten sonra, kuruluma devam ediyorum.

Postgresql kurulumu için bilgisayarınız yüklemeye hazır. Next butonu ile kurulumu başlatalım.

Bilgisayar kaynaklarına göre kurulum 10-15 dk civarı sürebilir.

Kurulum tamamlandıktan sonra, Stack Builder kısmını uncheck edip, sihirbazı kapatalım.

PGadmin aracını açıp kurulum sırasında belirlediğiniz şifre ile veritabanına bağlanabilirsiniz.

PostgreSQL Linux Install
PostgreSQL, çeşitli platformlar için kullanıma hazır paketler veya yükleyiciler ve ayrıca kendiniz oluşturmak istiyorsanız bir kaynak kod arşivi olarak indirilebilir. İlk olarak resmi sitesinden İşletim sisteminize göre indirme işlemi gerçekleştiriniz.
DEBIAN | UBUNTU
Debian sürümünüzde bulunan sürüm istediğiniz sürüm değilse, PostgreSQL Apt Deposunu kullanabilirsiniz . Bu depo, normal sistemleriniz ve yama yönetiminizle entegre olacak ve PostgreSQL'in destek ömrü boyunca PostgreSQL'in tüm desteklenen sürümleri için otomatik güncellemeler sağlayacaktır .
PostgreSQL apt deposu, Debian ve Ubuntunun şu anda desteklenen kararlı sürümlerini destekler:
- impish (21.10)
- hirsute (21.04)
- focal (20.04)
- bionic (18.04)
- Bullseye (11.x)
- Buster (10.x)
- Stretch (9.x)
- Sid (unstable)
aşağıdaki mimarilerde:
- amd64
- arm64
- i386
- ppc64el
Dosya deposu yapılandırmasını oluşturun.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg ana" > /etc/apt/sources.list.d/pgdg.list'
Depo imzalama anahtarını içe aktarın.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Paket listelerini güncelleyin.
sudo apt-get update
PostgreSQL'in en son sürümünü yükleyin.
Belirli bir sürüm istiyorsanız, 'postgresql' yerine 'postgresql-12' veya benzerini kullanın.
sudo apt-get -y install postgresql
Debian ve ubuntu depolarında, varsayılan olarak PostgreSQL'i içerirdiğini unutmayın. Yani apt paket yöneticisi ile postgres deposuna ihtiyaç olmadanda kurulumu gerçekleştirebilirsiniz. Ancak depo, üçüncü taraf eklentileri de dahil olmak üzere birçok farklı paket içerir. En yaygın ve önemli paketler şunlardır (sürüm numarasını gerektiği gibi değiştirin):
| postgresql-client-12 | istemci kitaplıkları ve istemci ikili dosyaları |
|---|---|
| postgresql-12 | çekirdek veritabanı sunucusu |
| libpq-dev | C dili ön uç geliştirme için kitaplıklar ve başlıklar |
| postgresql-server-dev-12 | C dili arka uç geliştirme için kitaplıklar ve başlıklar |