Home / MAKALELER / Veri Tabanı / View Nedir ?

View Nedir ?

Pusula Akademi Oracle grubundan Anıl’ı bu güzel makalesi için tebrik ediyoruz.Anıl’ın yazdığı ikinci makalesi. Devamını bekliyoruz…

 

İlişkisel veritabanların da bilgiler tablolarda saklanır. Bu tabloların 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. Basit bir örnek ile daha anlamlı gelecektir tanımımız, Bunun için 2 birbiri ile ilişkisel tablo oluşturacağız ve data insert edeceğiz:

 

create table taraftarlar

(

id number,

isim varchar2(10)

);

insert into taraftarlar(id,isim) values (1,’Anıl’);

insert into taraftarlar(id,isim) values (2,’Hikmet’);

insert into taraftarlar(id,isim) values (3,’Mustafa’);

 

select * from taraftarlar;

Taraftarlar adında bir tablo oluşturuldu ve üç adet data insert edildi:

 

1anil

 

create table takimlar

(

id number,

kisi_id number,

takim varchar2(10)

);

 

insert into takimlar(id,kisi_id,takim) values (1,3,’Beşiktaş’);

insert into takimlar(id,kisi_id,takim) values (2,1,’Fenerbahçe’);

insert into takimlar(id,kisi_id,takim) values (3,2,’Arsenal’);

 

Takimlar adında bir tablo oluşturuldu ve üç adet data insert edildi:

 

2anil

 

Taraftarlar ve Takimlar tablosun da ortak bir kolon bulunmaktadır o da; taraftalar tablosunda ki id ve takimlar tablosunda ki kişi_id ortak kolon olarak gözükmektedir. Bu iki tabloyu inner join i kullanarak ilişkilendirmesini yapıp daha sonrasında ise view yapısı ile tablonun görünümünü tutacağız, yani:

 

create or replace view adiyok

as

select a.id,isim,b.id takim_id,takim from taraftarlar a,takimlar b

where a.ID=b.KISI_ID;

 

select * from adiyok order by 1 asc;

 

3anil

 

Resimde de gözüktüğü gibi artık taraftarlar ve takimlar tablosunu bir view yapısına çevirdik ve basit sorgular ile istediğimiz sonuçları elde edebiliriz. Bu tablonun bir de yapısını görelim:

 

describe adiyok;

veya

adiyok + F4 ile :

 

4anil

 

Yapılan işlemleri, yani create view yapısını görsel olarak inceleyelim :

 

5anil

 

With Check Option Constraint : Tablonun birebir karakteristik özelliğini alır. Kullanımı :

 

create or replace view benim_view

as

select * from employees

where department_id=90

with check option constraint benim_view_ck;

 

select * from benim_view;

 

 

6anil

 

 

Oracle ın veritabanını kullaranarak With Check Option Constraint özelliğini gördük. With Read Only özelleiği ise, view oluştururken kullandığımız da view ı salt okunur yapar, yani  update, insert gibi işlemleri uygulamamızı engeller. Kullanımı:

 

create or replace view sadece_oku

as

select * from employees

with read only;

 

View, with read only özelliği ile oluşturuldu şimdi de update işlemini kullanarak test edeceğiz:

update sadece_oku

set first_name = ‘Alex’

where employee_id = 101;

 

Çalıştırdığımız da, alttaki uyarıyı alırız.

 

7anil

 

 

Gelişmiş bir örnek ile view konusunu pekiştireceğiz:

 

create or replace view karmasik_join

as

select employee_id kisi_id,first_name isim,max(salary) max_maas,avg(salary) ort_maas,e.department_id,location_id

from hr.employees e,hr.departments d

where e.department_id = d.department_id(+)

group by employee_id,first_name,e.department_id,location_id

having max(salary) > (select salary from hr.employees where employee_id = 115)

order by 1 desc, 2 asc,5;

 

select * from karmasik_join;

 

8anil

 

 

Yukarıda ki kod kümesinde dikkat edilmesi gereken birkaç nokta var;  birinci nokta, group by da kullanılan kolonları inceleyecek olursak group fonksiyonları kullandığımız kolonların dışında kalanları aldık ve having kısmında ki şartta ise employee_id = 115 olan datanın maaşından büyük olanlar yani maaşı 3100 den büyük olan dataları istedik. Son olarak da kendi koymuş olduğumuz kıstaslara göre de bir sıralama yaptık ve 77 data yı bu işleme dahil ettiğimizi resimdeki gibi gördük.

View yapısını size, birkaç basit örnek ile anlatmaya çalıştım umarım faydalı olmuştur, bir sonraki GROUP BY & HAVING konulu makalem de görüşmek dileği ile… Anıl ERDOĞAN

 

About Yusuf Arslan

Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerine Datawarehouse-Database Uzmanı olarak devam etmektedir Sitenin kurucusu ve yazarıdır. yusufarslanbm@gmail.com adresinden bana ulaşabilirsiniz.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın