Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

VERİ TABANI TASARIMI ve NORMALİZASYONU. Veri Tabanı Tasarımı 1. Nesneler Tanımlanır: Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje.

Benzer bir sunumlar


... konulu sunumlar: "VERİ TABANI TASARIMI ve NORMALİZASYONU. Veri Tabanı Tasarımı 1. Nesneler Tanımlanır: Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje."— Sunum transkripti:

1 VERİ TABANI TASARIMI ve NORMALİZASYONU

2 Veri Tabanı Tasarımı 1. Nesneler Tanımlanır: Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje de öncelikle nesneler tanımlanır. Birkaç proje için nesnelere örnek verilecek olunursa, Kütüphane sistemi : Kitap, üyeler, türler, ödünç hareketleri E-ticaret sistemi : Ürünler, müşteriler, siparişler, teslimat, fatura bilgileri, üreticiler, tedarikçiler, dağıtıcılar... Futbol Ligi : Takımlar, sahalar, oyuncular, fikstür, hakemler, antrenörler Okul Sistemi : Öğrenciler, öğretmenler, dersler, derslikler Personel Sistemi : Çalışanlar, meslekler, çalışılan birimler, maaşlar, izinler Sözlük : kelimeler, anlamlar, diller Not : Tablolara isim verilirken mümkünse tekil isimler kullanılmalıdır. Böyle yapılırsa; hem daha anlaşılır bir tasarım yapılmış olur hem de daha sonra kodlama aşamasında karışıklığın önüne geçilmiş olur. Örneğin içinde Kitap ile ilgili bilgiler bulunduran tablonun adını Kitap koymak oldukça mantıklıdır.

3 2. Her nesne için bir tablo oluşturulur: Her nesne için bir tablo oluşturulur ve her bir tabloya içereceği veriyi en iyi anlatan bir isim verilir. Tablo oluşturma işi, bir kağıt üstünde sembolik olarak gösterilebilir veya doğrudan MS Access, SQL Server, MySQL, Oracle... gibi kullanılmakta olunan VTYS üstünden de oluşturulabilir. Tüm proje bitirilinceye kadar bu tablolar üzerinde muhtemel değişiklikler yapılabilir. Veri Tabanı Tasarımı

4 3. Her bir tablo için bir anahtar alan seçilir: Veritabanındaki herhangi bir veriye erişilmeden önce tabloya erişilir. Bir veritabanında üzerinde en çok işlem yapılan nesne grubu genellikle tablolardır. Bu aşamaya kadar hangi tabloların oluşturulacağına karar verildi. Her bir tablonun içinde hangi bilgilerin saklanılacağı kabaca tasarlanır. Bu aşamada, tabloda yer alacak her bir kaydı bir diğerinden ayırabilecek bir sütuna ihtiyaç duyulur. Veri Tabanı Tasarımı

5 4. Nesnelerin gerekli her bir özelliği için tabloya bir sütun eklenir: Tablo adları tanımlandıktan ve anahtar adları belirlendikten sonra, tablolara sırasıyla adını veren nesnelerin her bir özelliği için bir alan (sütun) eklenir. Örneğin, kitap için; Kitap no, ISBN no, kitap adı, yazarı, türü, sayfa sayısı, özeti, fiyatı, baskı yılı... İPUCU : 1. En başa birincil anahtar olarak belirlenen alanı eklemek bir kural değildir, ancak tablonun anlaşılırlığı ve göze hoş görünmesi açısından tercih edilmesi faydalı olacak bir tekniktir. 2. Genellikle, yapay birincil anahtar alanlar tablo adı ile başlar ve sonunda ID vardır. Ogrenci tablosu için ogrenciID, Personel tablosu için personelID gibi. Veri Tabanı Tasarımı

6 5. Tekrarlayan nesne özellikleri (çoka çok ilişki) için ek tablolar oluşturulur : Akılda hep şu soru olmalıdır: veri tekrarı olacak mı? Veri tekrarı olacaksa bir yerlerde hata yapılıyor demektir. Bu durumda eldeki tablonun en az bir tabloya daha ayrılması gerekiyor demektir. Bazı durumlarda veri tekrarı gerekli olabilir. Örneğin, bir öğrencinin vize notundan bütünlemeye girmesi gibi. Bu durumda, eski notun da silinmemesi için veri tekrar girilmiş olur. Ancak sorgu esnasında son kayıt çağrılır. Veri Tabanı Tasarımı

7 6. Anahtar Alan Belirlenir : İlişkisel veritabanında, tablodan herhangi bir tek kayda erişmek için mutlaka bir farklı özellik sağlanmalıdır ve bu özellik de anahtar alan tarafından sağlanır. Veri Tabanı Tasarımı

8 7.Tablolar arasındaki ilişkiler tanımlanır : Her biri bir nesneye dair özellikleri barındıran tabloların tümü göz önüne alınır ve birbirleri ile olan ilişkileri tanımlanmaya çalışılır. Örneğin kitabı ödünç verebiliriz. Bu durumda, ödünç tablosu ile Kitap tablosu ilişkili olacaktır. Kitap üyelere ödünç verilir. Bu durumda, ödünç ile üyeler arasında da bir ilişki vardır. Türler ile Kitap arasında bir ilişki vardır, bir kitabın en az bir türe dahil olması gerekir. Veri Tabanı Tasarımı

9 Normalizasyon veri tabanı tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir. Normalizasyon(Ayrıştırma), tanım olarak ise ; veritabanlarında çok fazla sütun ve satırdan oluşan bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir

10 Normalizasyon yapılırken uyulması gereken kuralların her birine normal form adı verilir. Birinci Normal Form (1NF) İkinci Normal Form (2NF) Üçüncü Normal Form (3NF) Daha yüksek düzey formlar var ama çok fazla kullanılmıyor.

11 Normalizasyon Amaçları Veri Bütünlüğünün Sağlanması Gereksiz veri tekrarını önleyerek verilerdeki bozulmaları önlemek Uygulamadan Bağımsızlık Uygulama değişse bile veritabanı tutarlı olarak çalışmalı Performansı Arttırmak Veri tekrarı en aza iner ve arama hızlı olur

12 1NF Bir satırdaki bir alan yalnızca bir tek bilgi içerebilir.

13 Örnek uyenoadeposta 1Ayşeayse@gazi.edu.tr 2Zerrinzerrin@gmail.com,zerrin1992@yahoo.com 3Mehmetmehmet@gmail.com,mehmet@hotmail.com

14 Örnek uyenoad 1Ayşe 2Zerrin 3Mehmet uyenoeposta 1ayse@gazi.edu.tr 2zerrin@gmail.com 2zerrin1992@yahoo.com 3mehmet@gmail.com, 3mehmet@hotmail.com

15 Örnek:2

16

17

18 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. Örnek:3

19 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

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

21 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

22 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 ……………

23 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 ……………

24 2NF İ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. VEYA 1. Tabloda bir birincil anahtar olmalı ve anahtar olmayan sütunlar birincil anahtara bağımlı olmalı. 2. Birincil anahtar birden fazla sütundan oluşuyorsa tablodaki veriler her iki sütuna da bağımlı olmalıdır

25 Örnek TurnuvaYılkazananKazanan doğum tarihi Doğum yeri X2000Ayşe24.01.1992Ankara Y2001Ahmet03.12.1990İzmir X2001Ayşe24.01.1992Ankara

26 Örnek TurnuvaYılkazanan X2000Ayşe Y2001Ahmet X2001Ayşe kazananKazanan doğum tarihiDoğum yeri Ayşe24.01.1992Ankara Ahmet03.12.1990İzmir

27 Örnek:2

28

29 Birinci Normal Form Uygulandığında (Önceki örnek): 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

30 İ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.

31 İ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)

32 İ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

33 İ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.

34 Satır Ekleme Sorunu MÜŞTERİLER 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

35 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

36 3NF Bir tablo için, anahtar olmayan tüm nitelikler anahtara geçişsiz bağımlı BAŞKA BİR İFADEYLE Anahtar olmayan sütunlar anahtar sütuna tam bağımlı olmalı Anahtar olmayan sütuna bağımlı olmamalı.

37 Örnek 2

38

39 Önceki Örnek: 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

40 Üçü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_kodu  şehir_adı” 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.

41 Üçü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

42 4NF Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin verilmez. Her bağımsız bire çok ilişki için ayrı bir tablo oluşturulması gerekir.

43 Örnek ogrnobolumspor 123FizikKayak 123KimyaKayak 123FizikTenis

44 Örnek ogrnobolumspor 123FizikKayak 123KimyaKayak 123FizikTenis ogrnobolum 123Fizik 123Kimya ogrnospor 123Kayak 123Tenis

45 Dördüncü Normal Form Burada bir öğrenci birden çok bölüme kayıt olabilmekte ve birden çok spor etkinliğine katılabilmektedir. Bu nedenle ÖğrNo ile Bölüm ve ÖğrNo ile Spor arasındaki ilişkiler birer işlevsel bağımlılık değil çok-değerli bağımlılık (multivalued dependency) halindedir. ÖĞRENCİ ÖğrNoBölümSpor 123FizikKayak 123KimyaKayak 123FizikTenis 123KimyaTenis 999KimyaTenis ÖğrNo  Bölüm ÖğrNo  Spor çok-değerli bağımlılık

46 Dördüncü Normal Form 123 numaralı öğrencinin bir bölüme daha kayıt olması yada bir spor etkinliğine daha katılması halinde iki kayıt daha ilave edilmelidir. Bu gibi yineleme sorunlarını ortadan kaldırmak için ÖĞRENCİ ilişkisi ikiye ayrılırak dördüncü normal form (4NF) oluşturulur. ÖĞRENCİ_BÖLÜM ÖğrNoBölüm 123Fizik 123Kimya 999Biyoloji ÖĞRENCİ_SPOR ÖğrNoSpor 123Kayak 123Tenis 999Yüzme

47 5NF Veri tekrarlarını önlemek için her bir tabloyu mümkün olduğunca küçük parçalara bölmek gerekir.

48 Örnek ogrenci (no, adi, soyadi, turu) Doktora/Y.lisans/Lisans ogrenciturleri (no, turu)

49 Örnek

50

51

52

53

54 Ö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

55 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)

56 Ö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

57 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)

58 Ö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

59 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)

60 FilmNoFilmAdıYılıYönetmeniSenaristiŞirketIDŞirketAdı 110912Pulp Fiction1994Quentin Tarantino MFMiramax Films 110912Pulp Fiction1994Quentin TarantinoRoger AvaryMFMiramax Films 114369Se7en1995David FincherA. Kevin WalkerNLNew Line Cinema 416496Bandidas2006Joachim RønningLuc BessonECEuropa Corp. 416496Bandidas2006Joachim RønningR. Mark KamenECEuropa Corp. 416496Bandidas2006Espen SandbergLuc BessonECEuropa Corp. 416496Bandidas2006Espen SandbergR. Mark KamenECEuropa Corp. 1375666Inception2010Christopher Nolan WBWarner Bros Pic. Örnek 4

61 Verilen şema 1. Normal Formda (atomik değerler). Anahtar alanlar Film_No, Yönetmeni ve Senaristi. Filmler (FilmNo, Film_Adı, Yılı, Yönetmeni, Senaristi, ŞirketID, ŞirketAdı) 1NF → 2NF (Yönetmeni ve Senaristi dışındaki tüm nitelikler FilmNo niteliğine kısmi olarak bağımlı) FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi) Filmler (FilmNo, FilmAdı, Yılı, ŞirketID, ŞirketAdı) 2NF → 3NF (ŞirketAdı niteliği ŞirketID niteliğine geçişli olarak bağımlı) FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi) Filmler (FilmNo, FilmAdı, Yılı, ŞirketID) Şirketler (ŞirketID, ŞirketAdı) 3NF → 4NF (Çok-değerli bağımlılık var: Yönetmen ve Senaristin aynı tabloda olması gereksiz tekrarlara neden oluyor) FilmYönetmen (FilmNo, Yönetmeni) FilmSenarist (FilmNo, Senaristi) Filmler (FilmNo, FilmAdı, Yılı, ŞirketID) Şirketler (ŞirketID, ŞirketAdı) NOT: 4NF anlatırken verdiğimiz ÖĞRENCİ(ÖğrNo, Bölüm, Spor) örneğine benziyor

62 Örnek 5 KitapNoKitapAdıYazarıYayıneviAdıYayıneviYeriTürIDTürAdı 100KarOrhan Pamukİletişim Yayınlarıİstanbul1Roman 101Benim Adım KırmızıOrhan PamukYK Kültür Sanatİstanbul1Roman 102Kar KokusuAhmet ÜmitDoğan Kitapİstanbul1Roman 103Aşk KöpekliktirAhmet ÜmitDoğan Kitapİstanbul2Öykü 104Hırsız KöpekMuzaffer İzgüBilgi YayıneviAnkara2Öykü 105Oracle 11gTeoman DinçelKODLABİstanbul4Bilgisayar 106Visual Basic 10Memik YanıkSeçkin YayınlarıAnkara4Bilgisayar 107Taş Meclisi Jean C. Grange Doğan Kitapİstanbul1Roman 108Anna KareninaLev Tolstoyİletişim Yayınlarıİstanbul3Klasik 109İstatistiğe GirişVasfi N. TekinSeçkin YayınlarıAnkara5Akademik

63 Verilen şema atomik değerlere sahip olduğu için 1NF'de. Aynı zamanda KitapNo alanı tek başına PK olabildiği için kısmi bağımlılık araştırması yapmaya gerek yok (2NF'de). PK haricindeki alanlar içinde geçişli bağımlılık var (TürID  TürAdı & YayıneviAdı  YayıneviYeri). KİTAPLAR(KitapNo, KitapAdı, Yazarı, YayıneviAdı, TürID) TÜRLER(TürID, TürAdı) YAYINEVLERİ(YayıneviAdı, YayıneviYeri) Eğer şemada YazarID ve YayıneviID alanları bulunsaydı: KİTAPLAR(KitapNo, KitapAdı, YazarID, YayıneviID, TürID) TÜRLER(TürID, TürAdı) YAYINEVLERİ(YayıneviID, YayıneviAdı, YayıneviYeri) YAZARLAR(YazarID, YazarAdı) 3NF

64 Eğer bir kitabın birden çok yazarı olabilseydi: Bu durumda KitapNo tek başına PK olamaz, "KitapNo, YazarID" ikilisi PK olurdu. Tablo 2NF'de olmazdı. YazarAdı niteliği YazarID niteliğine kısmi bağımlı olur, YAZARLAR(YazarID, YazarAdı) tablosu 1NF  2NF geçişte oluşurdu. Bir kitabın birden çok türü de olabilseydi: "KitapNo, YazarID, TürID" üçlüsü PK olurdu. TÜRLER(TürID, TürAdı) tablosu da 1NF  2NF geçişte oluşurdu. Çok değerli bağımlılık ta oluşurdu: KİTAPLAR(KitapNo, KitapAdı, YayıneviID) YAZARLAR(YazarID, YazarAdı) TÜRLER(TürID, TürAdı) YAYINEVLERİ(YayıneviID, YayıneviAdı, YayıneviYeri) KİTAP_YAZAR(KitapNo, YazarID) KİTAP_TÜR(KitapNo, TürID) 1NF  2NF 2NF  3NF 3NF  4NF

65 Anahtar (Key) Anahtar, bir kaydı tanımlamak için kullanılan veri öğesidir. Genel olarak iki tür anahtar kullanılmaktadır: Süper Anahtar (superkey) ve Aday Anahtar ( candidate key). Süper anahtarlar bir varlığı tek olarak tanımlar ve bir veya birden fazla veri öğesinden oluşabilir. Süper anahtar olmayan ancak anahtar olabilecek durumdaki veri öğelerine aday anahtar denir. Örneğin “Ad”, “Okulno”, “tlf” gibi veri öğeleri birer aday anahtardır. Ancak “ad” veri öğesi birincil anahtar için iyi bir seçim değildir. Çünkü ad bilgisi birçok kişide aynı olabileceğinden varlığı tek olarak tanımlamaz. Genel Kavramlar

66 Veritabanı neden kullanılır? İlişkiler Müşteri No Müsteri adı Mesleği 1Ahmetmimar 2Semaöğretmen 3Serdarmühendis 4Zerrinemekli 5MehmetÖğretim elemanı 6DefneDoktor 7Elifavukat Firma No FirmaAdres 1AÇanakkale Cad. 43/5 2BKayabaşı mah. A Blok 8/4 3CGazi Mah 6/7 4D Müşteri No Firma No Fiyat 111000 YTL 22250 YTL 33350 YTL 42700 YTL 521200 YTL 64100 YTL 71150 YTL

67 Anahtarlar ile iki varlık arasında bir ilişki kurulabilmektedir. İlişki kurmak için iki anahtar tipi kullanılmaktadır: birincil(primary) ve ikincil (secondary) anahtar. Genel Kavramlar

68 Birincil (primary) anahtar, bir kaydı tek olarak tanımlamak için kullanılan bir veri öğesidir. Örneğin bir eğitim kurumundaki öğrenci kaydı için ogrenci_no bilgisi tek olacağından bu öğe bir birincil anahtar yapılabilir. İkincil (secondary) anahtar, normalde bir kaydı tek olarak tanımlamaz fakat aynı özellikleri taşıyan bir kaydın numarasını veya genelde ilişkilerde kullanılan kayıt numarasını tanımlar. Genel Kavramlar

69 Birincil (primary) anahtar tanımlanması zorunlu değildir ancak tavsiye edilmektedir. Birincil anahtar olan sütun boş değerleri (null) veya birbirinin aynı olan değerleri içeremez. Genel Kavramlar

70 İkincil (secondary) anahtar, normalde bir kaydı tek olarak tanımlamaz fakat aynı özellikleri taşıyan bir kaydın numarasını veya genelde ilişkilerde kullanılan kayıt numarasını tanımlar. Genel Kavramlar

71 Yabancı anahtar, başka bir tablodaki anahtar alanı gösteren alanlara denilir. Yabancı anahtar genelde diğer tablolarla ilişki kurmak için kullanılır. Genel Kavramlar

72 İki veya daha fazla tabloyu birlikte sorgulama işlemine join ismi verilir. İlişkisel veritabanının en temelinde birden fazla tablo üstünde birlikte işlem yapabilmek yatar. Bu sayede verilerin tekrarlanması önlenmiş olur ve sonuçta veri yönetimi kolaylaşır. Örneğin, Kitap tablosunda, Kitabın bir tekil numara ile listesini tutmak ve ödünç listesinde de bu Kitabın kim tarafından alındığının, geri getirilip getirilmediğinin kaydı tutulmaktadır. Bazen, bu iki tablodaki bilgilere de bir tek sorgu sonucu olarak ihtiyaç duyulabilir. Joining (ilişkilendirme) Genel Kavramlar

73 Zorlayıcı (Constraint) Herhangi bir alan için girilebilecek verileri kısıtlayıcı kurallara zorlayıcılar denir. İlgili alana girilebilecek değerleri sınırlayan bir deyim yazılır. Yanlış bilgi girişini engeller ve verilerin doğru girilmesini zorunlu hale getirir. Genel Kavramlar

74 Bazen, tabloları olduklarından farklı gösterecek filtrelere ihtiyaç duyulur. Bu türden işlevler için VIEW kullanılır. VIEW ’ler, saklanmış sorgulardan ibarettirler. Aslında tablo gibi kullanılsa da halihazırda böyle bir tablo veritabanında bulunmaz, sadece view(görüntüsü) bulunur. VIEW ’ler şu görevler için kullanılır: Kullanıcıların bazı kritik tabloların sadece belli sütunlarını veya satırlarını görmesi istenildiğinde, Kullanıcıların, çeşitli birim dönüşümlerinden geçmiş değerler görmeleri gerektiğinde, Halihazırdaki tablolarda var olan verilerin başka bir tablo formatında sunulması gerektiğinde Çok kompleks sorguları basitleştirmek için Not : MSAccess ’de VIEW oluşturulamaz. View (Görüntü) Genel Kavramlar

75 Kaynaklar http://ali.pau.edu.tr/2012bahar/veritabani/hafta_2_1%20norm alizasyon.pdf http://sibelsomyurek.com/veritabani/ders_notlari.html http://altanmesut.trakya.edu.tr/vt/


"VERİ TABANI TASARIMI ve NORMALİZASYONU. Veri Tabanı Tasarımı 1. Nesneler Tanımlanır: Nesne, çeşitli özellikleri bulunan bir varlıktır. Herhangi bir proje." indir ppt

Benzer bir sunumlar


Google Reklamları