Relation Database
Relation Database

Bir tablo bir tek varlığa ait bilgileri tutmak için tasarlanır. Örneğin bir kitap tablosundasadece kitaplara ait bilgiler vardır. 20 adet kitap bilgisi varsa, bu tabloya 20 adet satıreklenecek demektir. İlişkisel veri tabanı yaklaşımını ilişkisel yapan asıl unsur verilerintablolara parçalanarak saklanmasıdır.Tabloların kaç adet olacağı ve birbiriyle nasıl ilişkilendirileceğine karar verirken varolan kuralları kullanarak mantıksal bir plan ile hareket edilir.Eğer tablolar üzerinde verileri normalize etmezseniz birçok sıkıntı oluşabilir. Bazıbilgiler birden fazla tekrarlanabilir. Bir bilgiyi güncellemek, veri eklemek ve silmek içinbirden fazla yerde bulma, değiştirme ve silme yapmanız gerekebilir. Bu nedenlenormalizasyon kurallarını kullanmalısınız.Genel kabul gören beş normalizasyon kuralı vardır. Bu kurallar, ilişkisel veri tabanınıntanımı ile birlikte ortaya konmuştur. Veri tabanı normalizasyonu Resim 2.1’e bağlı olarakanlatılacaktır. Açıklamalar yapılırken bu resme dikkat etmelisiniz.1. Normalizasyon Kuralı
Bir satırdaki bir alan yalnızca bir tek bilgi içerebilir.Örneğin kitap tablosunda, birden fazla yazarı olan kitap için yazar1, yazar2, yazar3diye alanlar açsanız, bu kurala uymamış olursunuz. Böyle bir durumda, ayrıca yazarlartablosu da oluşturarak kuralı çiğnememeye dikkat etmelisiniz.2. Normalizasyon Kuralı
Bir tablo için, anahtar olmayan her alan, birincil anahtar olarak tanımlı tüm alanlarabağlı olmak zorundadır.Mesela, Ödünç tablosuna KitapAdi diye bir alan ekleseydik, bu sadece ödünç verilenkitap ile ilgili bir bilgi olacaktı ve oduncNo’na bağlı bir nitelik olmayacaktı. Bunu çözmekiçin, kitap adlarını ayrı bir tabloda tutarak sorun çözülür.Ya da anahtar alanın birden fazla alandan oluştuğu tablolarda, anahtar alanlardansadece birine bağlı veriler, tabloda yer almamalı, ayrı bir tabloya taşınmalıdır.Bunun tersi de geçerlidir. Yani iki ya da daha fazla tablonun birincil anahtarı aynıolamaz. Şayet böyle ise, bu iki tablo tek tabloya indirilmelidir.3. Normalizasyon Kuralı
Bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlıolamaz. Örneğin, kitaplarımız için cilt tipi adında bir alan ekleyip burada da karton kapak içinK, deri cilt için D, spiral cilt için S yazsaydık, bu kodlama, kitap tablosunun birincil anahtarıolan kitapNo alanına bağlı bir kodlama olmayacaktı. Çünkü bu kodlama bir başka anahtarıolmayan alana bağlıdır. Bunun sonucunda da veri tabanımızda, karşılığı olmayan birkodlama yer almış olacaktır. Cilt tipi bilgisini kodlu olarak tutan alan aslında cilt tipiaçıklaması olan başka bir alana bağlıdır. Bu ilişki başka bir tabloda tutulmalıdır.Bu durumda, ciltŞekli adında bir tablo açmamız gerekir. Bu tablonun alanları daciltTipKodu ve ciltSekli olmalıdır. Ancak bundan sonra, kitaplar tablosunda ciltTipi adındabir sütun açıp buraya da D,S,K gibi kodları yazabilirsiniz.4. Normalizasyon Kuralı
Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsızbire-çok ilişkisine izin verilmez.Örneğin, tablomuzda yer alan bir kitap hem hikaye kitabı hem de kişisel gelişim kitabıolabilir.4.normalizasyon kuralını sağlamak için, her bağımsız bire-çok ilişki için ayrı bir tablooluşturmak gerekir.Bu örnekte, türler diye bir tablo açmamız ve daha sonra da kitapTurleri diye bir başkatablo daha açmamız gerekiyor. “Kişisel Gelişim Hikâyeleri” adlı kitap için, öncelikle kitapnumarası, Hikâye bölümünün kodunun yer aldığı bir satır; ardından da yine kitap numarası,ardından da kişisel gelişim türünün kodunun aldığı yeni bir satır daha eklemek gerekir.5. Normalizasyon Kuralı
Tekrarlamaları ortadan kaldırmak için her bir tabloyu mümkün olduğunca küçükparçalara bölmek gerekir. Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallarkapsamında olmayan tekrarlamalar da 5.normalizasyon kuralı ile giderilir.Örneğin, kitaplarımız için bir edinme şekli bilgisi girilecek sütun eklemek isteyelim:Bu bölüme girilebilecek bilgiler bellidir: Bağış veya satın alma gibi.Bu bilgileri başka bir tabloda tutabiliriz. Böylece, kullanıcıların bu alana gelişigüzelbilgiler girmesini engellemiş olursunuz. Bu da sorgulama esnasında verileriniz arasında birtutarlılık sağlar. Bu işlem sonucunda, tutarsızlıklara neden olabilecek ve sık tekrarlayan “look-up table” terimi kullanılır.Ancak, veri tabanı normalizasyon kuralları, bir ilişkisel veri tabanının tasarlanmaaşamalarını değil de ilişkisel veri tabanında yer alacak kayıtların ilişkisel veri tabanı ileuyumlu olup olmadığını denetlemeye yöneliktir.Özetle ilişkisel bir veri tabanı tasarımı şu dört ögeyi barındırmalıdır.* Veri tekrarı yapılmamalıdır.* Boş yer mümkün olduğunca az olmalıdır.* Veri bütünlüğü sağlanmalıdır.* Veriler, aralarında bir ilişki tanımlamaya müsait olmalıdır.KAYITLARIN İLİŞKİLENDİRİLMESİ
İlişkiler tablolardan verileri birbirine bağlayarak tabloların kullanışlılığını artırır.Böylece ilişkisel veri tabanları oluşturulur. Veriler konu veya göreve göre çeşitli tablolardadepolanır, ancak veriler ilişkilidir ve belirttiğiniz şekilde bir araya getirilebilir.Tablolar arasında ilişki kurmak suretiyle, veri tabanı dosyası düz veri tabanı olmaktankurtarılır. Tablolar arası ilişki, daha hızlı sorgu icrası yapılmasını sağlar; veri-işlem işleridaha verimli olur. Bu sayede verileri güncelleştirirken, bütün tabloları elden geçirmek vehatta yeniden girmek zorunda kalınmaz. Sadece güncelleştirilmesi gereken tabloya ek veyabu tabloda değişiklik yapılır.İlişkilendirme temelde bir tablodaki varlığa ait bilgilerin anahtar olan sütundanhareketle başka bir tablodan takip edilmesini sağlar. Tablolar arasında üç tip ilişki vardır.1.Bire-Bir İlişki
İlişkilendirdiğiniz iki tablodan birincisi ile ikincisi arasında sadece bir kayıteşleşebilir. Bu tür ilişkilere bire-bir ilişki denir. İki tablo arasında bire bir ilişki varsa bu ikitablo birbirinin devamı demektir ve genellikle bir tek tablo olarak birleştirilir. Bu türilişkilendirme tablolarda sık kullanılmaz.2.Bir-Çok İlişki
En çok kullanılan ilişki şeklidir. Bu ilişkide A tablosundaki bir kayıt B tablosundakibirden çok eşleşen kayda sahiptir. Bunun tersi doğru değildir. Yani B tablosundaki bir kayıtA tablosundaki yalnızca bir kayıt ile eşleşir.Örneğin, Müşteriler ve Siparişler tablolarının birçok ilişkisi vardır: Her müşteribirçok sipariş verir ancak her sipariş bir müşteriye aittir.3. Çok-Çok İlişki
Bir çok-çok ilişkide, A tablosundaki bir satırın B tablosunda çok sayıda eşi vardır vetam tersi de geçerlidir. Bu tür ilişkileri, birincil anahtarları A ve B tablolarının yabancıanahtarlarından oluşan bağlantı tablosu diye adlandırılan üçüncü bir tablo tanımlayarakoluşturabilirsiniz.