Live Chat Software
Emre CIRIK | Veri Tabanı Tasarımı ve Programlama - Giriş

Veri Tabanı Tasarımı ve Programlama - Giriş

by EMRCRK 30. April 2011 15:01

Arkadaşlar bu konu birkaç bölümden oluşacak. Çünkü veritabanı  tasarlama,onu programlama ve üzerine arayüz yazılması gibi katmansal yapıda olması gereken bir sistemdir. Şimdi genelde biz millet olarak zeki bir milletiz fakat günü kurtaran,basit ve sıradan çözümler üretmektede üstümüze yoktur. Şimdiye kadar bir çok veritabanı sistemi gördüm, program veri tabanı sistemlerini inceledim ama şunlar bir kaç program dışında hep eksikti. 

1-) Normalizasyon

2-) Procedure , Function , Trigger gibi işleri kolaylaştıracak ve yazılan arayüz programının yükünü azaltacak sistemler yok.

3-) Veri tabanı planlama , ilişkilendirme yada diagram diyelim bu tarz bir sistemler mevcut değil.

 

Şimdi arkadaşlar ciddi manada bir program yazmak istiyorsak ve bunun mümkün olduğunca performanslı ve güvenilir çalışması gerekiyorsa ilk önce veri tabanını tasarlamak gerekir. Veri tabanını tasarlar kende yukarıdaki 3 kuralı ( 1. kural içerisinde 5 alt kural mevcuttur) mümkün olduğunca uygulamakta fayda var. 

Örnek veriyorum bir stok takip sistemi yazılacak ( Çok basit bir örnek ama hala günümüzde doğru düzgün birşey göremedim) olsun.

 

1.si benim stoklar için bir index alan (tekrarsız alan) belirtmem gerek. Belki ilerde stok kodu değişir,stok adı değişir.Bunları düşünerek hareket etmek gerekir. Daha bir sürü olasılık var ama aklıma gelmiyor. ( Not: Stok kodu değiştirmek  çok gerekmedikçe önerilmez. )

2.si stok giriş-çıkış hareketlerini tutan bir tablo tasarlamakmı gerek yoksa ben stok tablomda bakiye tutarım her hareket işlemindede güncellerim demek mi? Bu noktada tabikide hareket bilgisi tutucaksınız ama bir daha kalkıpta stok tablosunda gidip bakiye güncellemek çok saçma birşey. Bunun yerine hareket tablomda özel alanlar belirtirim TIP gibi. Tip 1 ise giriş hareketi , 2 ise çıkış hareketi derim ve bunun için bir view tasarlarım yada function yazarım ki mantıklısı budur. Bana ilgili stok referansımı verdiğimde o stoğun bakiyesini versin. Tüm giriş ve çıkış hareketlerinin farkını alan bir fonksiyon. Bunu program üzerindede yaparsınız ama SQL hızlıdır. Ve bu tip işlemleri SQL üzerinde yaparsanız programdan daha fazla verim alırsınız.

3.sü bir stok giriş hareketinde stokğun hangi depoya girdiğini nereden geldiğini vb. bilgileri barındıran tablolara muhakkak ihtiyaç olacaktır. Bunları o tablolara bir şekilde insert yada update yapmak gerekir. Bu noktadada trigger yazmak mantıklıdır. Fakat stok hareket tablosuna bilgi yazarken bunu triggerla yapamıcağımıza göre procedure ile yapıcaz ve bu tablomuz için inserted trigger ı yazarsak dediğimiz işlem harika bir şekilde güzel olacaktır.

4.sü tekrarlı bilgilerimizi önlemek amaçlı illaki index alanları belirtmemiz gerekir.

5.si Tablo alanlarınızın mümkün olduğunca düzgün olmasına özen gösterin. Örnek içeri sadece tam sayı şeklinde bilgi yazılıcak bir alana gidipte float veri tipini vermek çok saçmadır. Bu aynı boxing ve unboxing işlemlerine benzer. 

6.sı Viewlarınızı raporlamalar için kullanın.

7.si SQL TRANSACTION kullanmayı sakın unutmayın. Bu bir insert yaparken heleki ilişkili tablolar arası insert yaparken bir tabloyu yazıp diğerinde hata verirse işlemleri geri almak ve veri güvenliği için süper bir çözümdür.

0.sı BUNU EN SON SÖYLEDİM AMA EN BAŞTA OLMASI GEREKİR =) BİR İŞE BAŞLAMADAN ÖNCE SİZDEN NE İSTENDİĞİNİ İYİ ÖĞRENİN. NE YAPMANIZ GEREKTİĞİNİ PLANLAYIN. VE BU KURALARA UYARAK BİR ŞEMA TASARLAYIN. TAHTA KULLANIN , FİKİR ALIŞ VERİŞİNDE BULUNUN. HER TÜRLÜ OLASILIKLARI GÖZ ÖNÜNDE BULUNDURUN. 

Bu maddeleride yaz yaz bitceğini sanmıyorum. 

Konu devamında sizlerle örnek yaparak gidicez inşallah. Vakit buldukça sizlere yardımcı olmaya çalışacağım.

Tags: , , , , ,

SQL

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading






Month List

Calendar

<<  October 2017  >>
MoTuWeThFrSaSu
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar