SQL Dili – 1

Bilgisayar ortamında veri saklama ve erişiminde geçmişten günümüze insanoğlu değişik yöntemler, yaklaşımlar kullanmıştır. Bunlardan Gelenksel Yaklaşım (Dosya – İşlem Sistemi) verileri ayrı ayrı dosyalarda gruplamaya dayanır. Bir biriyle ilgili olan ve aynı gruba dahil olan veriler bir dosyada, bir başka gruba dahil olan veriler de başka bir doyada tutulurdu. Geleneksel Yaklaşımın birçok sakıncası vardır ve bu sakıncaların beraberinde getirdiği sorunların üstesinden gelebilmek için de Veri Tabanı Yaklaşımı zamanla Geleneksel Yaklaşımın yerini almıştır.

Geleneksel Yaklaşımın (Dosya – İşlem Sistemi) Sakıncaları

  • Veri tekrarı ve veri tutarsızlığı
  • Verinin paylaşılamamsı
  • Uygulamalardaki her yeni gereksinimin ve değişikliğin yalnız uzman kişiler tarafında karşılanabilmesi
  • Veriye erişim ve istenen veriyi elde etme güçlükleri
  • Karmaşık veri saklama yapıları ve erişim yöntemlerini bilme zorunluluğu
  • Bütünlük (integrity) sorunları
  • Güvenlik, gizlilik sorunları
  • Tasarım farklılıkları, standart eksikliği
  • Yedekleme, yeniden başlatma, onarma gibi işletim sorunları

Veri Tabanı Yaklaşımının Yararları

  • Ortak verilerin tekrarının önlenmesi; verilerin merkezi denetiminin ve tutarlılığının sağlanması
  • Veri paylaşımının sağlanması
  • Fiziksel yapı ve erişim yöntemi karmaşıklıklarının, çok katmanlı mimarilerle kullanıcılardan gizlenmesi
  • Her kullanıcıya yalnız ilgilendiği verilerin, alışık olduğu kolay, anlaşılır yapılarda sunulması
  • Sunulan çözümleme, tasarım ve geliştirme araçları ile uygulama yazılımı geliştirmenin kolaylaşması.
  • Veri bütünlüğünün için gerekli olanakların sağlanması, mekanizmaların kurulması
  • Güvenlik ve gizliliğin istenilen düzeyde sağlanması
  • Yedekleme, yeniden başlatma, onarma gibi işletim sorunlarına çözüm getirilmesi

SQL – Tarihçe

Veri Tabanı Yaklaşımı ile birlikte bir veri sorgulama diline veya aracına ihtiyaç duyulmuştur. İlk başta matematiksel bir sözdizimine sahip olan SQUARE adlı bir dil geliştirilimiştir. Geniş kullanıcı kitleleri tarafında kolay kullanılabilmesi için matematiksel söz dizimli SQUARE dilinden vazgeçilerek, İngilizce’ye benzer sözdizimine sahip bir dil oluşturulmuş ve SEQUEL (Structured English QUEry Language) olarak adlandırılmıştır. Daha sonra da bu SEQUEL dili, İngilizce söylenişine paralel olarak SQL olarak adlandırılmıştır.

SQL dili ilişkisel alanda büyük ilgi görmüş ve İlişkisel Veri Tabanı Yönetim Sistemlerinin (VTYS) tümünde yer alan atandart dil görünümü kazanmıştır. Bu nedenle Veri Tabanı konusunda çalışan tüm bilişim teknik personeli tarafından bilinmesi gereken bir dil konumundadır.

SQL – Veri Tanımlama Olanakları

SQL veri tanımlama deyimlerinden başlıcaları şunlardır:

CREATE TABLE

ALTER TABLE

DROP TABLE

CREATE VIEW

DROP VIEW

CREATE INDEX

DROP INDEX

CREATE TABLE

CREATE TABLE tablo_adı
        (nitelik1 tür1 [DEFAULT ifade] [NOT NULL], ...nitelikN
        [[CONSTRAINT kısıt_adı] CHECK durum1, ...durumN] )

ALTER TABLE

        ALTER TABLE tablo_adı [*] ADD COLUMN nitelik tür
        ALTER TABLE tablo_adı [*] RENAME [COLUMN] nitelik1 TO nitelik2
        ALTER TABLE tablo_adı1 RENAME TO tablo_adı2

DROP TABLE

        DROP TABLE tablo_adı1, ...tablo_adıN;

CREATE VIEW

        CREATE VIEW görüş_adı AS
        SELECT [DISTINCT [ON nitelikN]]
        ifade1 [AS nitelik1], ...nitelikN
        [FROM tablo_adı1[,...tablo_adıN]]
        [WHERE koşul]
        [GROUP BY grup_listesi];

DROP VIEW

    DROP VIEW görüş_adı

CREATE INDEX

        CREATE [UNIQUE] INDEX indis_adı ON tablo_adı [USING erişim_yöntemi]
        ( nitelik1 [tür_sınıfı1], ...nitelikN | işlevadı(nitelik1, ...) 
        [tür_sınıfı] )

DROP INDEX

        DROP INDEX indis_adı  

SQL – Veri İşleme Olanakları

SQL veri işleme deyimlerinden başlıcaları şunlardır:

SELECT Deyimi
UPDATE Deyimi
INSERT Deyimi
DELETE Deyimi

SELECT Deyimi

        SELECT [DISTINCT [ON nitelikN]] ifade1 [AS nitelik1], ...ifadeN
        [INTO [TEMP] [TABLE] tablo_adı]
        [FROM tablo_listesi]
        [WHERE koşul]
        [GROUP BY grup_listesi]
        [HAVING having_cümleciği]
        [ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...]
        [ORDER BY nitelik1 [ASC|DESC] [USING işleç1], ...nitelikN ]
        [FOR UPDATE [OF tablo_adı...]]
        [LIMIT sayı [OFFSET|, sayı]]

UPDATE Deyimi

        UPDATE tablo_adı SET nitelik1 = ifade1, ...nitelikN = ifadeN
        [FROM tablo_listesi]
        [WHERE koşul]

INSERT Deyimi

        INSERT INTO tablo_adı [(nitelik1, ...nitelikN)]
        VALUES (ifade1,..ifadeN) |
        SELECT [DISTINCT [ON attrN]]
        ifade1, ...ifadeN
        [FROM tablo_listesi]
        [WHERE koşul]
        [GROUP BY grup_listesi]
        [HAVING having_cümleciği]
        [ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...]

DELETE Deyimi

        DELETE FROM tablo_adı [WHERE koşul]
 


PostgreSQL Veri Tabanı Yönetim Sistemi

PostgreSQL Nedir?

PostgreSQL; alt sorgu, işlem bilgi (transaction), kullanıcı-tanımlı tür ve işlevler gibi SQL dilinin hemen hemen tüm yapılarını destekleyen, Nesne-İlişkisel Veri Tabanı Yönetim Sistemidir. Kaynak kodu açıktır ve PostgreSQL Inc. şirketi tarafından ticari destek de sağlanmaktadır. Bugünkü güncel sürümü 6.5.2’dir.

İlişkisel VTYS Olarak Yetenekleri Nelerdir?

  • SQL92/SQL3 dili deste[i
  • işlembilgi bütünlüğü (transaction integrity)
  • tür genişleyebilirlişi (type extensibility)
  • sınıf tanımlama (classes)
  • kalıtım (inheritance)
  • işlevler (functions)
  • kısıtlamalar (constraints)
  • tetikleyiciler (triggers)
  • kurallar (rules)
  • indisler (indexes)

İlişkisel VTYS Olarak Eksikleri Nelerdir?

  • Yabanci (Ikincil) Anahtar tanimlayamama.
  • 8 KB’tan büyük sorgulari isleyememe.

PostgreSQL Nasıl Çalışır?

  • PostgreSQL çok kullanıcılı ard ucu: Belirli bir porttan PostgreSQL’e gelen istemleri ele alır. İstem gelir gelmez fork() sistem çağrısını kullarak PostgreSQL tek kullanıcılı ard ucuna istemi devreder. Sistem üzerinde “postmaster” adıyla bulunur.
  • PostgreSQL tek kullanıcılı ard ucu: İstemci ile doğrudan bir etkileşim içindedir ve istemcinin tüm istemlerine cevap verir. Varsayılan olarak en fazla 32 adet tek kullanıcılı ard uc aynı anda hizmet verebilir. Bu sayı çok kullanıcılı ucun çalıştırılması esnasında bir parametre ile azami 1024 değerine çıkartılabilir (postmaster -N 1024). Sistem üzerinde postgres adıyla bulunur.
  • PostgreSQL port numarası: Varsayılan değeri 5432’dir ve PostgreSQL çok kullanıcılı ard ucuna çalıştırılması esnasında verilen parametre (postmaster -p 8355) ile değiştirilebilir.
  • PostgreSQL’in kullandığı protokoller: Hem UDP hem de TCP/IP kullanmaktadır. Genelde yerel veri tabanı bağlantılarında UDP uzak veri tabanı bağlantılarında da TCP/IP kullanır.
  • PostgreSQL Arayüzleri: Herhangi bir sistemde çalışan PostgreSQL ard ucuna bağlanan ve kullanıcı yazılımları için bir arayüz oluşturan yordam kitaplıklarıdır.
Share

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.