1 / 24

VERİ TABANI ve YÖNETİMİ

VERİ TABANI ve YÖNETİMİ. Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü. BÖLÜM - 10 -. FONKSİYONLAR. Giriş. 3. BİL 301 - Veri Tabanı ve Yönetimi. Geçen haftaki derslerimizde Görünümleri ( View ) ve Stored Procedure (SP)’ leri öğrendik.

tarik-beck
Download Presentation

VERİ TABANI ve YÖNETİMİ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VERİ TABANI ve YÖNETİMİ Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü

  2. BİL 301 - Veri Tabanı ve Yönetimi BÖLÜM -10- FONKSİYONLAR

  3. Giriş 3 BİL 301 - Veri Tabanı ve Yönetimi • Geçen haftaki derslerimizde Görünümleri (View) ve StoredProcedure (SP)’leri öğrendik. • Bu hafta ise fonksiyonlarkonusunuele alacağız: • Kullanıcı Tanımlı Fonksiyonlar • Skaler Kullanıcı Tanımlı Fonksiyonlar • Tablo Döndüren Fonksiyonlar

  4. 10.1. Kullanıcı Tanımlı Fonksiyonlar 4 BİL 301 - Veri Tabanı ve Yönetimi Fonksiyonlar belli bir sonucu geridöndürmek için tasarlanmış bir veya birden fazla yerdekullanılan yapılardır. Kullanıcı tanımlıfonksiyonlar, tıpkı StoredProcedure’ler gibi dışarıdanparametre alabilirler. Aynı zamanda IF…ELSE gibi T-SQL’indiğer ifadelerinin de kullanılmasına imkan tanırlar.

  5. 10.1. Kullanıcı Tanımlı Fonksiyonlar (devam) 5 BİL 301 - Veri Tabanı ve Yönetimi Kullanıcı tanımlı fonksiyonlar, SP’ ler gibi derlendikten sonra tampon birbelleğe atanır ve daha sonra bu tampon bellekten çağrılarakkullanılabilirler. Bir diğer özelliği de view (görünüm)’lar gibibir tablo şeklinde kayıt döndürebilirler.

  6. 10.1. Kullanıcı Tanımlı Fonksiyonlar(devam) 6 BİL 301 - Veri Tabanı ve Yönetimi • Bu fonksiyonları, View ve SP’lerden ayıran ve özelliklekullanılması gereken durumlar şöyledir: • Dışarıdan parametre alan view tanımlanamamaktadır. Fakat böyle bir durum fonksiyonlarda kullanılabilmektedir. • SP’lerbir sorgunun parçası olarak birkaç durum dışında çalışmazken fonksiyonlar sorguların içerisinde kullanılabilirler. • Örneğin sp_helpdb, sp_helptext gibi prosedürler tek başlarınaçalıştırılabilirler, fakat bir sorgunun parçası olarakçalıştırılamazlar.

  7. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 7 BİL 301 - Veri Tabanı ve Yönetimi • Skaler fonksiyonlar, bir işlem neticesinde sadece tek bir değerdöndüren fonksiyonlardır. • SQL içerisinde tanımlı birçok skalerfonksiyon vardır. • Matematiksel, karakter, tarih fonksiyonları vb. • Örneğin SELECT GETDATE (l) komutu FROMifadesi olmadan kullanılabilir. Bu tür yani GETDATE ( ) şeklindeki fonksiyonlar skaler fonksiyonlardır. • Bazıdurumlarda kullanıcılarda bu tür fonksiyonlara ihtiyaçduyabilirler. Örneğin yapılan alışveriş neticesinde sepette kaçürün olduğunu döndüren fonksiyon skaler bir fonksiyondur.

  8. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 8 BİL 301 - Veri Tabanı ve Yönetimi Skaler fonksiyonların genel tanımı şöyledir: CREATE FUNCTION [sahip-ismi] fonksiyon_adı ( @parametre_adı veri_türü, …. ) RETURNS skaler_veri_tipi AS BEGIN SQL_ifadeleri RETURN skaler_deger veya değişken END

  9. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 9 BİL 301 - Veri Tabanı ve Yönetimi Örnek:Bir müşteri kodunu girerek müşterinin sepetinde kaç adet ürün olduğunu bulan bir fonksiyon yazalım.

  10. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 10 BİL 301 - Veri Tabanı ve Yönetimi Yazmış olduğumuz fonksiyona dikkat ettiğimizde RETUNSdeyimi ile fonksiyonun integer tipte bir veri döndüreceğianlaşılmaktadır. @Urun_sayisi olarak bir değişken tanımlandı. Daha sonra SQL cümlesinde dışarıdan parametre olarak verilenkullanıcıKod bilgisi ile veritabanındaki kullaniciKod bilgisikarşılaştırılarak toplam ürün_sayısı hesaplandı ve@Urun_sayisi değişkenine aktarıldı. RETURN komutu ile eldeedilen bu ürün sayısı dışarıya tek bir değer olarak gönderildi.

  11. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 11 BİL 301 - Veri Tabanı ve Yönetimi Fonksiyonu bir sorgu içerisinde kullanmak isteyelim. Sepetinde5’ten fazla ürün olan müşterileri bir sorgu yazarak bulalım.Fonksiyonun kullanımı ve SQL cümlesi şöyle olacaktır.

  12. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 12 BİL 301 - Veri Tabanı ve Yönetimi • Örnek-2:Klavyeden girilen iki değerin toplamınıgerçekleştiren bir fonksiyon yazınız?

  13. 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar 13 BİL 301 - Veri Tabanı ve Yönetimi Bu fonksiyonu dışarıdan iki sayı girerek çalıştırdığımızda aşağıdaki sonuç elde edilecektir.

  14. 10.3. Tablo Döndüren Fonksiyonlar 14 BİL 301 - Veri Tabanı ve Yönetimi Bu tür fonksiyonlar çalışma prensibi bakımından view’ larabenzerler fakat farklı olarak dışarıdan parametre de alabilirler.Tablo döndüren fonksiyonların genel kullanım biçimi şöyledir. CREATE FUNCTION [sahip-ismi]fonksiyon_adı( [@Parametre_adı veri_tipi, …..] ) RETUNS TABLE AS RETURN (SELECT cümlesi)

  15. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 15 BİL 301 - Veri Tabanı ve Yönetimi Örnek-1:Dışarıdan ürün kodu girilen bir ürünün bilgilerini tablo içerisinde arayarak ekrana listeleyen bir fonksiyon yazınız? tblUrun tablosu yan tarafta verilmiştir.

  16. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 16 BİL 301 - Veri Tabanı ve Yönetimi Yazılması gereken fonksiyon aşağıdaki gibidir.

  17. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 17 BİL 301 - Veri Tabanı ve Yönetimi Yazılan fonksiyon incelendiğinde RETURNS TABLE ifadesiile bir tablo döndürüleceği belirtilmiştir. Daha sonra RETURNifadesinde yazılmış olan SELECT cümlesi ile kullanıcıya geridöndürülmesi gereken kayıtlar sorgulanarak gönderilmiştir.Fonksiyonun çalıştırılması şöyledir.

  18. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 18 BİL 301 - Veri Tabanı ve Yönetimi • Örnek-2: Genellikle E-ticaret sitelerinde yer alan ve bir ürünü alanlar bunları da satın aldı şeklinde karşımıza çıkan ürünlerin listesi yer almaktadır. Aynı şekilde bir kullanıcı kodukullanarakböyle bir liste oluşturacak bir fonksiyon yazalım.Bunun içingerekli olan tablolar şunlardır. • tblUrun: Ürün bilgilerinin yer aldığı tablodur. • tblSiparisDetay: Sipariş detaylarının yer aldığı tablodur. • tblSiparis: Siparişi verilen ürünlerin tutulduğu tablodur.

  19. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 19 BİL 301 - Veri Tabanı ve Yönetimi Bu tablolar aşağıda verilmiştir.

  20. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 20 BİL 301 - Veri Tabanı ve Yönetimi Bu işlem iki aşamalıdır. Yani iki ayrı fonksiyon yazılmalıdır. Bunlardan birincisi şöyledir: CREATE FUNCTION AlanlarinKodu(@urunKod int) RETURNS TABLE AS RETURNSELECTkullaniciKodFROMtblSiparisDetay SD INNER JOIN tblSiparis SONS.faturaKod=SD.faturaKod WHEREurunKod=@urunKod

  21. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 21 BİL 301 - Veri Tabanı ve Yönetimi Bu fonksiyon belli bir ürünü satın alan kullanıcıya ait kullanıcıkodunun bulunmasını sağlamaktadır. Buradan elde edilecekolan kullanıcı kodu yazılacak olan ikinci fonksiyondakullanılacaktır. Bu fonksiyon tek başına çalıştırılırsa aşağıdakisonuç elde edilecektir.

  22. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 22 BİL 301 - Veri Tabanı ve Yönetimi İkinci yani asıl fonksiyonumuz ise şöyle olacaktır. CREATE FUNCTION BunuAlanBunlariAldi(@urunKod int) RETURNS TABLE AS RETURN SELECTU.urunKod,U.urunAdFROMtblUrun U JOIN tblSiparisDetay SD ONSD.urunKod=U.urunKod JOINtblSiparisSONS.faturaKod=SD.faturaKod JOINAlanlarinKodu(@urunKod) FNA ON FNA.kullaniciKod=S.kullaniciKod

  23. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 23 BİL 301 - Veri Tabanı ve Yönetimi Bu fonksiyonda ise ürün kodu girilerek bu ürünü alan kişininbaşka hangi ürünleri aldığı listelenmektedir. Burada tblUrun vetblSiparisDetay tabloları kullanılarak siparişi verilen ürünlertespit edilmiştir. Ardından tblSiparis tablosu ve elde edilen buliste faturaKod değerleri kullanılarak birleştirilmiştir. Eldeedilen yeni liste kullanıcı kodlarına bakılarak bu listede hangikullanıcının hangi ürünü satın aldığı tespit edilmiştir.

  24. 10.3. Tablo Döndüren Fonksiyonlar (devam…) 24 BİL 301 - Veri Tabanı ve Yönetimi Bu kodun çalıştırıldığında 2627 ürün koduna sahip ürünü alankişinin başka hangi ürünleri satın aldığı listelenmektedir.

More Related