Yazılım projeleri ve saklı yordamlar
AVANTAJLARI
Güvenlik
Saklı yordamlar, yazılımdaki kodlardan parametreleri alırlar. Örneğin, kaydedilecek öğrencinin adını. Bu parametre, SQL INSERT ifadesine bir değişken olarak gömüleceğinden, SQL injection açıkları ortadan kalkar.
Performans
Kodlanmış bir saklı yordam, VTYS (Veritabanı Yönetim Sistemi) tarafından derlenir. İkinci çalıştırılışında, derlenmiş yordam çalışır. Böylece, koca yordamın yeniden derlenmesine gerek kalmaz. Performans artar.
Ağ trafiği ve transaction süreleri
VTYS ve yazılım uygulamanız iki ayrı sunucuda. O kadar büyük bir yazılımınız var ki, VTYS ile uygulama arasında gidip-gelen trafik çok yüksek. Bir hareketteki (Transaction) ilk geri dönüşün ağ üzerinden yazılıma aktarılması uzun sürdüğünden, hareketin toplam süresi artıyor. Dolaylı olarak, VTYS bağlantıları (Connection) şişiyor. Saklı yordam kullanarak, yazılımınız ile VTYS arasındaki “git-gel”leri azaltabilirsiniz. Parametrelerinizi uzunca hazırlar ve saklı yordama bir defada gönderirsiniz. Bir kez geri dönüş alırsınız.
Not: Saklı yordamlar iki veya daha fazla kayıt kümesi (Recordset) döndürebilirler.
Veritabanı bağımsızlığı ve SQL kodlarında merkezileşme
Yazılım kodlarınızda, saklı yordamı çağırırsınız ve dönen sonucu yorumlar. Yazılımınız, veritabanındaki tablolarda hangi işlemlerin yapıldığıyla ilgilenmez, alanların veri türlerinin neler olduğunu bilmez, tabloların isimlerinin neler olduğunu bilmez… Böylece, tablo isimlerinde değişiklik yapmak istediğinizde, yalnızca saklı yordamlardaki SQL’leri değiştirmeniz yeterli olacaktır. Yani, bakacağınız tek yer yine veritabanıdır. Kodlarınızı değiştirmenize gerek yoktur. Benzer şekilde; eğer gün olur da Oracle’ın maliyetinden kurtulmak için PostgreSQL’e geçmek isterseniz (http://blog.vukuf.com/2007/01/oracledan-postgresqle-gei.html ), aynı saklı yordamları yeni veritabanınızda da oluşturmanız yeterli olacaktır. Yazılım kodlarınız, parametreleri gönderip sonuçları alabildiği sürece, sorun çıkarmayacaktır.
DEZAVANTAJLARI
Bakım zorluğu
Saklı yordamlar, yazılım kodlarınızdaki fonksiyonlar gibidir. Tüm fonksiyonlarınızı aynı klasörde biriktirdiğinizi düşünün. Büyük bir karmaşa. Bu nedenle, saklı yordamlara isim ayarlarken çok hassas olun. Belirli bir standardınız olsun. Yeni gelen takım arkadaşlarınızın uyum sağlaması ve anlaması kolay olsun. Unutmayın; en kötü standart bile, hiç standartsızlıktan iyidir.
Veritabanına bağımlılığın artması
Evet, daha önce bunun tam aksini söylemiştik. Okumaya devam edin…
Saklı yordamlarda, adı üstünde yordamsal dil kullanılabilir; Transact SQL (Microsoft SQL Server), PL/SQL (Oracle), PL/PgSQL (PostgreSQL) gibi. Geliştiriciler (Developer), internette yaptıkları argelerde bazı yordamsal komutlarla tanışırlar ve genellikle hemen kullanırlar. Bu durumda, eğer yazılım uygulamanız iki veya daha fazla VTYS seçeneği sunuyorsa, diğer VTYS’lerdeki saklı yordamlarda da aynı değişikliklerin yapılması gerekecektir. Her VTYS’nin yordamsal dili kendine özgü olduğundan, saklı yordamda gerçekleştirilen iyileştirmelerin diğer VTYS’lerde nasıl yapılabileceğini araştırmak ve değiştirmek gerekecektir.
Eskiden, herhangi bir VTYS’ye özgü yordamsal veya kodsal seçeneklerden kaçınılması önerilirdi. Bunu sonucunda, yazılımlar VTYS’nin özelliklerin tam olarak istifade etmezlerdi. Günümüzde bu yaklaşım tersine dönmüştür. VTYS’nin sunduğu özel yeteneklerden ve komutlardan istifade etmek önerilmektedir. Bu sayede, müşterilerinize en yetenekli VTYS hangisiyse onu önerme fırsatı doğar. Örnek bir doyalog;
Müşteri: Yazılımınız çok yavaş çalışıyor.
Siz: Bizim yazılımımız en iyi “B” VTYS ile çalışır. Kullanım kılavuzunda yazıyor.
Müşteri: Haklısınız. Söylemiştiniz.
Not: Veritabanı bağımsızlığı ile ilgili olarak tasarım kalıpları (Desing Pattern) araştırılabilir.
0 yorum:
Yorum Gönder