Merhaba, bu paylaşımımda elimden
gelebildiğince VeriTabanı giriş ile ilgili birşeyler yazdım.
SQL(Structered Query Language) adı verilen veri tabanı yönetim
sistemleri çok geniş bir kapsama sahip
olduğu için sadece belli konular ile ilgili bir giriş yapacağım. Sizlerin SQL
ile ilgili sormak istediği konular olursa onlar ile ilgili yeni yazılarda ekleyebilirim.
Bilgi almak istediğiniz konu ya da sorularınızı yorum kısmına veya paylaşımın
alt kısmında yer alan mail kısmından mail olarak bana iletebilirsiniz. Bu
yazımda teknik SQL konuları ile ilgili değil de, daha çok SQL’inhayatımızda ne
gibi kolaylıklar sunduğu ve uygulamalarımızda nasıl bir yol izlememiz gerektiği
ile ilgili bir yazı yazacağım. Umarım buradaki paylaşımlarım faydalı olur.
Başlangıç olarak MS-SQL ile
yapabileceklerimizin aslında düşündüğümüzden çok daha ileri seviyede olduğundan
bahsetmek istiyorum. Yazılım alanına ilk girişte bizlere sadece adı gibi Veritabanı(Database) verinin tabanı,
veriyi tutan yer gibi gelir hep. Ama MS-SQL - MySQL – Oracle vb. geliştirilmiş veri tabanı
yönetim sistemleri ile bu veritabanı
dediğimiz şey aslında çok çok ileri bir teknoloji haline gelmiştir. Kendine has
yazılım dili ve desteklediği özellikleriyle bizlere uygulamalarımızı geliştirme
kısmında çok az iş yükü bırakır. Veritabanı kullandığımız projelerde hep şu
mantık vardır, veriyi hazırladıktan sonra sorguyu hazırla ve sorgunu gönder.
Uygulamamızı birden fazla kullanıcının kullandığını düşünürsek bu uygulamamızın
kullanımında yavaşlamalara yol açar.
Ufak uygulamalarda bu farkı anlamak pek mümkün değildir, ama verinin çok olduğu
aynı zamanda buna paralel kullanıcının da çok olduğu bir ortamı düşündüğümüzde
kullanıcıların deyimi ile “donmalar” başlar. Biz yazılımcı adayları ve
yazılımcılar bunlardan kaçınmak zorundayız. Geliştirdiğimiz uygulamalarda ilk
düşünmemiz gereken kullanıcıya en az işi yaptıracak ve en hızlı şekilde
çalışacak uygulamalar geliştirmektir. Bunun için veri işlemeye yönelik uygulamalarımızda
SQL komutlarımızı proje kodu içinde yazmak yerine mümkün oldukça SQL-Server
içerisinde yazmamız gerekir. Bu bize en başta ciddi anlamda hız kazancı sağlar.
Bir diğer kolaylığı da sürekli gelişen, güncellenen bir uygulama yazdığımızda,
her güncelleme yada veritabanı sorguları ile ilgili değişiklikler yada
eklentiler yaptığımızda kod kargaşasının içinde bir şeyler düzeltmeye
çalışırız. Bu yüzden SQL işlemlerimizi ne kadar SQL-Server kısmında çalıştırırsak
o kadar hızlı ve daha az karmaşık bir yapı ile çalışırız.
Bu konu ile ilgili bir örnek
verelim. Örneğin Veri tabanımızda aşağıdaki gibi tablolarımız olsun.
PROJE İÇİNDEKİ KOD KISMI
SQL-Server tarafından Stored Procedure ile sorgulama yöntemi
PROJE İÇERİSİNDEN TETİKLEME METODU SQL-SERVER İÇERİSİNDEKİ STORED PROCEDURE
İlk bakışta proje içinden daha
kolay gibi görünüyor değil mi? Ama bu sadece bir ön görünüm maalesef. Projemiz
git gide büyüdükçe, onlarca tablo ile çalışmaya başladığımız zaman bu iş
göründüğü kadar da kolay olmamaya başlıyor. İşte bu yüzden SQL kullanımını
arttırmayı tavsiye ediyorum. Dediğim gibi hepsinden önce bu yöntem uygulamamıza
ciddi bir hız kazandırıyor. Nasıl mı? Proje içinden T-SQL-Query dediğimiz bu
yöntem ile sorgularımızı yazdığımızda SQL o sorguyu kendi içinde kendi
formatına göre derlemeye çalışıyor. Yani bizim stored procedure ile yazdığımız
formata getirmeye çalışıyor. Bu yüzden işlem süremiz uzuyor. SQL’in sorgulama
tekniği hakkında profesyonel olarak bilgiye sahip olmadığım için çok fazla
detayını giremiyorum. Ama daha önce yaptığım işlerde bunun farkını gördüm.
Özellikle Insert veya Update metodlarında çok fazla parametre kullanıyoruz. Bir
süre sonra bu iş içinden çıkmaz bir hal alıyor. Ama SQL-Server üzerinde
sorgumuzu yazdığımızda uygulama kısmında sadece stored procedure’umuzun adını
ve gerekli parametreleri göndermemiz yeterli oluyor. Geri kalanını SQL kendisi
hallediyor diyebilirim. Tabi SQL sadece bunlarla sınırlı değil. View’ler
Trigger’lar ve kendi yazılım diline ait Function’larada sahip. Özellikle Function’ları ile projemizde kod
yazmaktan bile kurtarıyor bizi. Örneğin;
Tablomuz aşağıdaki gibi;
Bu daha SQL in
sadece başlangıcı arkadaşlar. Başlarda
da dediğim gibi SQL çok büyük bir deniz ve bizlerde bu denizin nimetlerinden
olabildiğince faydalanmalıyız. Bu yazımda böyle bir girişin yeterli olduğunu
düşünüyorum. Bundan sonraki yazılarımda SQL ile ilgili diğer uygulamalara da
örnek vermeye çalışacağım. Bilgi paylaşımı bizim sektörümüzde çok önemlidir. Ne
kadar çok paylaşırsak o kadar çok hızlı ilerler ve büyürüz. Umarım bir nebzede
olsa birilerine fayda sağlamış olurum bu paylaşımımla.
Hepinize iyi
çalışmalar...




Hiç yorum yok:
Yorum Gönder