BİRİNCİ NORMAL FORM

advertisement
VERİTABANI
Veritabanı Normalizasyonu
VERİTABANI NORMALİZASYONU
NORMALİZASYON NEDİR?
Normalizasyon kısaca veritabanında bulunan verileri düzenleme süreci
olarak ifade edilebilir.
Normalizasyon sürecinde veritabanlarında çok fazla sütun ve satırdan
oluşan tablolar, veri tekrarlarının ve veri tutarsızlıklarının engellenmesi
için daha az satır ve sütun içeren tablolara bölünmektedir.
Bu tablolar belirli kurallara göre oluşturulmaktadır. Bu kurallara
normalizasyon kuralları adı verilir. Her kural normalizasyon işleminin bir
aşamasını belirtmektedir. Bu aşamalar normal form olarak tanımlanır.
VERİTABANI NORMALİZASYONU
Normalizasyon için birçok kural geliştirilmiştir. İlk üç kural E.F. Codd
tarafından 1970 yılında oluşturulmuştur. Bundan sonra E.F. Codd ile
Boyce birlikte Boyce-Codd normal formu geliştirmiştir. Bu kuralları
zamanla dördüncü ve beşinci normal formların oluşturulması izlemiştir.
Normalizasyonun amacı veri tekrarını en aza indirirek, veri fazlalığını ve
veri turtarsızlığını önlemektir. Veri tekrarı veritabanı performansını
etkilediği gibi gereksiz yere hafızada yer kullanılmasına, tutarsız verilerin
depolanmasına neden olur. Birden fazla yerde veri tutulması ekleme,
silme ve güncelleme gibi işlemlerin yapılmasını da zorlaştırır. Çünkü veri
birçok yerde tutuluyor ise tüm veriler aynı şekilde eklenmeli, silinmeli ve
güncelleştirilmelidir.
Uygun biçimde normalize edilmiş bir veritabanında veri eklemek, silmek
ve güncellemek çok daha hızlı ve kolay olur.
VERİTABANI NORMALİZASYONU
NORMALİZASYONUN AVANTAJLARI
• Veri yapısını düzenler.
• Veri bütünlüğünü sağlar.
• Veri tekrarını önler.
• Verilerin anlaşılabilirliği artar.
• Veritabanı performansını artırır.
VERİTABANI NORMALİZASYONU
1. NORMALİZASYON KURALI (BİRİNCİ NORMAL FORM)
Tabloda bulunan her satırdaki her alanda sadece tek bir veri bulunması
kuralıdır. Tek bir alanda birden çok veri tutmak veritabanı performansını
düşürmekte ve verilerin sorgulanması, eklenmesi, güncellenmesi gibi
işlemlerin yapılabilmesi için ek işlemler gerektirmektedir. Örneğin;
öğrenci tablosunda tek bir satırda öğrencinin aldığı tüm dersleri
belirtilirse bu kurala uyulmamış olur. Matematik dersine kayıtlı öğrencileri
sorgulamak için önce ders alanında bulunan verilerin ayrıştırılması
gerekmektedir. Bu da sorunlara neden olmaktadır. Bu nedenle tablonun
birinci normal forma göre düzenlenmesi gerekmektedir.
VERİTABANI NORMALİZASYONU
1. NORMALİZASYON KURALI (BİRİNCİ NORMAL FORM)
Birinci normalizasyon kuralının uygulanması tabloda da görüleceği gibi
verileri ayrıştırırken veri tekrarına neden olmaktadır. Bu tabloda "Öğrenci
No", "Adı", "Soyadı" alanlarında her öğrenci için tekrar eden kayıtlar
bulunmaktadır. Bu tekrarlar tabloya satır eklemede, silmede ve
güncellemede sorunlara neden olmaktadır.
VERİTABANI NORMALİZASYONU
Satır Ekleme Sorunu
Tabloya bir satır eklerken mutlaka tüm verilere gereksinim duyulmaktadır.
Örneğin öğrenci tablosuna bir öğrenci eklemek için "Ders" alanının da
girilmesi gereklidir.
VERİTABANI NORMALİZASYONU
Satır Silme Sorunu
Tablodan herhangi bir veri silinmesi için tüm satırın silinmesi
gerekmektedir. Bu durum o satırdaki tüm verilerin silinmesine neden
olacaktır. Örneğin öğrenci tablosundan bir öğrencinin ders kaydının
silinmesi sonucunda o öğrenci ile ilgili diğer bilgiler de silinecektir.
VERİTABANI NORMALİZASYONU
Satır Güncelleme Sorunu
Tabloda bulunan bir satırdaki tek bir alanın güncellenmesi için aynı veriye
sahip diğer satırlardaki alanların da güncellenmesi gerekmektedir.
Örneğin öğrenci tablosunda bir öğrencinin "Soyadı" alanı
güncelleştirilmek istendiğinde tüm satırlardaki aynı öğrenciyle ilgili soyad
verisi güncellenmelidir.
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
2. NORMALİZASYON KURALI (İKİNCİ NORMAL FORM)
Birinci normal formda geçerli olan kurallar ikinci normal formda da
geçerlidir. İkinci normal formda olan tüm veritabanı tasarımları, birinci
normal forma da uymaktadır.
Bir tabloda anahtar alan olmayan tüm alanların anahtar alana bağlı
olması gerekmektedir. Anahtar alan ile diğer alanlar arasında kısmi bir
bağımlılık değil tam bir bağımlılık bulunmaktadır. Alanlar arasındaki
bağımlılıktan yararlanarak birinci normal formdaki tablolar, birden fazla
tabloya dönüştürülerek ikinci normal forma ulaşılır. İkinci normal form,
verilerin hafızada daha az yer kaplamasını sağlamak amacı ile
geliştirilmiştir.
Örneğin Eskişehir iline ait plaka numarası, ilçe ve beldeleri içeren bir tablo
oluşturacak olursak, "Plaka", "İl", "İlçe No", "İlçe", "Belde No" ve "Belde"
alanlarından oluşacaktır.
VERİTABANI NORMALİZASYONU
2. NORMALİZASYON KURALI (İKİNCİ NORMAL FORM)
VERİTABANI NORMALİZASYONU
Eskişehir iline ait plaka numarasını, ilçe ve beldelerini gösteren tablo
birinci normal formda bir tablodur. Ancak tablo il, ilçe ve belde tablolarına
bölünerek ikincil forma ulaşılabilir. Öncelikle il tablosu oluşturulur. İl
tablosu "Plaka No" ve "İl Adı" alanlarını içerir. "Plaka No" alanı her şehir
için farklı olacağı için eşsiz bir değere sahiptir ve birincil anahtar olarak
tanımlanabilir.
VERİTABANI NORMALİZASYONU
İl tablosu oluşturulduktan sonra ilçe tablosu oluşturulur. Ancak ilçelerin il
ile bağlantılı olması için ilçe tablosuna da "Plaka No" alanı eklenmelidir.
İlçe tablosu "İlçe No", "Plaka No" ve "İlçe Adı" alanlarını içerir .
VERİTABANI NORMALİZASYONU
Beldeler, ilçeler ile bağıntılıdır. Bu nedenle belde tablosu oluşturulurken
"İlçe No" alanı belde tablosuna eklenecektir ve tablo "İlçe No", "Belde
No" ve "Belde Adı" alanlarından oluşacaktır.
VERİTABANI NORMALİZASYONU
Birinci
normal
formda
tekrarlayan kayıtlar içeren ve
birbirleriyle doğrudan bağımlı
olmayan alanlar ayrılarak tablo,
ikinci
normal
forma
dönüştürülmüştür.
İkinci normal formda birinci
normal formda olan güncelleme
sorunu ortadan kalkmasına
karşın, satır ekleme ve silme
sorunları devam etmektedir.
VERİTABANI NORMALİZASYONU
Satır Ekleme Sorunu
Örneğin ilçe tablosuna yeni bir ilçe eklenebilmesi için il plaka numarasının
da girilmesi gerekmektedir.
VERİTABANI NORMALİZASYONU
Satır Silme Sorunu
Örneğin ilçe tablosunda bir ilçe silindiğinde il plaka numarasında silinmesi
gerekmektedir.
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
3. NORMALİZASYON KURALI (ÜÇÜNCÜ NORMAL FORM)
Üçüncü normal forma göre bir tablo içinde anahtar olmayan bir alan,
anahtar olmayan diğer bir alan ile bağlantılı olamaz. Örneğin "Öğrenci
No", "Adı" ve "Soyadı" alanlarından oluşan bir öğrenci tablosunda,
öğrencilerin cinsiyet bilgilerinin de yer alması istenilebilir. Böyle bir
durumda tabloya cinsiyet alanı eklenip erkekler için "E" kadınlar için "K"
değerleri girilebilir.
Ancak bu şekilde oluşturulacak tablo, üçüncü normal forma uymayacaktır.
Üçüncü normal forma uyması için yeni bir cinsiyet tablosu oluşturup
cinsiyet bilgilerini bu tablo ile ilişkilendirmek gerekmektedir.
VERİTABANI NORMALİZASYONU
3. NORMALİZASYON KURALI (ÜÇÜNCÜ NORMAL FORM)
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
4. NORMALİZASYON KURALI (DÖRDÜNCÜ NORMAL FORM)
Dördüncü normal forma göre bir tablo içinde anahtar alanlar ile anahtarı
olmayan alanlar arasında bire çok ilişki olamaz. Dördüncü normal
formda olan tüm veritabanı tasarımları üçüncü normal forma da
uymaktadır. Örneğin öğrencinin aldığı ders ve bildiği yabancı dil bilgilerini
içeren tabloyu inceleyecek olursak; tabloda görüldüğü gibi ders ve
yabancı dil bilgileri alanlarında boş kayıtlar oluşmaktadır.
VERİTABANI NORMALİZASYONU
Eğer boş kayıtlar yerine ders kaydının bulunduğu satıra yabancı dil bilgisi
girilir ise bu sefer de tabloda görüldüğü gibi ders veya yabancı dil verisi
kadar kayıt oluşturulması gerekecek ve bu durum veri tekrarına neden
olacaktır.
VERİTABANI NORMALİZASYONU
Örneğin Ayşe Mutlu adlı öğrenci iki ders almakta ve bir tane de yabancı
dil bilmektedir. Tabloda her ders kaydının olduğu satıra ayrıca yabancı dil
bilgisi eklenmelidir.
Oluşan tablo dördüncü normal forma göre düzenlenecek olursa, ders ve
yabancı dil olarak iki tabloya bölünmelidir. Ders tablosu "Öğrenci No",
"Adı", "Soyadı" ve "Ders" alanlarından, yabancı dil tablosu ise "Öğrenci
No", "Adı", "Soyadı" ve "Yabancı Dil" alanlarından oluşacaktır.
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
VERİTABANI NORMALİZASYONU
5. NORMALİZASYON KURALI (BEŞİNCİ NORMAL FORM)
Veritabanında bulunan tablolarda veri tekrarlarını ortadan kaldırmak
amacı ile uygulanmaktadır. Dördüncü normal formda kaldırılamayan veri
tekrarlarını ortadan kaldırmak için beşinci normalizasyon kuralı uygulanır.
Beşinci normalizasyon kuralında tablo mümkün oldukça küçük parçalara
bölünerek veri tekrarı ortadan kaldırır.
Örneğin belirli firmaların ürünlerini satan bayileri ve bilgilerini gösteren
tabloyu inceleyecek olursak. Bayiler birden çok firmanın birden çok
ürününü satmaktadır. Bayilerin iki farklı firmanın ürettiği iki ayrı ürünü
sattığını düşünürsek, oluşturulacak tablo;
VERİTABANI NORMALİZASYONU
Ancak bu şekilde oluşturulan tabloda "Firma 1" in "Ürün 1" i "Firma2" nin
ise "Ürün2" yi ürettiği, "Bayii" ve "Bayi2" nin de sadece birer ürün
satmakta olduğu görülmektedir. Bu şekilde oluşturulan tabloda gerekli
veriler eksik kalmaktadır. Tabloyu genişletecek olursak;
VERİTABANI NORMALİZASYONU
Bu şekilde oluşan tablo bayiler ile ilgili tüm verileri içermekte ama veri
tekrarı oluşmaktadır. Beşinci normal forma dönüştürmek için bu tablo üç
tabloya bölünmelidir. Bölünen üç tabloda hem hangi bayinin hangi
firmalar ile bağlantılı olduğunu, hem de hangi ürünleri sattığını ve hangi
firmaların da hangi ürünleri ürettiğini gösterebilmekteyiz. Bu şekilde
oluşturulan tablo beşinci normal forma uymaktadır.
VERİTABANI NORMALİZASYONU
BOYCE-CODD NORMAL FORMU
Boyce-Codd normal form 1974'te Edgar Frank Codd ve Raymond Boyce
tarafından geliştirilmiştir. Geliştirilen bu form yapısında amaç ilişkisel
veritabanında oluşabilecek mantıksal hataları engellemektir. BoyceCodd normal form yapısında, veritabanları birinci, ikinci ve üçüncü
normal forma da uymak zorundadır. Bu formda belirleyici tüm alanların
anahtar alan olması gerekmektedir. Örneğin öğrenci, bölüm ve danışman
arasındaki ilişkiyi incelersek, oluşturulacak tablo "Öğrenci No", "Adı",
"Soyadı", "Bölüm" ve "Danışman" alanlarını içerecektir.
VERİTABANI NORMALİZASYONU
Her bir satırdaki her alan sadece tek bir veri içermektedir. Bu nedenle
birinci normal forma uymaktadır.
Anahtar alan olmayan tüm alanlar anahtar alana bağlanmaktadır. Kısmi
bir bağımlılık içermemektedir. Bu nedenle ikinci normal forma
uymaktadır.
Anahtar olmayan bir alan anahtar olmayan diğer bir alan ile bağlantılı
değildir. Bu nedenle üçüncü normal forma uymaktadır.
VERİTABANI NORMALİZASYONU
Tablo üç normal formada uymaktadır ancak tabloda örneğin Ayça Yılmaz
silindiği takdirde "Bölüm3" bilgileri de silinecektir. "Bölüm3" 'e yeni bir
öğrenci kayıt olana kadar veritabanında "Bölüm3" kayıtlı olmayacaktır. Bu
nedenle Boyce-Codd normal formuna göre tablo öğrenci-bölüm ve
danışman-bölüm olarak iki ayrı tabloya bölünmelidir. Bu şekilde
oluşturulan tablolar Boyce-Codd normal forma uymaktadır.
Download
Study collections