Sql Veritabanı Normalizasyonu | AccessTr.neT
Tarih: 19/07/2018, 14:35
Ana Sayfa > Microsoft Access > SQL > Sql Veritabanı Normalizasyonu >
16/11/2009, 16:41 (Son Düzenleme: 16/11/2009, 17:16, Düzenleyen: arzuu.)
Aslında ilişkisel veri tabanı tasarımından ziyade bir tablo içerisinde yer alacak kaydın nelerden oluşma­sına karar vermeye yarayan normalizasyon kuralları başlı başına bir işlemdir.Genel kabul görmüş 5 normalizasyon kuralı vardır.Bu kurallar, ilişkisel veritabanının tanımı ile birlikte ortaya konmuştur.
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, yazar3 diye alanlar açsaydık, bu kurala uymamış olurduk. Böyle bir durumda, ayrıca yazarlar tablosu da oluşturarak kuralı çiğnememiş oluruz.
DİKKAT:Verileri virgül veya bir başka karakter ile ayırıp aynı alana girmek. Daha sonra program içerisinde split ile bu değerleri ayırmak. Ancak bu ilişkisel veritaba­nının doğasına terstir.
Bir tablo için, anahtar olmayan her alan, birincil anahtar olarak tanımlı tüm alanlara bağlı olmak zorundadır. Mesela, Ödünç tablosunda KitapAdi diye bir alan eklese idik, bu sadece ödünç verilen kitap ile ilgili bir bilgi olacaktı ve oduncNo'na bağlı bir nitelik olmayacaktı. Bunu çözmek için, kitap adlarını ayrı bir tabloda tutarız.
Bir tablo için, anahtarı olmayan bir alan, anahtarı olma­yan 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çin K, 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 veritabanımızda, karşılığı olmayan bir kodlama yer almış olacaktır. Cilt tipi bilgisini kodlu olarak tutan alan aslında cilt tipi açıklaması olan başka bir alana bağlıdır. Bu ilişki başka bir tabloda tutulmalıdır.
Bu durumda, ciltSekli adında bir tablo açmamız gerekir. Bu tablonun alanları da ciltTipKodu ve ciltSekli olmalıdır. Ancak bundan sonra, kitaplar tablosunda ciltTipi adında bir sütun açıp buraya da D,S,K gibi kodları yazabiliriz.
Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin verilmez. Örneğin, tablomuzda yer alan bir kitap hem hikaye kitabı ,hem de kişisel gelişim kitabı olabilir.(Bu durumda kitabın adı, kişisel gelişim hikayeleri olurdu her halde) Bu durumu Kitap tablosunda nasıl ifade edeceğiz? 4.Normalizasyon kuralını sağlamak için, her bağımsız bire çok ilişki için ayrı bir tablo oluşturmak gerekir. Bu örnekte, türler diye bir tablo açmamız gerekiyor. Daha sonra kitapTurleri diye bir başka tablo daha açma­mız gerekiyor. ‘Kişisel Gelişim Hikayeleri' adlı kitap için, öncelikle kitap numarası, Hikaye 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.
Tekrarlamaları ortadan kaldırmak için her bir tabloyu mümkün olduğunca küçük parçalara bölmek gerekir. Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallar kapsamında olmayan tekrarlamalar da 5.nolu normali­zasyon kuralı ile giderilir.
Örneğin, kitaplarımız için bir edinme şekli bilgisi girilecek ,sütun eklemek isteyelim: Bu bölüme girilebile­cek bilgiler bellidir: Bağış veya satın alma.
Bu bilgileri başka bir tabloda tutabiliriz. Böylelikle, kullanıcıların bu alana gelişi güzel bilgiler girmesini engellemiş oluruz. Bu da sorgulama esnasında verile­rimiz arasında bir tutarlılık sağlar. Bu işlem sonucunda, tutarsızlıklara neden olabilecek ve sık tekrarlayan veriler başka bir tabloya taşınmış olur. Bu tablo için, veritabanı programlamada ‘look-up table' terimi kullanılır. Ancak, veritabanı normalizasyon kuralları, bir ilişkisel veritabanının tasarlanma aşamalarını değil de ilişkisel veritabanında yer alacak kayıtların ilişkisel verita­banı ile uyumlu olup olmadığını denetlemeye yöneliktir.
Özetle ilişkisel bir veritabanı tasarımı şu dört öğeyi 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ımlanmaya müsait olmalıdır.
Başlı ne demek? Kaynak mı demek istiyor? ingilizceden mi çeviri bu? Orjinali nedir?
Cümleleri anlamakta zorluk çektim de, o bakımdan
Sn bilgisayarcı düzelttim.
Bağğlııı tamam tamam
(16/11/2009, 17:25)Bilgisayarcı Adlı Kullanıcıdan Alıntı: Bağğlııı tamam tamam
bağlı başlı olay
Kurallar (Rules)Görünüm (view)
SQL Veritabanı yaratmak mehmetdemiral 5 3.296 02/02/2012, 22:38
Baştan Sona Sql Veritabanı Oluşturma arzuu 9 8.229 08/01/2012, 17:15
sql veritabanı oluşturda hata.. Batuhan 2 1.762 28/08/2010, 15:50