PostgreSql,
PostgreSQL Inc. şirketi tarafından desteklenen,
açık kaynak kod uygulamalı bir veri tabanı sistemidir. Kullanıcı tanımlaması
yapılabilen, SQL ile her türlü sorgulama desteği olan postgresql birçok yazılım
dili ile uyum içinde çalışabilmektedir. C, C++, JAVA, PHP, PERL, .NET, PYHTON
programlama dilleri bunların önemlileri olarak sıralanabilmektedir.
PostgreSQL,
iyi performans veren, geniş özelliklere sahip ve güvenli bir veritabanı
sistemidir. Ücretsiz ve açık kaynak olması tercih edilmesinin en büyük
nedenleri olarak gösterilebilmektedir. Tüm Unix tabanlı işletim sistemlerinde
çalışabilmektedir. Ayrıca Lunix, FreeBSD ve Windows işletim sistemlerinde de
çalışmaktadır.
Bir
yazılım uzmanı kendine, neden postgreSQL kullanmalıyım? diye bir soru sorarsa
bunun cevabı, açık kaynak bir uygulama olması, güvenli, geniş bir geliştirici
yazılımcı grubunun olması, birçok platformda ve değişik arayüzlerde çalışabilir
olması ve diğer veritabanlarından daha geniş özelliklere sahip olması (MYSQL,
SQLite, Access) gibi maddeler ile sıralanabilir. Ayrıca SQL işlemleri,
phppgadmin üzerinden, SQL bilgisine gerek olmadan da yapılabilmektedir. Bu da
büyük bir zaman avantajı sağlamaktadır.
PostgreSQL
içerisindeki bir veritabanı üzerinde bulunan tablo, maksimum olarak 64 TB veri
depolama kapasitesine sahiptir ki bu da bir tablo için oldukça büyük bir
ölçüdür. Bu özellik neredeyse sınırsız satır (row) ölçüsü sunmaktadır. Durum
böyle olunca sınırsız bir veritabanı depolama kapasitesinden bahsetmek pek de
yanlış olmayacaktır.
Tanınmış
birçok kurum ve kuruluşlar tarafından kullanılan bu sistemi kurabilmek için postgresql.org sitesinin download
bölümünden gerekli programı, sahip olduğunuz işletim sistemine göre seçip
bilgisayarınıza indirebilmektesiniz. İndirilen program çalıştırılıp kurulma
işlemi gerçekleştirildikten sonra, herhangi bir internet tarayıcısına localhost:8080/phppgadmin yazıp, bu
veritabanına bağlantının ilk adımını atmış olacaksınız.
phppgadmin, sisteme ilk defa giriş ekran görüntüsü |
Yukarıda görülen ekran görüntüsü, phppgadmin veritabanı sistemine, ilk girişi
göstermektedir. Gerekli tanımlama işlemini gerçekleştirebilmek için kullanıcı
adı postgres olarak, şifre bilgisi
ise program kurulumu sırasında girilen şifre olarak belirlendikten sonra giriş
yapılacak ve aşağıdaki görüntü elde edilecektir.
phppgadmin
giriş sayfası
|
Yukarıdaki
ekran görüntüsü elde edildikten sonra artık phppgadmin veritabanı kullanılmaya
hazır bir sistem olarak beklemektedir. PostgreSQL’in en önemli özelliklerinden
biri, phppgadmin üzerinden SQL sorguları yapılabildiği gibi, postgreSQL arayüzü
üzerinden de işlem yapılabilmesidir. Zira tüm yetkiler düzenlenip tüm
veritabanına bağlanılabilmektedir.
phppgadmin
üzerinden yeni bir veritabanı yaratmak
|
Yukarıda görülen ekran görüntüsü phppgadmin üzerinden veritabanı oluşturma
yolunu göstermektedir. Sol tarafta bulunan PostgreSQL ana veritabanına
tıklandığında yukarıdaki görüntü elde edilecek ve Veritabanı yarat ibaresi ile de yeni bir veritabanı
yaratılabilmektedir.
Biz phpservisi adında bir veritabanı oluşturalım.
Fakat bunu phppgadmin üzerinden değil de postgreSQL arayüzü üzerinden
oluşturalım. Zira SQL kullanarak uygulama yapmak her zaman daha büyük bir
tecrübe kazanmaya ortam yaratacaktır.
postgreSQL
üzerinden tablolara erişim
|
Yukarıda
görüntülenmekte olan ekran çıktısı, postgreSQL arayüzüdür. Bu program sayesinde
phppgadmin içerisindeki her türlü işlem yapılabilmekte ve veriler
görüntülenebilmektedir.
Veritabanı
üzerinde çalışmak için artık SQL kullanma zamanı geldi. Programın yukarısında
görülen SQL ifadesi tıklanarak yeni bir tablo oluşturalım.
postgreSQL arayüzü üzerinden yeni bir tablo oluşturmak |
Yukarıda görülen SQL kodları ve sonuç raporu görüntüsüdür. phpservisi adında,
id ve konu sütunlarına sahip bir tablo oluşturulmuştur. phppgadmin sayfasına
giriş yapılıp kontrol edildiğinde, veritabanı içerisinde phpservisi adında bir
tablo oluşturulduğu görülecektir.
Bu
oluşturulan tablo içerisine veri ekleme işlemi, bilindiği gibi SQL’in INSERT
komutu ile yapılacaktır.
phpservisi tablosuna veri ekleme işlemi |
Yukarıdaki
işlem, phpservisi tablosuna PHP,
HTML, AJAX, SQL sözcüklerini eklemeyi sağlamaktadır. Apache sunucusu
çalıştırılıp phppgadmin incelendiğinde, phpservisi tablosu içerisine eklenen verilerin
listelendiği görülecektir.
phppgadmin üzerinden inceleme |
Eklenen
verileri postgreSQL arayüzü ile SQL’in SELECT komutu sayesinde listeleyelim:
postgreSQL arayüzü ile SELECT kullanımı |
Yukarıda görüldüğü gibi, veriler SELECT vasıtasıyla listelenmektedir. SQL
sorgulama işlemleri ile yapılabilen her olay postgreSQL arayüzü üzerinden
uygulanabilmektedir. Bunun zaman kaybını önlemesi ve pratik olması oldukça
önemli bir kolaylıktır.
Son
olarak veri güncelleme ve silme işlemleri üzerinde duralım. Klasik UPDATE ve
DELETE SQL komutları ile bu işlemleri gerçekleştirmek mümkün olacaktır.
postgreSQL üzerinden UPDATE işlemi |
postgreSQL üzerinde DELETE işlemi |
PHP ile PostgreSQL
Buraya
kadar postgreSQL’in ne olduğunu, phppgadmin içeriğini ve ara yüz üzerinden
yönetilmesini gördük. Fakat bütün bunları öğrendikten sonra bu performansı
yüksek veritabanının PHP ile ilişkilendirmesinin nasıl olacağını bilmemek
olmaz. Bu bölümde PHP’nin postgreSQL eklentisine ait fonksiyonları ve bunlar
ile ilgili örnekleri inceleyeceğiz.
PHP ile postgreSQL Bağlantısı :
pg_connect()
PHP
programlama dili, postgreSQL veritabanı ile ilişkilendirilebilmesi için bir
kütüphane barındırmaktadır. Bu kütüphanede ise çeşitli fonksiyonlar
bulunmaktadır. pg_connect()
fonksiyonu bunlardan biridir. PHP ile postgreSQL arasındaki bağlantıyı
sağlamaktadır.
pg_connect()
Yapısı
pg_connect(“host=host
dbname=veritabanı port=port user=kullanıcıadı password=şifre”)
Bu
fonksiyon yukarıdaki yapı çerçevesinde kullanılır. Parametrelerin her birini
kullanma zorunluluğu yoktur. Gerekli bilgiler ışığında sadece veritabanı adı,
ya da buna ek olarak kullanıcı adı, şifre vs gibi bilgiler de
kullanılabilmektedir.
Bağlanılmak
istenen server ve veritabanı bilgileri girilen pg_connect() Yapısı
pg_connect(“host=host
dbname=veritabanı”)
Bağlanılmak
istenen veritabanı bilgisi girilen pg_connect() Yapısı
pg_connect(“dbname=veritabanı”)
localhost
üzerinden phpservisi isimli veritabanına 5432 port numarası ile kullanıcı adı
php ve şifresi 12345 olan php bağlantısının pg_connect() Yapısı
pg_connect(“host=localhost
dbname=phpservisi port=5432 user=php password=12345”)
PostgreSQL Bağlantısını
Sonlandırmak : pg_close()
Daha
önce yapılan PHP – PostgreSQL bağlantısını sonlandırmak için pg_close() fonksiyonu kullanılmaktadır.
pg_close()
Yapısı
pg_close($baglanti)
Mevcut
bir bağlantıyı sonlandırmak
<?php
$baglan
= pg_connect("host=localhost port=5432 dbname=phpservisi");
echo
"Bağlantı Mevcut";
if (pg_close($baglan)
== 1) {
echo "Bağlantı Başarıyla
Sonlandırıldı!";
}
else {
echo "Bağlantı Sonlandırılamadı!";
}
?>
Diğer Fonksiyonlar
SQLite
veritabanında gördüğümüz fonksiyonların MYSQL fonksiyonları ile ne derece
benzerlik gösterdiğini hatırlayabiliriz. PostgreSQL’de de durum bundan
farksızdır. İsim olarak benzerlik gösteren fonksiyonlar, işlev olarak da
benzerlik göstermektedirler.
PostgreSQL ve MYSQL Fonksiyonlarının benzerlikleri
Mysql Fonksiyonları
|
PostgreSQL
Fonksiyonları
|
mysql_connect()
|
pg_connect()
|
mysql_query()
|
pg_query()
|
mysql_result()
|
pg_result()
|
mysql_fetch_row()
|
pg_fetch_row()
|
mysql_fetch_array()
|
pg_fetch_array()
|
pg_query()
Bu
fonksiyon, mysql_query() ya da sqlite_query() fonksiyonlarında olduğu
gibi, SQL’den gelen sorguyu PHP ile ilişkilendirmektedir.
pg_query()
Yapısı
$sonuc
= pg_query($baglanti, $sql)
$sql
ile döndürülmek istenen sorgu iletilemez ise hata mesajı gösterilecektir. Bu
durumda pg_ErrorMessage() fonksiyonu
işlem görebilmektedir.
Uygulama
Bir
veritabanı ile yapılacak işlemler SQL sorgulama dilinin gücüyle orantılıdır.
Bir veritabanı yaratılıp, içerisinde tablolar oluşturmak ve bu tabloların
içerisine veri eklemek, silmek, güncellemek ya da görüntülemek gibi işlemleri
gerçekleştirmek suretiyle, sonsuz işlem yapma imkanı vardır.
Bu
uygulamada PHP ile PostreSQL arasındaki bağlantıyı sağladıktan sonra SQL’in
gücü ile işlemler yapacağız.
Verilerin
depolanacağı tabloyu veritabanında oluşturacak SQL kodunu yazalım.
veriler
tablosu
CREATE
TABLE veriler (
id
integer primary key,
veri
text not null
);
Oluşturulan
veriler tablosuna veri eklemek için veriler.sql
dosyasını içeri aktarmak gerekecektir. INSERT deyimi ile veri ekleme işlemi hazırlanmıştır.
veriler.sql
INSERT
INTO veriler(id,veri) values('1' ,'PHP');
INSERT
INTO veriler(id,veri) values('2' ,'ASP');
INSERT
INTO veriler(id,veri) values('3' ,'AJAX');
INSERT
INTO veriler(id,veri) values('4' ,'HTML');
INSERT
INTO veriler(id,veri) values('5' ,'SQL');
veriler tablosu |
Uygulama : PostgreSQL veritabanına bağlantı kontrolu – kontrol.php
<?php
$baglanti
= pg_connect("dbname=veritabanı user=postgres");
if($baglanti
== 1 ) {
echo "Bağlantı Başarıyla Yapıldı!";
}
else
{
echo "Bağlantı
Sağlanamadı!";
}
?>
Uygulama : PostgreSQL veritabanından veri çekmek – veriler.php
<?php
$baglanti
= pg_connect("dbname=veriler user=postgres");
$veriler
= pg_query($baglanti,"SELECT * FROM veriler");
while(listele
= pg_fetch_array($veriler)) {
$id=$listele["id"];
$veri=$listele["veri"];
echo "id -> $veri";
}
?>
Görüldüğü
gibi, MYSQL fonksiyonları ile yapılan işlemin benzer bir görüntüsü
postgreSQL’de de uygulanabilmektedir. Birbirine çok benzeyen fonksiyon isimleri
de, mysql bilgisi olan ve php ile etkileşim sağlamış deneyimli kullanıcılar
için büyük kolaylık sağlamaktadır.
Bir sonraki yazıda görüşmek üzere!
Bu yorum yazar tarafından silindi.
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSil