Sql Komutlarından View Oluşturma

Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi

View Oluşturmak :

 Veri tabanı kavramı içinde teorik olarak mevcut olan view (bakış ) terimi ,farklı kullanıcıların veri tabanına nasıl baktıklarını yada bakış açılarını anlatan terimdir. Bu anlamda bir kullanıcı fiziksel olarak mevcut olan tabloların sadece bir kısmı ile ilgilenir.

 SQL komutlarından view oluşturma VIEW Oluşturmanın Yararları :

 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 brüt maaşlarının herkes tarafından listelenebilir olması mahsurlu olabilir. Bu durumda personel adlı temel tablodan persview adlı bir view oluşturulabilir:

            CREATE VIEW persview

            AS SELECT sicil , sosy_g_no, ad , soyad, dog_tar, adres, cins, böl_no,

 yön_s_g_n

            FROM personel ;

Persview adlı view, herkesin kullnımına açık , personel adlı tablo ise yetkili kişiler dışındakilere, erişilemez hale getirilirse, maaşların herkes tarafından erişilebilir bilgi olması önlenmiş olur.

Bir viewden bilgi listelenmesi temel tablodan bilgi listelenmesinden farklı değildir :

            SELECT *

            FROM persview ;

Persviewden maaşlar hariç tüm personel bilgileri listelenecektir. Bir temel tablodaki aynı sütun isimleri kullanılmak zorunda değildir. 

2-SORGULAMIN DAHA BASİT HALE GELMESİ

 Karmaşık sorgulamalarda, bazı SELECT komutlarının sonuçları diğer SELECT  komutlarında kullanıldığında, sorgulanmanın düzenlenmesinde yanlışlıklar yapma olasılığını artar.

Karmaşık sorgulamalar, View özelliği kullanılarak daha basit hale getirilebilir. Burada temel fikir şudur: Mademki 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 kullanacak başka bir SELECT komutu 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ı ile saklayarak, daha sonra aynı tip sorgulamalar için bu view yapısını kullanarak daha basit ifadeler kullanmak da olasıdır.

ÖRNEK: Satış bölümünde çalışan personelin herhangi birinden daha düşük maaş alan ve mühendislik bölümünde çalışan kişileri listeleyiniz:

ÇÖZÜM:

            SELECT *

            FROM personel

            WHERE brut < ANY

            (SELECT brut

            FROM personel

            WHERE bol_no=2) AND

            Bol_no=1;

(Satış bölümü kodu 2 ve mühendislik bölümü kodu ise 1 kabul ediliyor).

Şimdi bu sorunun cevabı olan tablo bir view olarak saklanırsa:

            CREATE VIEW S1view

            AS SELECT *

            FROM personel

            WHERE brut < ANY

            (SELECT brut

            FROM personel

            WHERE bol_no=2) AND

            bol_no=1;

Bundan sonra aynı tip sorgulama için sadece

            SELECT *

            FROM S1view;

yazmak yeterli olacaktır.

3-Sadece View Kullanılarak Gerçekleşebilen Sorgulamalar

 

Bir tablodan elde edilecek bilgiler için, iki kademeli işlem gerektiren sorgulamalarda, iki 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.

ÇÖZÜM: 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_brut)

            AS SELECT bol_no, AVG (brut)

            FROM personel

            GROUP BY bol_no;

Daha sonra, yaratılan BOL_OR_VIEW yardımı ile (bu view, bölüm noları 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. brut > ort_brut;

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...