Skip to main content

AccessTr.neT


Sql Veritabanı Normalizasyonu

arzuu
arzuu
SQL
5
4676

Sql Veritabanı Normalizasyonu

#1
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.

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, 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.

2. Normalizasyon Kuralı
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.

3. Normalizasyon Kuralı
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.

4. Normalizasyon Kuralı
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.

5. Normalizasyon Kuralı
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.

Alıntıdır.
"Gülümsemenin, parasal değeri yoktur. Satın alınmaz, ödünç verilmez, dilenilmez, çalınmaz ama verilmedikçe hiç alınamaz."
Baştan sona Sql veritabanı oluşturma
Son Düzenleme: 16/11/2009, 17:16, Düzenleyen: arzuu.
Cevapla
#2
Başlı ne demek? Kaynak mı demek istiyor? ingilizceden mi çeviri bu? Orjinali nedir?

Cümleleri anlamakta zorluk çektim de, o bakımdan Img-cray
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla
#3
Sn bilgisayarcı düzelttim.
"Gülümsemenin, parasal değeri yoktur. Satın alınmaz, ödünç verilmez, dilenilmez, çalınmaz ama verilmedikçe hiç alınamaz."
Baştan sona Sql veritabanı oluşturma
Cevapla
#4
Bağğlııı Lol tamam tamamLol
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla
#5
(16/11/2009, 17:25)Bilgisayarcı yazdı: Bağğlııı Lol tamam tamamLol

bağlı başlı olayImg-grin
"Gülümsemenin, parasal değeri yoktur. Satın alınmaz, ödünç verilmez, dilenilmez, çalınmaz ama verilmedikçe hiç alınamaz."
Baştan sona Sql veritabanı oluşturma
Cevapla
#6
Paylaşım için teşekkürler. Saygılar...
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi


Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task