Microsoft SQL Dili | ZAFER KARAKUŞ

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.
  • Blogger Post
  • Delicious
  • Facebook
  • FriendFeed
  • Google Bookmarks
  • Technorati Favorites
  • Twitter
  • WordPress
  • Share/Bookmark

Yorum Yapın

Mesajınız