Veritabanı Tasarımı Görünüm Oluşturma Görünüm Oluşturma Konular • Görünümlerin veritabanı yönetici bakış açısından üç kullanımın listelenmesi • Bir iş perspektifinden, bir veya daha fazla tablodan elde edilen verilerin mantıksal alt kümelerini oluşturabilmenin ve kullanabilmenin neden önemli olduğunu açıklama • Alt sorguda tek bir ana tablo kullanılarak sütun takma adlı ve adsız bir görünüm oluşturma • İki tablodaki değerleri görüntülemek için grup fonksiyonlarını içeren karmaşık bir görünüm oluşturma • Bir görünümden veri alma 2 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Amaç Geçmişe dönüp Oracle Academy öğrencisi olarak neler öğrendiğinize bir bakın. Bu dersi almayan bir öğrenciye göre neler biliyorsunuz bunu düşünün, daha kolay olacaktır. Bilgi edindiğiniz düzey sadece bir kaç taraftan anlaşılmaktadır. Şimdi, kendinizi bir işin Veritabanı Yöneticisi olarak hayal edin. Bir yöneticinin şirketin veritabanını kullanarak verileri girebilmesini ve verilere ulaşabilmesini mümkün hale getirmek için ne yaparsınız. "Bunu çok karmaşık yapmayın; sadece tüm işlemler ile ilgili rapor hazırlayabilmeyi istiyorum." 3 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Amaç Çalışanların şirketin tüm verilerine erişimi yetkisi olmalı mıdır? Birleştirme durumlarını içeren komutları nasıl çalıştıracaklardır? Herhangi birinden veri girişi sağlamak akıllıca mıdır? Bunlar veritabanı yöneticisi olarak masıl cevaplayacağınızı bilmeniz gereken sorulardır. Bu bölümde özel kullanıcı gereksinimlerini karşılamak için özelleştirilmiş tablo sunumları olan görünümleri nasıl oluşturacağımızı öğreneceğiz 4 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Görünümlerin dayandığı tablalar esas tablo olarak adlandırılır. Bir görünüm veri sözlüğünde bir SELECT ifadesi olarak tutulur. 5 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünümlerden Neden Kullanılır? • Görünümler esas tablo verilerine erişimi kısıtlar çünkü görünüm tablodan seçilmiş sütunları gösterebilir. • Görünümler daha karmaşık SELECT ifadelerine dayalı çalıştırılan sorgulardaki karmaşıklığı azaltmak için kullanılır. Örneğin, görünümü oluşturan kullanıcı, çoklu tablodan veri getiren join ifadeleri oluşturabilir. Görünümü kullanan, altta yatan kodu ve nasıl oluşturulduğunu bilemez. Kullanıcı görünüm aracılığı ile basit sorgular kullanarak veritabanı ile etkileşim kurar. 6 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünümlerden Neden Kullanılır? • Görünümler, kullanıcılar için veri bağımsızlığı sağlayarak birkaç tablodan veri getirmek için kullanılabilir. Kullanıcılar aynı veriye farklı yollarla bakabilir. • Görünümler kullanıcı gruplarının sahip oldukları izin ve kriterlere göre veriye erişimini sağlar. 7 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Oluşturma Bir görünüm oluşturmak için, CREATE VIEW ifadesi içine bir alt sorgu gömülür. Görünüm ifadesinin sözdizimi şu şekildedir: Örnek: 8 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Oluşturma 9 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Oluşturma OR REPLACE FORCE Var olan görünümü tekrardan oluşturur. Esas tablolar mevcut olsa da olmasa da görünümü oluşturur. NOFORCE Esas tablolar mevcut ise görünümü oluşturur. view_name alias Görünümün adını belirler. Görünüm sorguları tarafından seçilen her bir ifade için bir adlandırma belirler subquery Tam bir SELECT ifadesidir. Takma adlar SELECT listesinde sütunlar için kullanılabilir. Alt sorgu karmaşık SELECT sözdizimi içerebilir. 10 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Oluşturma WITH CHECK OPTION Eklenen ya da güncellen görünüm için sadece satırların erişilebilir olduğunu ifade eder. constraint WITH READ ONLY CHECK OPTION kısıtlamasına verilen adlandırmadır. DML işlemlerinin bu görünümde çalışamamasını sağlar. 11 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünüm Oluşturma Kuralları • Görünümü tanımlayan alt sorgu karmaşık SELECT sözdizimi içerebilir. • Görünümü tanımlayan alt sorguORDER BY deyimi içeremez. ORDER BY deyimi görünümden veri alınırken tanımlanır. • OR REPLACE seçeneğini görünüm tanımını, onu kaldırmadan ya da nesne yetkilerini tekrar belirleyerek değiştirmek için kullanabilirsiniz. • Takma adlar alt sorgularda sütun isimleri için kullanılabilir. 12 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma CREATE VIEW Özellikleri Görünümleri ikiye sınıflandırmak için basit ve karmaşık ifadeleri kullanılır. Özellik Basit Görünüm Karmaşık Görünüm Veriyi elde etmek için kullanılan tablo sayısı Bir Bir ya da daha çok Fonksiyon içerebilir Hayır Evet Veri grupları içerebilir Hayır Evet Görünüm aracılığı ile DML işlemleri gerçekleştirebilir (INSERT, UPDATE, DELETE) Evet Her zaman değil 13 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Basit Görünüm Aşağıda basit bir görünüm örneği verilmektedir. Alt sorgu veriyi tek bir tablodan elde etmektedir ve join fonksiyonu ya da herhangi bir grup fonksiyonu içermez. Çünkü basit bir görünümdür. Esas tabloyu etkileyen INSERT, UPDATE, DELETE ve MERGE işlemleri görünüm aracılığı ile gerçekleşir. 14 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Basit Görünüm SELECT ifadesindeki sütun adları gösterildiği üzere takma ada sahip olabilir. Takma adlar CREATE VIEW ifadesinden sonra SELECT alt sorgusundan önce listelenebilir 15 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Basit Görünüm Esas tablolar mevcut olsa da olmasa da görünümler oluşturulabilir. CREATE VIEW ifadesine FORCE kelimesini eklemek görünümü oluşturur. Veritabanı yöneticisi olarak bu seçenek veritabanı gelişimi sürecinde gerekli olan yetkiler için bekliyorsanız kullanışlı olabilir. FORCE seçeneği geçersiz olmasına rağmen bir görünüm oluşturacaktır. NOFORCE seçeneği görünüm oluştururken varsayılandır. 16 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Karmaşık Görünüm Karmaşık görünümler grup fonksiyonları ve join içeren görünümlerdir. Örnekte iki tablodan veri getiren bir görünüm oluşturulmaktadır. 17 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Karmaşık Görünüm Grup fonksiyonları karmaşık görünüm ifadelerine eklenebilir. 18 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur. Görünüm Oluşturma Görünümü Değiştirme Var olan bir görünümü yeniden oluşturmanda değiştirmek için CREATE VIEW komutunda OR REPLACE seçeneği kullanılır. Eski görünüm yeni sürümü ile değiştirilir. Örneğin: 19 | Copyright © 2011, Oracle. Bütün hakları mahfuzdur.