2 likisel Veritaban Tasarm ve Normalizasyon 21 02
2 İlişkisel Veritabanı Tasarımı ve Normalizasyon 21. 02. 2011 Veritabanı 1
Veritabanı Tasarım yapılırken izlenecek adımlar; • Depolanacak verilerin belirlenmesi – Okul. Veritabanı: Öğrenciler(no, adı, tc, bölümü) • • Tabloların oluşturulması Anahtar sütunların belirlenmesi Tabloları bölme İlişkilerin kurulması
İlişkisel Veritabanı Kavramsal Tasarım • Verilerin daha üst seviyede gösterilmesi. • Kullanılan model: ER (Entity Relationship – Varlık ilişki) • Varlık ilişki modeli kavramsal tasarımda kullanılan popüler model. • VTYS den bağımsız modelleme yapılır. • Varlık ilişki modelinde kullanılan şekiller veritabanın şematik olarak tasarlanmasını sağlar
Varlık-İlişki Modeli • Temel Üç öğe vardır; ØVarlık ; Öğrenci, ders, Araba, Notlar ØNitelik ; ogr. No, ad, soyad, ders. Kod, ders. Ad Øİlişki ; Öğrenci. ogr. No <-- 1 -n --> Notlar. ogr. No
Varlık-İlişki Modeli- Varlık Ø Varlık ; Ø Modelin en temel öğesi Ø Var olan ve benzerinde ayıt edilen her şey varlık; öğrenci, ders, kitap, araba. Ø Birden fazla varlığın oluşturduğu kümeye varlık kümesi denir. Ø Model içerisinde dikdörtgen ile gösterilir. Varlığın ismi içine yazılır. Öğrenci
Varlık-İlişki Modeli - Nitelik Ø Varlıkların herbir özelliği nitelik olarak ifade edilir. ogr. No, ad, soyad, ders. Kod, ders. Ad Ø Model içerisinde oval gösterilir. Niteliğin ismi içine yazılır. Ø Nitelik bulunduğu varlığa düz çizgi ile bağlanır Ø Varitabanında her tablonun bir sütununu ifade eder. Ø Niteliğin değeri her bir varlık için farklıysa anahtar nitelik olarak belirlenir. Şema içerisinde altı çizilidir. ad per_id Personel görev maaş
Varlık-İlişki Modeli -Nitelik Ø Nitelik (Devamı) Ø Birden fazla değere sahip nitelikler çok değerli niteliklerdir ve çift çizgi ile gösterilir. ad per_id Personel görev maaş ydil Ø Domain (Etki alanı); Niteliğin alabileceği değer aralığıdır. Örneğin öğrenci notları 0 -100 arasında olmalıdır. Etki alanı ER şemasında gösterilmez.
Varlık-İlişki Modeli -İlişki Ø İlişki ; Ø Farklı varlık kümeleri arasındaki ilişkileri ifade eder. Öğrenci ve dersler arasında ders alma ilişkisi vardır. Ø Model içerisinde baklava dilimi ile gösterilir. İlişkinin ismi içerisine yazılır. Ø Baklava dilimi ilişkili olduğu varlıklara düz çizgi ile bağlanır. Ø Varlıklar arasında 1 -1, 1 -n, ve n-m ilişki olabilir. Ø İki varlık kümesi arasında birden fazla ilişki olabilir.
Varlık-İlişki Modeli –İlişki (Davam) Öğrenci ders arasındaki ilişki Öğrenci Alır Ders Personel bölüm arasındaki ilişki Personel Çalışır Bölüm
Varlık-İlişki Modeli –İlişki (Davam) çalışır Personel Bölüm yönetir
Varlık-İlişki Modeli –İlişki (Davam) • Varlık kümeleri arasında oluşturulan ilişkilerde ilişki sonucu nitelikler oluşabilir. Bu niteliklere tanımlayıcı nitelik denir. • Örnek ; gösterime giren bir filmin sinemalarda gösterim saati ve tarihi farklıdır. film_id film_adı Film y_tarih sinema _id Sinema Oynar yonetm en saat sinema _adı adres telefon
Varlık-İlişki Modeli –İlişki (Davam) Öğrenci ders arasındaki 1 -n ilişki 1 Öğrenci Alır n Ders Personel bölüm arasındaki n-1 ve 1 -1 ilişki çalışır n 1 Personel Bölüm 1 1 yöneti ci
Varlık-İlişki Modeli –İlişki (Davam) • Film ve sinema arasında n-m ilişkisi film_id n Film y_tarih yonetm en sinema _id tarih film_adı Oynar saat m sinema _adı Sinema adres telefon
Varlık-İlişki Modeli –İlişki (Davam) • İlişkiler genelde farklı varlık kümelerinde olmasına rağmen bazen tek bir varlık kümesinde olabilir. Bu tür ilişkilere recursive ilişki denir. Personel n yönetir 1 Personel m n ebeve yn
Varlık-İlişki Modeli- (Zayıf Varlık Kümeleri) • Bir varlık kümesi anahtar niteliğe sahip değilse zayıf varlık kümesi olarak adlandırılır. • Zayıf varlık kümeleri çift çizgili dörtgen ile gösterilir. Üniversite 1 aittir n Fakülte
Kullanılan Semboller Sembol Açıklama Varlık kümesi Nitelik Anahtar nitelik İlişki Çok değerli nitelik Zayıf varlık kümesi
Bire-bir ilişkilerin tabloya dönüşümü • Varlık kümelerini tablolara dönüştür • Nitelikleri tabloların sütunlarına dönüştür • İlişkide bir varlık kümesinin birincil anahtarı diğer varlık kümesinin yabancı anahtarı olarak belirlenir.
Bire-çok ilişkilerin tabloya dönüşümü • Varlık kümelerini tablolara dönüştür • Nitelikleri tabloların sütunlarına dönüştür • İlişkilerin n tarafındaki tabloya 1 tarafındaki tablonun birincil anahtar sütunu yabancıl anahtar olarak eklenir. • İlişkilerde tanımlayıcı nitelik bulunuyorsa tanımlayıcı nitelikler ilişkinin n taraftaki tabloya sütun olarak eklenir.
Çoğa-çok ilişkilerin tabloya dönüşümü • • Varlık kümelerini tablolara dönüştür Oluşturulan ilişki isminde tablo oluşturulur. Nitelikleri tabloların sütunlarına dönüştür. İlişkiyi oluşturan tabloların birincil anahtarları ilişkiyi oluşturan tabloya yabancıl anahtar olarak eklenir. • İlişkide oluşturulan tablonun birincil anahtarı oluşturulan yabancıl anahtarların birleşiminden oluşur. Bu şekilde oluşturulan birincil anahtar cevap vermezse yeni bir alan eklenir ve birincil anahtar yapılır.
Çok değerli niteliklerin tabloya dönüşümü • Varlık kümelerini tablolara dönüştür • Nitelikleri tabloların sütunlarına dönüştür. • Çok değer içeren nitelik için tablo oluştur. Oluşan tabloya çok değerli niteliği ve bağlı bulunduğu varlığın birincil anahtarını yabancıl anahtar olarak ekle. • Oluşan tablonun birincil anahtarı varlığın birincil anahtarı ve çok değerli niteliğin birleşiminden oluşmaktadır.
Çok değerli niteliklerin tabloya dönüşümü (devam) ad per_id Personel görev maaş ydil
2 Normalizasyon 28. 02. 2011 Veritabanı 1
Normalizasyon -Tanım • 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 tanım olarak ise ; (Ayrıştırma), 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.
Normalizasyon – Giriş • Normalizasyon yapılırken uyulması gereken kurulların her birine normal form adı verilir. – Birinci Normal Form (1 NF) – İkinci Normal Form (2 NF) – Üçüncü Normal Form (3 NF) • Daha yüksek düzey formlar var ama çok fazla kullanılmıyor. • İlk üç düzey ihlal edilirse – Kayıt güncelleme – Kayıt silme – Kayıt bulmada zorluk çekilir. • 3 NFde olan tablolar 1 NF ve 2 NFye uygundur. 2 NFde olan tablolarda 1 NFye uygundur.
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.
Normalizasyon Kuralları • Birinci Normal Form (First Normal Form) 1 NF • İkinci Normal Form(Second Normal Form) 2 NF • Üçüncü Normal Form(Third Normal Form) 3 NF
Birinci Normal Form -1 • Tekrarlanan sütun yapıları olmamalıdır • Birden fazla türde bilgi tek bir sütunda olamaz. • Bir alan içerisindeki bilgi özel karakterlerle ayrılarak tutulmamalıdır. Adres Tablosu Telefon Tablosu Ad Soyad Telefon Ali Coşkun 3710, 3712 Mehmet Kaya 3714, 3715, 3716 Ahmet Demir 3750 Ad Soyad. Adres 1 Adres 2 Ordu Çivril Atasay Kamer Ali MYO Çivril / Denizli Coşkun Mehmet Denizli Kaya Ahmet Adana Demir
Birinci Normal Form -2 • 1 Nf uyun hale geldi fakat 2 NF ve 3 NF ye uygun değil Telefon Tablosu Adres Tablosu Ad Soyad Telefon Ad Soyad Ali Coşkun 3710 Ali Coşkun Ordu Ali Coşkun 3712 Ali Adres 1 Mehmet Kaya 3714 Mehmet Kaya 3715 Coşkun Çivril Atasay Kamer MYO Çivril / Denizli Mehmet Kaya 3716 Ahmet Demir 3750 Adana
Birinci Normal Form -3 • Sorunlar – Veri Ekleme • Eklenen verinin daha önce olup olmadığının kontrolü zor – Veri güncelleme • Kişiye ait bir telefon numarası güncellenmek istediğine hangisinin güncelleneceği – Veri silme • Silinecek verinin hangisi olduğu Telefon Tablosu Ad Soyad Telefon Ali Coşkun 3710 Ali Coşkun 3712 Mehmet Kaya 3714 Mehmet Kaya 3715 Mehmet Kaya 3716 Ahmet Demir 3750
İkinci Normal Form -1 1. Tabloda 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. Ogrenci. Ve. Not Tablosu ogr. No Ad Bolum 759 Ali Bilgisayar c 121 60 759 Ali Bilgisayar c 122 70 760 Mehmet Bilgisayar c 121 65 761 Kemal 90 Büro Ders. Kodu Not c 134 Öğrenci bilgileri ve not bilgileri ayrılmalı.
İkinci Normal Form -2 • İkinci normal forma uygun hali Ogrenci Tablosu Not Tablosu ogr. No Ad Bolum ogr. No Ders. Kodu Not 759 Ali Bilgisayar 759 c 121 60 760 Mehmet Bilgisayar 759 c 122 70 761 Kemal 760 c 121 65 761 c 134 90 Büro
Üçüncü Normal Form -1 • Anahtar olmayan sütunlar anahtar sütuna tam bağımlı olmalı. Anahtar olmayan sütuna bağımlı olmamalı. Ürün Tablosu ÜKodu Ad Birim Adı k 001 Alçı 1 Kg k 002 Tel 2 Cm k 003 Boya 3 Lt
Üçüncü Normal Form -2 Ürün Tablosu Birim Tablosu ÜKodu Ad Birim Adı k 001 Alçı 1 1 Kg k 002 Tel 2 2 Cm k 003 Boya 3 3 Lt
Normalizasyon Örnek-1 • 1 NF Uygun 2 NF değil musteri Urun_id Sehir. Kodu Miktar M 145 U 1 Denizli 1 100 M 145 U 2 Denizli 1 150 M 151 U 2 Tokat 2 75 M 149 U 3 Samsun 3 200 M 148 U 1 Tokat 2 140
Normalizasyon Örnek 1 -devam musteri Urun_id Miktar M 145 U 1 100 M 145 U 2 150 M 151 U 2 M 149 M 148 musteri Sehir. Kodu M 145 Denizli 1 M 151 Tokat 2 75 M 149 Samsun 3 U 3 200 M 148 Tokat 2 U 1 140 • 2 NF uygun 3 NF uygun değil.
Normalizasyon Örnek 1 -devam musteri Urun_id Miktar musteri Sehir. Kodu M 145 U 1 100 M 145 1 M 145 U 2 150 M 151 2 M 151 U 2 75 M 149 3 M 149 U 3 200 M 148 2 M 148 U 1 140 Sehir. Kodu Sehir 1 Denizli 2 Tokat 3 Samsun • 2 NF uygun 3 NF uygun değil.
- Slides: 36