Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Merhaba Değerli Ziyaretçimiz, ForumaGel ailesi seni bekliyor! 🌟 Aramıza katılarak güçlü ve samimi topluluğumuzun bir parçası olabilirsin. Burada her üye değerli, her katkı kıymetli. Şimdi üye ol, bizimle birlikte gelişmenin ve keyifli sohbetlerin tadını çıkar! Sevgi ve Saygılarla, ForumaGel Yönetimi ❤️
Yan Yana Banner
Yan Yana Banner
Katılım
7 Nis 2025
Konular
367
Mesajlar
780
Çözümler
1
Tepkime puanı
121
Puan
93
Konum
İstanbul
Web sitesi
forumagel.com
Veritabanları sadece veri depolamakla kalmaz, aynı zamanda belirli iş mantığını doğrudan kendi içinde barındırma yeteneğine de sahiptir. Saklı Yordamlar ve Fonksiyonlar, bu iş mantığını veritabanı tarafında önceden derlenmiş kod blokları olarak saklamamıza olanak tanır. Bu, özellikle sık tekrarlanan işlemler, karmaşık hesaplamalar veya iş kurallarının uygulanması gerektiğinde büyük avantajlar sağlar.

Saklı Yordamlar (Stored Procedures)

Saklı Yordam, veritabanında depolanan ve adıyla çağrılan bir veya daha fazla SQL komutundan oluşan bir prosedürdür. Uygulamalar veya kullanıcılar tarafından çalıştırılabilirler.

Amaçları ve Faydaları:

  • Kodun Kapsüllenmesi ve Yeniden Kullanılabilirlik: Karmaşık SQL mantığını tek bir yerde toplar ve bu mantığın farklı yerlerden kolayca tekrar tekrar kullanılmasını sağlar.
  • Performans Artışı: Çoğu DBMS'te saklı yordamlar ilk çalıştırıldığında derlenir ve optimize edilir. Sonraki çalıştırmalarda bu derlenmiş plan kullanılır, bu da performansı artırabilir.
  • Güvenlik: Kullanıcılara doğrudan tablolara erişim izni vermek yerine, yalnızca belirli saklı yordamları çalıştırma izni verilebilir. Bu, veri üzerinde daha sıkı kontrol sağlar.
  • Ağ Trafiğinin Azalması: Uygulamadan veritabanına birden fazla SQL komutu göndermek yerine, tek bir saklı yordamı çağırmak yeterli olur, bu da ağ üzerindeki veri miktarını azaltır.
  • Bakım Kolaylığı: İş mantığında bir değişiklik yapılması gerektiğinde, sadece saklı yordam güncellenir ve bu değişiklik onu kullanan tüm uygulamaları etkiler.
Temel Sözdizimi (DBMS'e Göre Küçük Farklılıklar Olabilir):

Kod:
-- Saklı Yordam OluşturmaCREATE PROCEDURE SakliYordamAdi@Parametre1 VeriTipi, -- Giriş parametreleri (isteğe bağlı)@Parametre2 VeriTipi OUTPUT -- Çıkış parametreleri (isteğe bağlı)ASBEGIN-- SQL Komutları Buraya YazılırSELECT * FROM TabloAdi WHERE Sutun = @Parametre1;SET @Parametre2 = (SELECT COUNT(*) FROM TabloAdi WHERE Sutun = @Parametre1);END;GO -- SQL Server gibi bazı DBMS'lerde komut ayırıcı

-- Saklı Yordamı ÇalıştırmaEXEC SakliYordamAdi @Deger1, @Deger2 OUTPUT; -- SQL Server-- veyaCALL SakliYordamAdi(Deger1, @Deger2); -- MySQL gibi

Fonksiyonlar (Functions)

Fonksiyonlar, belirli bir hesaplama yapan veya veri döndüren, genellikle tek bir değer veya bir tablo döndüren veritabanı nesneleridir. Tıpkı saklı yordamlar gibi veritabanında saklanırlar.

Fonksiyon Türleri:

  • Scalar Functions: Tek bir değer döndürür. SQL sorgularında bir sütun veya değer gibi kullanılabilirler.
  • Table-Valued Functions (Tablo Değerli Fonksiyonlar): Bir sonuç kümesi (tablo) döndürür. Sorgularda FROM yan tümcesinde veya JOIN işleminde kullanılabilirler.
Temel Sözdizimi (Scalar Function - DBMS'e Göre Farklılıklar Olabilir):

Kod:
-- Fonksiyon Oluşturma (Scalar)CREATE FUNCTION FonksiyonAdi(@Parametre1 VeriTipi) -- Giriş parametreleriRETURNS VeriTipi -- Döndürülecek değerin veri tipiASBEGINDECLARE @Sonuc VeriTipi; -- Yerel değişkenSET @Sonuc = (SELECT COUNT(*) FROM TabloAdi WHERE Sutun = @Parametre1);RETURN @Sonuc; -- Değer döndürmeEND;GO

-- Fonksiyonu KullanmaSELECT Sutun1, dbo.FonksiyonAdi(Sutun2) AS HesaplananDeger FROM TabloAdi; -- SQL Server'da şema adı ile-- veyaSELECT Sutun1, FonksiyonAdi(Sutun2) FROM TabloAdi; -- Diğer DBMS'lerde

Saklı Yordamlar ve Fonksiyonlar Arasındaki Temel Farklılıklar

  • Dönüş Değeri: Fonksiyonlar genellikle tek bir değer (Scalar) veya bir tablo döndürürken, saklı yordamlar değer döndürebilir (OUTPUT parametreleri veya SELECT ifadeleri ile) ancak ana amaçları bir dizi komutu çalıştırmaktır. Fonksiyonlar RETURN ifadesi ile bir değer döndürmek zorundadır.
  • Sorgularda Kullanım: Fonksiyonlar (Scalar olanlar) doğrudan SELECT, WHERE veya diğer SQL komutları içinde kullanılabilir. Saklı yordamlar ise bu şekilde doğrudan kullanılamaz, EXECUTE veya CALL komutları ile çağrılırlar.
  • Veri Değişikliği (DML): Saklı yordamlar INSERT, UPDATE, DELETE gibi veri değiştirme işlemlerini (DML) içerebilir. Fonksiyonlar ise genellikle bu tür işlemleri doğrudan yapamaz (saf fonksiyonlar olması istenir, ancak bazı DBMS'lerde kısıtlı DML'ye izin verilebilir). Fonksiyonlar daha çok hesaplama odaklıdır.
  • Transaction Yönetimi: Saklı yordamlar içinde transaction (BEGIN TRAN, COMMIT, ROLLBACK) yönetimi yapılabilir. Fonksiyonlar içinde transaction yönetimi yapılamaz, fonksiyonu çağıran sorgunun transaction'ı içindeyken çalışırlar.
Ne Zaman Hangisini Kullanmalı?

  • Bir veya daha fazla SELECT, INSERT, UPDATE, DELETE komutunu içeren, bir dizi işlemi gerçekleştirecek mantığı kapsüllemek istediğinizde Saklı Yordamları tercih edin.
  • Bir veya daha fazla parametre alıp tek bir hesaplanmış değer döndüren veya bir sonuç kümesi (SELECT sonucu) döndüren ve SQL sorguları içinde SELECT veya WHERE gibi yerlerde kullanmak istediğinizde Fonksiyonları tercih edin.
Saklı yordamlar ve fonksiyonlar, veritabanı uygulamalarınızın performansını, güvenliğini ve yönetilebilirliğini artırmada önemli rol oynar. Ancak karmaşıklığı artırabileceğinden ve veritabanı bağımlılığı yaratabileceğinden, dikkatli ve iyi planlanmış bir şekilde kullanılmaları gerekir.

Bu bölümde veritabanı içindeki programlanabilir nesneler olan saklı yordamlar ve fonksiyonlara giriş yaptık.

Veritabanı güvenliği, bu programlanabilir nesnelerin ve genel olarak veriye erişimin kontrol altında tutulması açısından kritik bir konudur. Bir sonraki bölümde, veritabanı güvenliğinin temel prensiplerine ve kullanıcı izinlerinin yönetimine göz atabiliriz.


 

Şu an konuyu görüntüleyenler

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz

Zevkini yansıtan rengi seç

Geniş / Dar görünüm

Temanızı geniş yada dar olarak kullanmak için kullanabileceğiniz bir yapıyı kontrolünü sağlayabilirsiniz.

Izgara görünümlü forum listesi

Forum listesindeki düzeni ızgara yada sıradan listeleme tarzındaki yapının kontrolünü sağlayabilirsiniz.

Resimli ızgara modu

Izgara forum listesinde resimleri açıp/kapatabileceğiniz yapının kontrolünü sağlayabilirsiniz.

Kenar çubuğunu kapat

Kenar çubuğunu kapatarak forumdaki kalabalık görünümde kurtulabilirsiniz.

Sabit kenar çubuğu

Kenar çubuğunu sabitleyerek daha kullanışlı ve erişiminizi kolaylaştırabilirsiniz.

Köşe kıvrımlarını kapat

Blokların köşelerinde bulunan kıvrımları kapatıp/açarak zevkinize göre kullanabilirsiniz.

Geri