Veritabanlarında Normalizasyon Nedir ?
Merhaba arkadaşlar,
Bu akşam uykumu aldım.. Kafam rahat... Yazmak için de dışarda güzel bir hava var:D ..
Peki bu akşam mutfakta neler var?
İşte size bu akşam yazılım dünyasının vazgeçilmezi ve bağlanamadan duramadığımız veritabanları üzerine yazacağım..
Malumunuz bu veritabanlarında aynen kodlamada olduğu bizi sözdizimi açısında denetlener. Mantıksal denetmeleri ve uygunlukları bize ihale eder..(Sağolsun).
Efendim benim sizinle paylaşmak istediğim kısımda tamda burdan başlıyor Normalizasyon. Öncelikle sizleri 1970 li yılların başlarına götürmek istiyorum. O dönem böle gani relational(ilişkisel) veritabanları falan yok millet fakir :D hierarchical(hiyerarşik) bir veritabanı modellemesi var. IBM'in Apollo ile paraya para demediği dönem.
Sonra one man ortaya çıkar o dönemde Edgar Codd(1923-2003) . İlk olarak ilişkisel veritabanı modelini ortaya atar yine IBM içerisinden. Ve bu dönemki kullandığımız veritabanlarının fikir babası olur.
Ve aynı dönemde veritabanının mantıksal olarak düzenlemesine yardımcı olacak Normalizasyon ile alakalı makaleler yayınlar. 5 adet Normal Form'dan bahseder. Ben ise size bunların 2 sinden bahsedeceğim. (Diğerleri yaygın olarak kullanılmıyor.)
Normal Formları açıklamadan önce bir kaç terimden bahsetmem gerekiyor.
Decomposition: Tabloyu bıçak ile bölmeye yarar. Şeriatın kestiği parmak acımaz misali... Mesela;
İşçi tablosu olsun;
İsci_Id Ad Soyad Hobi
1 Ali Veli Kitap
2 Ali Veli Yüzmek
3 Mehmet Deneme Ata binmek
Şimdi yukarıda gördüğünüz gibi ; Ali'ye ait bilgiler tekrar edilmiş ve Ali nin tüm hobileri silinse Aliye ait hiç bir bilgi kalmayacak.
İşte burda tablomuzu bölüyoruz.
İşçi Tablosu: Isci_Id,Ad,Soyad
İşçi_Hobby Tablosu: Isci_Id,Hobby
Functional Dependency: Beni bilirsen diğerlerini de bilirsin anlamına gelmektedir. Bu da ne dediniz duydum. Hemen açıklıyorum.
A ---> B
A bilgisini bilerek B bilgisine ulaşmaktır.
Elif Şafak ----> Aşk (romanının ismi) ulaşılabilir. Ama bu şu demek değildir.
Aşk -----> Elif Şafak çünkü Aşk adlı başka romanlar olabilir ...Bu da kesinlikle Elif Şafak'a aittir anlamına gelmez.
Hade gayri başlayalım şu formlara;
Normal Form 1: Çok basittir kendisi tek isteği vardır ... Der ki gözünü sevem bir kayıttaki kolona sadece 1 adet veri gir.
Üstteki örnekte bazılarnnız aklına hobby kolonuna "kitap okumak, yüzmek" şeklinde yazmak gelebilirdi işte Normal Form 1 buna kızar hem de çok :D
Normal Form 3: Bu kuralda der ki kardeşim senin bir tablonda bir den fazla functional dependency olmasın işleri karıştırma der.
Yani;
Isci tablosu şöyle olsun;
Isci_Id,Isci_Ad,Isci_Soyad,Isci_Dogum,Dept_no,Dept_ad,Dep_yer
Şimdi size sorarım acaba Isci_Id ile Ad,Soyad,Dogum ve Dept ' nı öğrenebilir miyiz? Cevabınız evet duyabiliyorum. Peki Dept_no ile Dept_ad ve Dept_yer öğrenebilir miyiz? E buna da Evet. Peki oldu mu şimdi ? Aynı tabloda iki adet dependency oldu. Çok şükür ki decomposition' ımız var. Hemencecik bölüyoruz.
İsci Tablosu: sci_Id,Isci_Ad,Isci_Soyad,Isci_Dogum,Dept_no
Dept Tablosu: Dept_no,Dept_ad,Dept_yer
Neyse benden bu kadar ...Bir sonraki yazıda tekrar buluşmak üzere.
Saygılarımla.
Bu akşam uykumu aldım.. Kafam rahat... Yazmak için de dışarda güzel bir hava var:D ..
Peki bu akşam mutfakta neler var?
İşte size bu akşam yazılım dünyasının vazgeçilmezi ve bağlanamadan duramadığımız veritabanları üzerine yazacağım..
Malumunuz bu veritabanlarında aynen kodlamada olduğu bizi sözdizimi açısında denetlener. Mantıksal denetmeleri ve uygunlukları bize ihale eder..(Sağolsun).
Efendim benim sizinle paylaşmak istediğim kısımda tamda burdan başlıyor Normalizasyon. Öncelikle sizleri 1970 li yılların başlarına götürmek istiyorum. O dönem böle gani relational(ilişkisel) veritabanları falan yok millet fakir :D hierarchical(hiyerarşik) bir veritabanı modellemesi var. IBM'in Apollo ile paraya para demediği dönem.
Sonra one man ortaya çıkar o dönemde Edgar Codd(1923-2003) . İlk olarak ilişkisel veritabanı modelini ortaya atar yine IBM içerisinden. Ve bu dönemki kullandığımız veritabanlarının fikir babası olur.
Ve aynı dönemde veritabanının mantıksal olarak düzenlemesine yardımcı olacak Normalizasyon ile alakalı makaleler yayınlar. 5 adet Normal Form'dan bahseder. Ben ise size bunların 2 sinden bahsedeceğim. (Diğerleri yaygın olarak kullanılmıyor.)
Normal Formları açıklamadan önce bir kaç terimden bahsetmem gerekiyor.
Decomposition: Tabloyu bıçak ile bölmeye yarar. Şeriatın kestiği parmak acımaz misali... Mesela;
İşçi tablosu olsun;
İsci_Id Ad Soyad Hobi
1 Ali Veli Kitap
2 Ali Veli Yüzmek
3 Mehmet Deneme Ata binmek
Şimdi yukarıda gördüğünüz gibi ; Ali'ye ait bilgiler tekrar edilmiş ve Ali nin tüm hobileri silinse Aliye ait hiç bir bilgi kalmayacak.
İşte burda tablomuzu bölüyoruz.
İşçi Tablosu: Isci_Id,Ad,Soyad
İşçi_Hobby Tablosu: Isci_Id,Hobby
Functional Dependency: Beni bilirsen diğerlerini de bilirsin anlamına gelmektedir. Bu da ne dediniz duydum. Hemen açıklıyorum.
A ---> B
A bilgisini bilerek B bilgisine ulaşmaktır.
Elif Şafak ----> Aşk (romanının ismi) ulaşılabilir. Ama bu şu demek değildir.
Aşk -----> Elif Şafak çünkü Aşk adlı başka romanlar olabilir ...Bu da kesinlikle Elif Şafak'a aittir anlamına gelmez.
Hade gayri başlayalım şu formlara;
Normal Form 1: Çok basittir kendisi tek isteği vardır ... Der ki gözünü sevem bir kayıttaki kolona sadece 1 adet veri gir.
Üstteki örnekte bazılarnnız aklına hobby kolonuna "kitap okumak, yüzmek" şeklinde yazmak gelebilirdi işte Normal Form 1 buna kızar hem de çok :D
Normal Form 3: Bu kuralda der ki kardeşim senin bir tablonda bir den fazla functional dependency olmasın işleri karıştırma der.
Yani;
Isci tablosu şöyle olsun;
Isci_Id,Isci_Ad,Isci_Soyad,Isci_Dogum,Dept_no,Dept_ad,Dep_yer
Şimdi size sorarım acaba Isci_Id ile Ad,Soyad,Dogum ve Dept ' nı öğrenebilir miyiz? Cevabınız evet duyabiliyorum. Peki Dept_no ile Dept_ad ve Dept_yer öğrenebilir miyiz? E buna da Evet. Peki oldu mu şimdi ? Aynı tabloda iki adet dependency oldu. Çok şükür ki decomposition' ımız var. Hemencecik bölüyoruz.
İsci Tablosu: sci_Id,Isci_Ad,Isci_Soyad,Isci_Dogum,Dept_no
Dept Tablosu: Dept_no,Dept_ad,Dept_yer
Neyse benden bu kadar ...Bir sonraki yazıda tekrar buluşmak üzere.
Saygılarımla.
Yorumlar
Yorum Gönder