|
|
![]() |
tekzaf@yahoo.com |
İlikisel veritabanlarında bilgiler tablolarda saklanır. Bu tabloların kesişimi,birleşimi ile View'ler oluşturulabilir. View'ler veri tutmaz. Sadece tabloların bir 'görünümü'dür. View aslında sanal bir tablodur. Örneğin bir view iki tablonun birleşimi olabilir. Bir örnek verelim.
A tablosu id isim kod 1 ali 02 2 veli 03 3 zafer04 B tablosu id kisi_id lakap 1 3 boga 2 1 okuz 3 2 bond
Burada iki tablo var. Bu iki tablo A.id ve B.kisi_id alanları ile birbiriyle ilişki kurulmuş. Bir kişi hakkında tüm bilgiler aşağıdaki gibi bir view'da gösterilebilir.
id isim kod lakap 1 ali 02 okuz 2 veli O3 bond 3 zafer 04 boga
Görüldüğü gibi iki tablonun birleşik bir görünümü elde edildi.
SQL Server ile bir database yaratıldığı zaman Views klasörü oluşturulur. Bu Views içinde View'ler yaratılabilir. Sağ tıklayıp New View ile bir view yaratıır. Yukarıdaki örnekteki view kodu açağıdaki gibi olur.
select A.*,B.lakap as lakap from A join B ON A.id=B.kisi_id
A.id ile B.kisi_id'i bağladık. A'nın tüm sutunlarını ve B'nin lakabını aldık. Sonuç olarak
id isim kod lakap ----------- ---------- ---------- ---------- 3 zafer 04 boga 1 ali 02 okuz 2 veli 03 bond
tablosu üretilmiş oldu.
Daha sonra bu view ile sorgu yapabiliriz. Örneğin zafer isimli kişinin lakabını bulalım. Bu view'in adı Kisi olsun.
select lakap from Kisi where isim='zafer'
Bu sorgu ile zafer adlı kişini lakabını bulmuş oluruz. Görüldüğü gibi join yapmamız gerekmedi. Zaten Kisi view'ında join yapmıştık.
Sadece isim lakap çiftinden oluşan bir view'de yapabiliriz.
select A.isim as isim,B.lakap as lakap from A join B ON A.id=B.kisi_id
Sonuç olarak View'lar birden fazla tablodan daha kolay veri almak için kullanılır. Program içinde yazılan kod daha basit olur. Yine tablolardaki bazı sütünlar gizlenebilir. Oluşturulan view'e bu sütun koyulmayabilir. View'ler bir çeşit istatistik olrakta kullanılabilir. Örneğin bir tabloda kaç üye var gibi bilgiler bir view'e yazılabilir. View'ların bir yararıda gereksiz bilgilerden bizi kurtarmaktır. Tabloları birbirine bağlayan id'ler View'lerde gösterilmeyebilirler.
|
|