2 Temmuz 2010 Cuma

SQL'DE VİEW(SANAL TABLO) OLUŞTURMAK

View ler hangi durumlarda kullanılır,faydaları nelerdir?
Yapacağınız sql işleminde birden fazla tabloyu ve onların farklı farklı colonlarını kullanacaksınız,hepsini birleştirmek ,gerekli tablodan sorgu yapmak biraz zahmetli bir iş olabilir,bunun yerine view denen sanal tablolardan oluşturup,gerekli colonları farklı tablolardan alıp sorguları tek bir tablo üzerinden yapmak işinizi kolaylaştırailir.Karmaşık sorgular kolay bir hale gelmiş  olur.Ayrıca view kullanmanın çok önemli nedenlerinden bir tanesi sağladığı güvelikler.Tablolarınızın tamanının görünmesini istemediğiniz zamanlarda  sanal tablo kullanıp tablolarınızın tamamının görünmesini engelleyebilirsiniz.
View ler üzerinde yapılan değişikler kendilerini oluşturan kaynak tabloları da etkiler,aynı değişiklikler kaynak tablolara da yansır.
Oluşturulan Viewler  resimde görüldüğü gibi  Object Explorer kısmında ana başlık altında toplanır


Viewler nasıl  oluşturulur?
create view vw_viewAdi
 --tavsiye olunur ki oluşturulan view adları vw_ ile başlasın,böylece veri tabanınıza yeni bakan biri onun view olduğunu kolayca alsın

as
select kolonAdi from tabloAdi
where şart

with check option
view oluştururken with check point ifadesi yazılırsa,tanımlamadaki where şartı muhafaza edilmiş olur where şartı dışındaki insert,update,delete işlemleri yapılmaz hata verir

                
create view vw_DogruHazirlanmisView
as
select firstname,lastname
from Employees
where FirstName like 'a%'
with check option

insert into vw_DogruHazirlanmisView values('derya','dd')
--eklenme yapılmak istendiğinde hata verir
hata:The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint.(with check pointten dolayı 'a' ile başlamayan bir ekleme yapılamaz)

with Schemabinding
Viewin oluşturulduğu kaynak tablo üzerinde değişiklik yapılmasına izin vermeyecek.


create  view vw_CokUgrastim
with schemabinding          --sütunla ilgili bir değişiklik yapılamıyor
as
select firstname,lastname,city
 from dbo.employees  --dbo. olmalı
drop table Employees          --yazıldığında hata verir
hata:Could not drop object 'Employees' because it is referenced by a FOREIGN KEY constraint.


with encription(gizli view)
Kaynekların  gizliliğini sağlayan koddur,kullanıcı sadece oluşturulan view ile ilgili verilere erişebiliyor,kaynak tablolarla ilgili hiç bir bilgiye ulaşamıyor.



create view vw_Benim
with encryption   --kaynak görmeme,design aktif değil
as
select * from products


Resimde de görüldüğü gibi gizli view kullanıldıktan sonra viewin üstünde kilit işareti olur ve 'modify' seçeneği aktiif değildir.


DERYA GÜNDÜZ

6 yorum:

Sinan TECER dedi ki...

Merhabalar çok güzel bir paylaşım, teşekkür ediyorum :)

DERYA GÜNDÜZ dedi ki...

faydalı olmuşsa ne mutlu:)

Adsız dedi ki...

ecryption edilmil bir viewi görüntülem mümkün mü, syadmin üzerinden table üzerinden görmek mümkün deniyor ama nasıl olacağı konusunda bir bilgi yok. yardımcı olurmusunuz. yapmış olduğum bir viewi yedeklemedim ve açmam gerekiyor.

Adsız dedi ki...

Sql Decrypter ile açabilirsin
aynı zamanda procedure,function ve triggerler için

Adsız dedi ki...

Merhabalar Derya hanım. Çok güzelsiniz.

Adsız dedi ki...

merhaba abla makalenden çok etkilendik sizi seviyoruz :***

 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri