Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
Veri Tabanı Tasarlama 2. İkinci kuralımız; olabildiğince çift bilgilere sahip tablo yapmamak, diğer deyişle bilgileri alt tablolara bölmektir.
Tablo tasarlarken göz önünde bulundurmamız gereken öneriler Veri tabanının amacına karar veriniz. Saklanacak veriler ile ilgili bir rapor veya iste oluşturduktan sonra veri tabanı yapımına girişiniz. 2. Veri tabanınızın kabaca kâğıda tasarımını çiziniz. Büyük bir kutu ve içine hücreler çizerek bir tabloda neler olacağını kâğıt üzerinde düşününüz.Çizimlerinizde olabildiğince detaylı olunuz. 3. Hangi alanlara ihtiyacınız var, karar veriniz. Önceki adımı düzgünce yaptıysanız bu adımdaki işlemleri yapmak çok kolaydır. Alanların sayısal, metin, tarih gibi türlerini düşününüz. 4. Hangi tablolara ihtiyacınız var, karar veriniz. Her tablo “bir” konuya dayalı olmalıdır. Böylece iyi tasarlanmış bir veri tabanınız olur 2. kuraldaki iyi tablolama örneğini inceleyiniz. Bilgiler kendine ait tabloda saklanmalıdır. 5. Her tablonun “birincil anahtar”ı olması tavsiye edilir. Her kaydın “tekil” bir değere sahip olan anahtar alanı olmalıdır. 6. Tablolar arası ilişkileri belirleyiniz. 2. kuraldaki iyi tablolama örneğinde iki tablonun ilişkili olduğunu görüyorsunuz. 7. Her alan veya sütunda aynı tür bilgi olmalıdır. Bu tablonun daha okunaklı ve organize olmasını sağlar. 8. Olabildiğince bilgiyi parçalara ayırınız. Bu sayede tablonun sıralanması, filtrelenmesi ve düzenlenmesi daha kolay hale gelir. 9. Aynı bilginin tekrarlandığı tablolar yapmayınız. Birden fazla tablo kullanarak alt tablolar hazırlayınız. 10. Alan adlarını verirken aynı adlandırmayı yapmayınız. Aynı ismin tekrar başka bir yerde kullanılması karışıklığa neden olabilir.
Telefon Defteri Örneği
Birincil anahtar (Primary Key) Yabancı anahtar (Foreign Key)
Birincil Anahtar Birincisi, her satırı benzersiz şekilde tanımlar. Unique İkincisi, hiçbir zaman boş veya sıfır olmaz (her zaman bir değer içerir) NULL. Üçüncüsü, seyrek olarak değişir (ideal durumda hiç değişmez).
Birincil Anahtar ve Yabancı Anahtar gösterimi Müşteriler tablosundaki Müşteri Kimliği alanı, Siparişler tablosunda da görünebilir. Bu alan, Müşteriler tablosunda birincil anahtardır. Basit şekilde belirtildiğinde, yabancı anahtar, başka bir tablonun birincil anahtarıdır.
İlişkiler Bir-çok ilişkisi Çok-çok ilişkisi Bir-bir ilişkisi
Bir-Çok İlişkisi Bir Müşteriler tablosu ve bir Siparişler tablosu bulunan bir sipariş izleme veritabanını ele alalım. Müşteri istediği kadar sipariş verebilir. Böylece, Müşteriler tablosunda temsil edilen herhangi bir müşteri için, Siparişler tablosunda temsil edilen pek çok sipariş olabilir. Buna göre, Müşteriler tablosuyla Siparişler tablosu arasındaki ilişki bir-çok ilişkisidir.
Bir Çok İlişkisi
Çok-Çok İlişkisi Bir Ürünler tablosuyla bir Siparişler tablosu arasındaki ilişkiyi ele alalım. Tek bir siparişte birden fazla ürün olabilir. Diğer yandan, tek bir ürün bir çok siparişte görülebilir. Bu nedenle, Siparişler tablosundaki her kayıt için Ürünler tablosunda birçok kayıt bulunabilir. Ayrıca, Ürünler tablosundaki her kayıt için Siparişler tablosunda da birçok kayıt olabilir. Bu tür ilişkilere, ürün için birçok sipariş, sipariş için de birçok ürün olabildiğinden çok-çok ilişki adı verilir. Tablolarınız arasında varolan çok-çok ilişkilerini algılamak için ilişkinin her iki tarafını da dikkate almanın önemli olduğunu unutmayın. Çok-çok ilişkisi göstermek üzere, genellikle kesişme tablosu adı verilen ve çok-çok ilişkisini iki adet bir-çok ilişkisine bölen üçüncü bir tablo oluşturmanız gerekir. İki tablonun her birinden birincil anahtarı üçüncü tabloya eklersiniz. Bunun sonucunda, üçüncü tablo ilişkinin her yinelenişini veya örneğini kaydeder. Örneğin, Siparişler tablosu ve Ürünler tablosu, Sipariş Ayrıntıları tablosuna iki adet bir-çok ilişkisi oluşturularak tanımlanan çok-çok ilişkisine sahiptir. Bir siparişte pek çok ürün olabilir ve her ürün pek çok siparişte yer alabilir.
Çok Çok ilişkisi
Bir-Bir ilişkisi Bir-bir ilişkilerinde, ilk tablodaki her kayıt ikinci tabloda yalnızca bir eşleşen kayda sahip olabilir ve ikinci tablodaki her kayıt birinci tabloda yalnızca bir eşleşen kayda sahip olabilir. Bu şekilde ilişkilendirilen bilgiler çoğunlukla aynı tabloda saklandığı için, bu tür ilişkiler yaygın değildir. Bir- bir ilişkilerini, bir tabloyu bir çok alana bölmek, bir tablonun bir bölümünü güvenlik nedeniyle yalıtmak veya ana tablonun yalnızca bir alt kümesi için geçerli olan bilgileri saklamak için kullanabilirsiniz. Böyle bir ilişkiyi, her iki tablonun ortak bir alanı paylaşmasından tanırsınız.
Bir Bir İlişkisi
İlişkilendirme ile ilgili bazı önemli notlar. 1. İlişkilendirilecek alanlar birbiri ile aynı özelliklere sahip olmalıdır. Veri türleri ve alan boyutları eşit olmalıdır. 2. Genellikle ana tablodaki birincil anahtar, diğer tablodaki benzer alana bağlanır. 3. “Birleştirme Türü…” ile ilişkinin türü belirlenebilir. Hangi tablodan tüm kayıtların geleceği ve hangi tablodan birleşen alanların listeleneceği seçilir. .
ON DELETE CASCADE : Referans edilen tablodaki kayıt yada kayıtların silinmesi durumunda referans alan tabloda ilişkili kayıtların da silinmesi . ON UPDATE CASCADE : Referans edilen tablodaki kayıt yada kayıtların güncellenmesi durumunda referans alan tabloda ilişkili kayıtların da güncellenmesi