Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

NORMALİZASYON Emin CELİLOĞLU KIRAÇ İMKB Teknik ve Endüstri Meslek Lisesi Bilişim Teknolojileri Öğretmeni.

Benzer bir sunumlar


... konulu sunumlar: "NORMALİZASYON Emin CELİLOĞLU KIRAÇ İMKB Teknik ve Endüstri Meslek Lisesi Bilişim Teknolojileri Öğretmeni."— Sunum transkripti:

1 NORMALİZASYON Emin CELİLOĞLU KIRAÇ İMKB Teknik ve Endüstri Meslek Lisesi Bilişim Teknolojileri Öğretmeni

2 Veri Modelini Normalleştirmek İlişkisel veri tabanı tasarlanması aşamasında verinin tekrarlanmasını, kaybını veya yetersizliğini önlemek için normalleştirme (normalization) işlemi uygulanır. Normalleştirme, aynı zamanda “ilk taslak” veri tabanı tasarımının üzerinde revizyonlar yapmanın yolu, taslağı son haline yaklaştırmanın yöntemlerden birisidir.

3 Normalleştirmenin Amaçları - 1 Veri bütünlüğünü sağlamak Eğer veri gereksiz yere tekrarlanıyorsa, bu değişik kopyalar, bunlardan habersiz olan uygulama kodları yüzünden bir süre sonra birbirinden farklı değerleri taşımaya başlayabilirler. Bu, doğruluk ve tutarlılık açısından çok kötü bir sonuçtur. Bu gibi durumlarda ilişkisel veri tabanı yönetim sisteminin otomatik bütünlük mekanizmaları bile işe yaramaz. Düzeltmenin, uygulama seviyesinde yapılması gerekir. Fakat bu da uygulama programlarını daha karmaşık hale getirecek, dolayısıyla bakımını zorlaştıracaktır.

4 Normalleştirmenin Amaçları - 2 Uygulamadan bağımsızlık Normalleştirme, “ilişkisel model, verinin içeriğine göre kurulmalı, uygulamaya göre değil” kavramını bir adım daha öne alır. Bu sayede veri modeli, üzerinde onu kullanan uygulama değişse bile, daha tutarlı, sabit ve değişmez olarak kalacaktır. Uygulama programının gereksinimlerinin veri tabanının mantıksal modeli üzerinde minimum etkisi olmalıdır.

5 Normalleştirmenin Amaçları - 3 Performansı arttırmak Dış anahtarların haricinde, tamamıyla normalleştirilmiş bir veri tabanı gereksiz yere kopyalanmış veri miktarını en aza indirecektir. Verilerin daha az kopyasının olması saklama kapasitesinin azalmasına ve veri tabanı motorunun arama süresinin azalmasına yol açar. Bu da performansın artması demektir.

6 Normalleştirme Aşamaları Birinci Normal Form İkinci Normal Form Üçüncü Normal Form Dördüncü Normal Form …

7 Normal Olmayan Form müşteri_noşehir_koduşehir_adıgönderi_nomiktar 134İstanbul1,2,3,4,6300,200,400,200,100 26Ankara1,2300,400 36Ankara2200 434İstanbul2,4,5200,300,400 İlişkisel veri tabanı modelinin temel kuralına göre bütün niteliklerin aldığı değerler atomik (tek ve basit) olmalıdır. Aşağıdaki DAĞITIM tablosu bu kurala uymamaktadır, bu yüzden normal değildir.

8 Birinci Normal Form Uygulandığında: müşteri_noşehir_koduşehir_adıgönderi_nomiktar 134İstanbul1300 134İstanbul2200 134İstanbul3400 134İstanbul4200 134İstanbul6100 26Ankara1300 26Ankara2400 36Ankara2200 434İstanbul2200 434İstanbul4300 434İstanbul5400

9 Birinci Normal Formun Sorunları Birinci normal formdaki bir tablo bazı alanlarda tekrarlı verilere sahiptir. Örneğimizde şehir_kodu ve şehir_adı alanlarında her müşteri için tekrarlı veriler vardır. Bu tekrarlar ekleme, silme ve güncelleme işlemlerinde sorunlara neden olacaktır.

10 Satır Ekleme Sorunu Başka bir müşterinin bilgilerinin (müşteri_no, şehir_kodu, şehir_adı) girilmesi için mutlaka o müşteriye bir dağıtım işleminin yapılması (gönderi_no ve miktar değerlerinin girilmiş olması) gerekiyor. müşteri_noşehir_koduşehir_adıgönderi_nomiktar 134İstanbul1300 …………… 434İstanbul5400 535İzmir

11 Satır Silme Sorunu Bir müşteriye tek bir dağıtım yapıldıysa (örn. 3 no’lu müşteri), o dağıtım işlemi iptal edildiğinde, sadece gönderi_no ve miktarı değil, o dağıtımın yapıldığı müşteri hakkındaki diğer bilgiler de (müşteri_no, şehir_kodu, şehir_adı) yok olur. müşteri_noşehir_koduşehir_adıgönderi_nomiktar 134İstanbul1300 134İstanbul2200 …………… 36Ankara2200 ……………

12 Güncelleme Sorunu 1 numaralı müşteri Ankara’ya taşınırsa, bu müşteri ile ilgili tüm satırların güncelleştirilmesi gerekecektir. Eğer tablo çok büyük ise, sadece bir müşteri ile ilgili küçük bir değişiklik bile binlerce kaydın güncelleştirilmesini gerektirebilir. müşteri_noşehir_koduşehir_adıgönderi_nomiktar 134İstanbul1300 134İstanbul2200 134İstanbul3400 134İstanbul4200 ……………

13 İkinci Normal Form Birinci normal formdaki sorunlardan (en azından güncelleme sorunundan) kurtulmak için nitelikler arasındaki işlevsel bağımlılıktan yararlanılarak birinci normal form (1NF) tablolarının birden fazla tabloya dönüştürülmesi sonucunda ikinci normal forma (2NF) ulaşılır. İkinci normal formda, ilişkisel tablonun her bir anahtar olmayan sütunu birincil anahtara kısmi bağımlı değil, tam işlevsel bağımlı olmalıdır.

14 İkinci Normal Form şehir_kodu ve şehir_adı nitelikleri (müşteri_no, gönderi_no) birleşik anahtarının sadece müşteri_no niteliği üzerinde tam işlevsel bağımlıdır. O halde şehir_kodu ve şehir_adı nitelikleri müşteri_no ile beraber ayrı bir tablo oluşturmalıdır. ▫DAĞITIM(müşteri_no, şehir_kodu, şehir_adı, gönderi_no, miktar) ▫MÜŞTERİLER(müşteri_no, şehir_kodu, şehir_adı) ▫MİKTARLAR(müşteri_no, gönderi_no, miktar)

15 İkinci Normal Form Uygulandığında: müşteri_nogönderi_nomiktar 11300 12200 13400 14200 16100 21300 22400 32200 42 44300 45400 müşteri_noşehir_koduşehir_adı 134İstanbul 26Ankara 36 434İstanbul MÜŞTERİLER MİKTARLAR

16 İkinci Normal Formun Sorunları Birinci normal formdaki güncelleme sorununu ikinci normal forma dönüştürme ile ortadan kaldırmış olsak ta, ikinci normal formda da ekleme ve silme sorunları olabilmektedir.

17 Satır Ekleme Sorunu ŞEHİRLER tablosuna yeni bir müşteri kaydı girilmediği sürece yeni bir şehir tanımı yapılamaz. İzmir ilini tabloya dahil edebilmek için İzmir’de bulunan bir müşteriye ihtiyaç vardır. müşteri_noşehir_koduşehir_adı 134İstanbul 26Ankara 36 434İstanbul 35İzmir

18 Satır Silme Sorunu Tablodan bir müşteri silindiğinde, eğer o şehirdeki tek müşteri ise, şehir_kodu ve şehir_adı bilgileri de yok olacaktır. müşteri_noşehir_koduşehir_adı 134İstanbul 26Ankara 36 434İstanbul 535İzmir

19 Üçüncü Normal Form Birinci normal formdaki sorunlardan kurtulmak için nitelikler arasındaki kısmi işlevsel bağımlılıkları ortadan kaldırmıştık. İkinci normal formdaki sorunlardan kurtulmak için de nitelikler arasındaki geçişli işlevsel bağımlılıkları ortadan kaldırmamız gerekir. Örneğimizde “şehir_adı  şehir_kodu” işlevsel bağımlılığının geçişli olduğunu belirtmiştik. Bir anahtara bağlı olmayan bu bağımlılığı ayrı bir tabloya dönüştürerek üçüncü normal formu (3NF) elde edebiliriz.

20 Üçüncü Normal Form Uygulandığında: müşteri_nogönderi_nomiktar 11300 12200 13400 14200 16100 21300 22400 32200 42 44300 45400 şehir_koduşehir_adı 6Ankara 34İstanbul 35İzmir müşteri_noşehir_kodu 134 26 36 4 535 ŞEHİRLERMİKTARLAR MÜŞTERİLER

21 Özet NF: Normal olmayan form 1NF: Bütün alan değerleri atomik ise R 1NF’de 2NF: R 1NF’de ise ve anahtar olmayan tüm nitelikler anahtara tam bağımlı ise R 2NF’de 3NF: R 2NF’de ise ve anahtar olmayan tüm nitelikler anahtara geçişsiz bağımlı ise R 3NF’de

22 Örnek 1 Ö.NOÖ.ADÖ.SOYADDERS_NODERS_ADIVIZEFINALH.NOH.ADH.SOYAD 2001001AhmetSolmaz202Matematik 2706011ÖzlemUÇAR 2001001AhmetSolmaz203Fizik 2804011ÖzlemUÇAR 2001001AhmetSolmaz204 Bilgisayar Mühendisliğine Giriş 2 60453AydınCARUS 2001001AhmetSolmaz205 Atatürk İlkeleri ve İnkılap Tarihi 2 90959ZekiDURMUŞ 2001001AhmetSolmaz206Türk Dili 2707512NebahatYILDIZ 2001005SeyhanGülmez202Matematik 2809511ÖzlemUÇAR 2001005SeyhanGülmez203Fizik 2807011ÖzlemUÇAR 2001005SeyhanGülmez204 Bilgisayar Mühendisliğine Giriş 2 60703AydınCARUS 2001002SelimSolmaz702Veri Tabanı Yönetimi60506AltanMESUT 2001003AhmetVardar702Veri Tabanı Yönetimi60 6AltanMESUT 2001004SezaiKantar702Veri Tabanı Yönetimi65556AltanMESUT

23 Verilen şema 1. Normal Formda (atomik değerler) ▫OKUL (Ö.No, Ö.Ad, Ö.Soyad, Ders_No, Ders_Adı, Vize, Final, H.No, H.Ad, H.Soyad) 2. NF’ye geçerken kısmi bağımlılıklar ortadan kaldırılır ▫NOTLAR(Ö.No, Ders_No, Vize, Final) ▫ÖĞRENCİLER(Ö.No, Ö.Ad, Ö.Soyad) ▫DERSLER(Ders_No, Ders_Adı, H.No, H.Ad, H.Soyad) 3. NF’ye geçerken geçişli bağımlılıklar ortadan kaldırılır ▫NOTLAR(Ö.No, Ders_No, Vize, Final) ▫ÖĞRENCİLER(Ö.No, Ö.Ad, Ö.Soyad) ▫DERSLER(Ders_No, Ders_Adı, H.No) ▫HOCALAR(H.No, H.Ad, H.Soyad)

24 Örnek 2 UrunNoUrunAdParcaNoParcaAdMiktarUreticiNoUreticiAdUreticiSehirUreticiTel 10026201 Pavilion DV2620ET 1 Intel Core 2 Duo T5450 1100HPSeattle123456789 10026201 Pavilion DV2620ET 2 Kingston 512MB DDR2 1100HPSeattle123456789 10026201 Pavilion DV2620ET 3 Samsung 160GB HDD 1100HPSeattle123456789 10026201 Pavilion DV2620ET 4 Nvidia GeForce 8400M 1100HPSeattle123456789 10026501 Pavilion DV2650ET 1 Intel Core 2 Duo T7500 1100HPSeattle123456789 10026501 Pavilion DV2650ET 2 Kingston 1024MB DDR2 2100HPSeattle123456789 10026501 Pavilion DV2650ET 3 Samsung 160GB HDD 1100HPSeattle123456789 10026501 Pavilion DV2650ET 4 Nvidia GeForce 8400M 1100HPSeattle123456789 10220012 Satellite A200- 1N2 1 Intel Core 2 Duo T5250 1102ToshibaTokyo335678912 10220012 Satellite A200- 1N2 2 Samsung 1024MB DDR2 2102ToshibaTokyo335678912 10220012 Satellite A200- 1N2 3 Maxtor 120GB HDD 1102ToshibaTokyo335678912 10220012 Satellite A200- 1N2 4Intel GMA X31001102ToshibaTokyo335678912

25 Verilen şema 1. Normal Formda (atomik değerler) ▫Urun_Parca (UrunNo, UrunAd, ParcaNo, ParcaAd, Miktar, UreticiNo, UreticiAd, UreticiSehir, UreticiTel) 1NF → 2NF (kısmi bağımlılıklar giderilir) ▫Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) ▫Urunler (UrunNo, UrunAd, UreticiNo, UreticiAd, UreticiSehir, UreticiTel) 2NF → 3NF (geçişli bağımlılıklar giderilir) ▫Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) ▫Urunler (UrunNo, UrunAd, UreticiNo) ▫Ureticiler (UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

26 Örnek 3 SiparisNoTarihUrunAdUrunNoAdetMusNoMusAdMusSoyad 123.11.2007Nokia 6300574631875AliKorkmaz 123.11.2007Kingston 2 GB USB736242875AliKorkmaz 223.11.2007Samsung D600723521932SelinAtasoy 324.11.2007Nokia 5070712241123KamilSönmez 424.11.2007Philips DVP 5160/12908761452MetinKaplan 525.11.2007 Samsung Digimax S850981231786KemalDurukan 625.11.2007Sinbo SBS-4414 Baskül354652932SelinAtasoy 725.11.2007Canon Powershot A560952931875AliKorkmaz 725.11.2007Kingston 2 GB SD372851875AliKorkmaz 826.11.2007Nokia 6300574631321EceÇağlayan

27 Verilen şema 1. Normal Formda (atomik değerler) ▫SIPARIS (SiparisNo, Tarih, UrunAd, UrunNo, Adet, MusNo, MusAd, MusSoyad) 1NF → 2NF (kısmi bağımlılıklar giderilir) ▫SIPARIS_URUN (SiparisNo, UrunNo, Adet) ▫SIPARIS_MUSTERI (SiparisNo, Tarih, MusNo, MusAd, MusSoyad) ▫URUN (UrunNo, UrunAd) 2NF → 3NF (geçişli bağımlılıklar giderilir) ▫SIPARIS_URUN (SiparisNo, UrunNo, Adet) ▫SIPARIS_ MUSTERI (SiparisNo, Tarih, MusNo) ▫MUSTERILER (MusNo, MusAd, MusSoyad) ▫URUN (UrunNo, UrunAd)

28 Sunu Bitmiştir. Dinlediğiniz İçin Teşekkürler Emin CELİLOĞLU Bilişim Teknolojileri Öğretmeni Sunuya ulaşmak için isteyenler www.eminceliloglu.com/kiracimkb/veritabanı sayfasından ulaşabilirler.


"NORMALİZASYON Emin CELİLOĞLU KIRAÇ İMKB Teknik ve Endüstri Meslek Lisesi Bilişim Teknolojileri Öğretmeni." indir ppt

Benzer bir sunumlar


Google Reklamları