VERİ TABANI NEDİR?
Veri tabanı düzenli bilgiler topluluğudur. Kelimenin anlamı bilgisayar ortamında saklanan düzenli verilerle sınırlı olmamakla birlikte, daha çok bu anlamda kullanılmaktadır.
Evet, veritabanı bir depo görevi görmektedir. Fakat yanlış kullanıldığında ise çöp yığınına dönüşmektedir. Veritabanının doğru kullanımı, doğru ilişkilendirilmesi çok önemlidir. Bunun en başında hız, zaman, sorgu sayısı gibi kazançlarımız olacaktır. Bir projeye başlamadan önce tasarımını düşünmek yerine veritabanı modelini düşünmek gerekir. Tabii ki veritabanı tipinin seçimide önemlidir. MySQL mi, Access mi, SQL Server mı etc... gibi veritabanı tipleri arasında projemize en uygun tipi tercih etmeliyiz.
Veritabanında gereksiz alanlar yaratmamak gerekir. Çoğu site sahiplerinin yaptığı hataları farkedebiliyorum. Örnek vereyim, bir eğitim yada bilgi paylaşım sitesinde kullanıcının adı, soyadı ve maili varsa üyelik sistemi kullanıcı adı ve parola alanları dışındaki tüm alanlar gereksizdir. Msn - yahoo - skype adresleri, kullanıcının son giriş tarihi ve sayısı etc.. gibi bilgilerin hiç bir faydası yoktur. Sadece veritabanını işgal etmekle yükümlüdürler.
Peki bir veritabanı nasıl ilişkilendirilmeli? Veritabanına nasıl bir bakış açısı ile yaklaşmalıyız?
Bir örnek yaparak konuya başlayalım arkadaşlar, kategorize edilmiş (ana ve alt menülerden oluşan) bir menü yapacaksınız diyelim. Bunun için öncelikle doğru yöntemi, ardından hatalı yöntemi gösterelim.
Doğru yöntem
1. Veritabanında aşağıdaki resim gibi 3 alan olur. Ve tek tabloda kategorimizi oluşturabiliriz.

Örnekte sistem nasıl işler derseniz, alt alanı 0 (sıfır) olanlar ana kategori olur, 0 değilde ilişkilendirilmiş ise, ilişkilendirilen kategorinin alt kategorisi olur.
2. Veritabanında ana ve alt kategoriler için ayrı ayrı tablolar yaratılır.

Bu modelimizde ise iki ayrı tabloda sorgu yapılır. Ana kategorinin ID alanı ile alt kategorisinin kat alanı ilişkilendirilmiştir.
Yanlış yöntem
Kategoriler sayı ile ilişkilendirilmeden yapılır. Unutulmamalıdır ki string ifade daha fazla yer kaplayacaktır.

Bu modelimiz son derece hatalı kullanımdır. Asla programlama mantığında böyle bir uygulama mevcut değildir, olmazda.
Umarım veritabanı modelleme konusunda kafanızda bir şeyler oluşmuştur.
Özetlememiz gerekirse;
1. Proje için uygun veritabanı seçilmeli.
2. Veritabanının iyi analiz edilip gereksiz alanlardan kaçınılmalı.
3. Tekrarlı alanlar için daha iyi bir çözüm geliştirilmeli, string değerlerden kaçılmalı.
4. Unutmayın ki, Veritabanını modellemek kadar geri dönüşümde önemlidir. Modelleme yaparken, verileri sayfaya dökeceğinizi unutmayınız. Yapacağınız sorgu yada döngüleride o anda kafanızda canlandırmanız gerekmektedir.
|