ben

OMÜ , Bilgisayar Mühendisliği, 13'

27 Mayıs 2013 Pazartesi

Constraints, View ve Indeks 1

Ön Bilgi

1. Kısıtlar: Veritabanı üzerinde iş kurallarını zorunlu kılmak ve tablolar arasında ilişki kurarak veri bütünlüğünü sağlamak amacıyla oluşturulur. ( Postgresql kısıtlamaları; check, not null, unique, primary keys  )  Diğer VTYS sistemlerinde de benzer kısıtlar vardır.



1.1 SQL Primary key: Tablolarda arama yapmamızı kolaylaştırır.Tekrarlanamaz.Aynı primary keyi tekrar kullanmamızı engeller.
1.2  SQL Foreign key: Aynı tabloda iki sütun arasında bir ilişki veya farklı tablolar arasında ilişki kurar. Bir veya daha fazla sütun Yabancı anahtar olarak tanımlanabilir.
1.3 SQL Not Null Constraint: Girilen Degerin Boş olmamasını sağlar.Kullanıcı boş bırakamaz..
1.4 SQL Unique Key: Bu sınırlama her satır veya sütun ayrı bir değere sahip olmasını sağlar. Sütun (lar) değerleri çoğaltılamaz . Ancak boş değer ama olabilir.(primary keyden farkı budur)
1.5 SQL Check Constraint : Bu kısıtlama bir kolon üzerinde bir iş kuralı tanımlar. Tüm satırlar bu kural yerine getirmek zorundadırlar. Kısıtı tek bir sütun veya sütun grubu için uygulanabilir.

2.View Kullanımı:View’ lar hazırlanmış sql cümleleri olarak bilinir. Sadece çağırıldıklarında veri kümesini üretirler. Veritabanı programcılığında önemlidir. Sql komutlarından view oluşturma ve faydaları:

 2.1. Veri güvenliği: Veri tabanı içinde bulunan tablolardaki bazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.Örneğin, personelin maaşlarının herkes tarafından listelenebilir olması mahsurlu olabilir. Bu durumda, Personel adlı temel (base) tablodan, persview adlı bir view oluşturulabilir.Bir temel tablodan bir view oluşturulurken, temel tablodaki aynı sütun (alan) isimlerini kullanmak zorunda değildir.

2.2. Sorgulamanın daha basit hale gelmesiKarmaşık sorgulamalarda, bazı SELECT komutlarının sonuçları diğer SELECT komutlarınca kullanıldığında, sorgulamanın düzenlenmesinde yanlışlıklar yapma olasılığı artar.    Karmaşık sorgulamalar, VIEW özelliği kullanılarak daha basit hale getirilebilir. Burada temel fikir şudur: Madem ki bir view, bir sorgulama sonucu elde edilen bilgiyi (tabloyu) isimlendirerek elde edilen bir virtüel tablodur; o halde karmaşık SELECT komutu içinde, sonucu kullanılacak başka bir SELECT komutu kullanmak yerine, bu sonucu bir view olarak isimlendirerek, view adını kullanmak. Bazı durumlarda ise, işletmenin veri tabanı uygulamasında çok sık olarak sorulan karmaşık soruları bir view yapısı içinde saklayarak, daha sonra aynı tip sorgulamalar için bu view yapısını kullanarak daha basit ifadeler kullanmakta olasıdır.

2.3.Sadece view kullanılarak gerçekleşebilen sorgulamalar: Bir tablodan elde edilecek bilgiler için, iki kademeli işlem gerektiren sorgulamalarda, ilk adımda bir view oluşturup ikinci adımda esas sorgulamayı bu view yardımı ile gerçekleştirmek, çoğu kez kaçınılmaz bir durumdur.     
       Aşağıdaki soru ve bunun çözümü olan SQL ifadeleri bu konuda bir fikir verecektir:
       Örnek: Her bölümde, o bölümdeki ortalama maaştan daha yüksek maaş alanları listeleyiniz. Bu sorunun cevaplandırılması için önce her bölümdeki ortalama maaşların bulunması gereklidir.

CREATE VIEW BOL_OR_VIEW(bol_no,ort,maas)
AS SELECT bol_no,AVG(maas)
FROM Personel
GROUP BY bol_no;
 
Daha sonra, yaratılan BOL_OR_VIEW yardımı ile (bu view, bölüm no’ları ve bölüm ortalama maaşlarını saklamaktadır) sorulan sorunun cevabı elde edilebilir:

SELECT *
FROM Personel
WHERE bol_no=BOL_OR_VIEW.bol_no
. AND.maas>ort_maas;

3. Indexler:

    Bir index, veri tabanı ortamında bir tablo ya da bir view gibi bir nesnedir ve ilişkili olarak kullanıldığı tablo ya da view’deki satırların, indexleme alanı (key field (anahtar alan)) olarak kullanılan kolondaki verilere göre sıralanmış biçimde işleme sokulmasını (listeleme ya da arama işlemi) sağlar.Bir tablo, indexlenmiş ise, bu tablo içinde gerçekleştirilecek bir arama (search) ya da koşullu listeleme (SELECT komutu ile) işlemi çok daha hızlı biçimde gerçekleştirilebilecektir.

3.1 Index Yaratma:SQL’de bir tablo ile ilşkili olarak index yaratmak için gerekli komut CREATE INDEX komutudur. Komutun yazılış biçimi aşağıdaki gibidir:
      CREATE INDEX index adı
      ON tabloadı (kolonadı 1,kolonadı 2,....,kolonadı n );

3.2 Tek bir alana göre artan sırada indexleme:İşletmede çalışan personeli maaşlarına göre artan sırada listelemek istersek, maas alanına göre bir index oluşturmalıyız.
     CREATE INDEX pers_maas
      ON Personel (maas);

3.3 VeriTabanından Index Kaldırmak:  Drop index  index_name



Hiç yorum yok: