Sql Veritabanı Normalizasyonu
Tarih
16/11/2009 16:41
Konu Sahibi
arzuu
Yorumlar
5
Okunma
3073
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



arzuu
desire
Kullanici Avatari
Aktivasyon Bekleyen
341
17/02/2009
-
Ofis XP
24/04/2010,10:04
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.
Cevapla


Bilgisayarcı
Atçalı
Kullanici Avatari
Onursal
657
29/01/2008
410
Antalya
Ofis 2003
01/11/2011,15:17
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


arzuu
desire
Kullanici Avatari
Aktivasyon Bekleyen
341
17/02/2009
-
Ofis XP
24/04/2010,10:04
Sn bilgisayarcı düzelttim.
Cevapla


Bilgisayarcı
Atçalı
Kullanici Avatari
Onursal
657
29/01/2008
410
Antalya
Ofis 2003
01/11/2011,15:17
Bağğlııı Lol tamam tamamLol
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla


arzuu
desire
Kullanici Avatari
Aktivasyon Bekleyen
341
17/02/2009
-
Ofis XP
24/04/2010,10:04
(16/11/2009, 17:25)Bilgisayarcı Adlı Kullanıcıdan Alıntı: Bağğlııı Lol tamam tamamLol

bağlı başlı olayImg-grin
Cevapla


benremix
Uzman
Kullanici Avatari
Uzman
R.... S....
4.432
17/05/2009
365
Ankara
Ofis 2010
Dün,09:18
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







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  SQL Veritabanı yaratmak mehmetdemiral 5 2.827 02/02/2012, 22:38 mehmetdemiral
  Baştan Sona Sql Veritabanı Oluşturma arzuu 9 7.214 08/01/2012, 17:15 elektrikci
  sql veritabanı oluşturda hata.. Batuhan 2 1.533 28/08/2010, 15:50 Batuhan


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya