05. Veri Tabanı Tasarımı
Transkript
05. Veri Tabanı Tasarımı
License c 2002-2012 T. Uyar, Ş. Öğüdücü Veri Tabanı Sistemleri You are free: Veri Tabanı Tasarımı I I to Share – to copy, distribute and transmit the work to Remix – to adapt the work Under the following conditions: H. Turgut Uyar Şule Öğüdücü I Attribution – You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). I I Noncommercial – You may not use this work for commercial purposes. Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. 2002-2012 Legal code (the full license): http://creativecommons.org/licenses/by-nc-sa/3.0/ 1 / 44 Konular 2 / 44 İşlevsel Bağımlılık Normalizasyon Giriş Normal Formlar 3. Normal Form Tanım Varlık/İlişki Modeli Giriş V/İ Çizenekleri I Z : R bağıntısının bütün nitelikleri kümesi I A, B ⊆ Z I A, B’yi işlevsel olarak belirliyor: A → B her A değerine karşılık tek bir B değeri olabilir I her işlevsel bağımlılık bir bütünlük kısıtlaması 3 / 44 Örnek Bağıntı İşlevsel Bağımlılık Örnekleri Örnek Örnek I MOVIEID → COUNTRY I ACTORID → NAME ORD I MOVIEID → {TITLE, COUNTRY, LANGUAGE} 2 1 2 9 14 I {MOVIEID, ACTORID} → COUNTRY I {MOVIEID, ACTORID} → MOVIEID I {MOVIEID, ACTORID} → ORD I {MOVIEID, ACTORID} → {COUNTRY, ORD} I COUNTRY → LANGUAGE R MOVIEID 6 228 70 1512 70 I 4 / 44 TITLE Usual Suspects Ed Wood Being John Malkovich Suspiria Being John Malkovich COU LANG UK US US IT US EN EN EN IT EN ACTORID 308 26 282 745 503 NAME Gabriel Byrne Johnny Depp Cameron Diaz Udo Kier John Malkovich varsayım: film hangi ülkede çekildiyse o ülkenin dilinde 5 / 44 6 / 44 İndirgenemez Küme I I Örnek S: bağıntının bütün işlevsel bağımlılıkları kümesi T ⊆ S, öyle ki I I I İndirgenemez Küme Örneği T olabildiğince az eleman içerir S’deki her işlevsel bağımlılık T ’dekilerden türetilebilir işlevsel bağımlılıkların sağ yanlarında tek nitelik yer alsın I MOVIEID → TITLE I MOVIEID → COUNTRY I COUNTRY → LANGUAGE I ACTORID → NAME I {MOVIEID, ACTORID} → ORD 7 / 44 Bağımlılık Çizeneği 8 / 44 Normal Formlar Örnek I I 1NF, 2NF, 3NF, BCNF, 4NF, 5NF her form bir önceki formun kapsamını daraltır I I I bütün 2NF bağıntılar aynı zamanda 1NF bütün 3NF bağıntılar aynı zamanda 2NF, ... 1NF: nitelik değerleri bölünmezdir 9 / 44 Normalizasyon 10 / 44 Kayıpsız Geçiş Örneği Örnek Tanım normalizasyon: bir formdan daha dar kapsamlı bir sonraki forma geçiş I R1 formlar arası geçişler kayıpsız olmalı MOVIEID 6 228 70 1512 Teorem (Heath Kuramı) I Z : R bağıntısının bütün nitelikleri kümesi I A, B, C ⊆ Z I A → B ise R bağıntısı {A, B} ile {A, C } bağıntılarının birleştirilmesiyle elde edilebilir TITLE Usual Suspects Ed Wood Being John Malkovich Suspiria COU LANG UK US US IT EN EN EN IT I R2 11 / 44 MOVIEID ACTORID 6 228 70 1512 70 308 26 282 745 503 NAME Gabriel Byrne Johnny Depp Cameron Diaz Udo Kier John Malkovich R = R1 JOIN R2 ORD 2 1 2 9 14 12 / 44 Kayıplı Geçiş Örneği Aykırılıklar Örnek R1 MOVIEID TITLE 6 228 70 1512 LANG UK US US IT EN EN EN IT R2 ACTORID UK US US IT US 308 26 282 745 503 ekleme I silme I güncelleme I COU Usual Suspects Ed Wood Being John Malkovich Suspiria COU I NAME Gabriel Byrne Johnny Depp Cameron Diaz Udo Kier John Malkovich I I I R 6= R1 JOIN R2 {MOVIEID, ACTORID} → ORD I ORD 2 1 2 9 14 bilinen bir verinin kısıtlamalar nedeniyle tutulamaması bir veri silinmek istendiğinde başka bir verinin de yitirilmesi bir veriyi güncellemek için birden fazla çokluda değişiklik gerekmesi 14 / 44 13 / 44 Aykırılık Örnekleri 2. Normal Form Tanım 2NF: anahtar olmayan her nitelik birincil anahtara bağımlı Örnek I ”Gattaca” filminin ülkesinin US olduğu biliniyor ama filmde oynayan bir oyuncu olmadıkça eklenemiyor I Gabriel Byrne’in ”Usual Suspects” filminde oynadığı silinirse filmin ülkesinin UK olduğu da siliniyor I 1NF’den 2NF’ye geçiş I 1NF’ye uyan bir R bağıntısında: I I ”Being John Malkovich” filminin ülkesinin güncellenmesi iki çokluda değişiklik gerektiriyor I R(A, B, C , D), birincil anahtar: {A, B} A→D 2NF olması için: I I R1(A, D), birincil anahtar: A R2(A, B, C ), birincil anahtar: {A, B} A, R1’e başvuran dış anahtar 15 / 44 1NF-2NF Geçişi Örneği 1NF-2NF Geçişi Örneği Örnek I 16 / 44 Örnek anahtar olmayan niteliklerden ORD dışındakiler birincil anahtara bağımlı değil I I I I A: B: C: D: MOVIEID ACTORID {NAME, ORD} {TITLE, COUNTRY, LANGUAGE} 17 / 44 I R1(MOVIEID, TITLE, COUNTRY, LANGUAGE) birincil anahtar: MOVIEID I R2(MOVIEID, ACTORID, NAME, ORD) birincil anahtar: {MOVIEID, ACTORID} MOVIEID, R1’e başvuran dış anahtar 18 / 44 1NF-2NF Geçişi Örneği 2NF Bağıntı Örnekleri Örnek Örnek I R2 hala 2NF değil: ACTORID → NAME I I I I I I A: B: C: D: R1 ACTORID MOVIEID ORD NAME MOVIEID 6 228 70 1512 R3(ACTORID, NAME) birincil anahtar: ACTORID TITLE Usual Suspects Ed Wood Being John Malkovich Suspiria COU LANG UK US US IT EN EN EN IT R4 R3 ACTORID R4(MOVIEID, ACTORID, ORD) birincil anahtar: {MOVIEID, ACTORID} ACTORID, R3’e başvuran dış anahtar 308 26 282 745 503 NAME Gabriel Byrne Johnny Depp Cameron Diaz Udo Kier John Malkovich MOVIEID ACTORID ORD 6 228 70 1512 70 308 26 282 745 503 2 1 2 9 14 20 / 44 19 / 44 Bağımlılık Çizeneği Örneği 2NF Düzelen Aykırılıklar Örnek Örnek I ”Gattaca” filminin ülkesinin US olduğu biliniyorsa bu bilgi R1 bağıntısına eklenebilir I Gabriel Byrne’in ”Usual Suspects” filminde oynadığı silinse de filmin ülkesinin UK olduğu bilgisi R1 bağıntısında kalır I ”Being John Malkovich” filminin ülkesini güncellemek için R1 bağıntısında tek çokluda değişiklik yapmak yeterli 22 / 44 21 / 44 2NF Düzelmeyen Aykırılıklar 3. Normal Form Tanım 3NF: anahtar olmayan nitelikler birincil anahtar dışında niteliklere bağımlı değil Örnek I Brezilya’da çekilen filmlerin Portekizce olduğu biliniyor ama Brezilya’da çekilen bir film olmadıkça eklenemiyor I ”Suspiria” filmi silinirse İtalya’da çekilen filmlerin İtalyanca olduğu da siliniyor I 2NF’den 3NF’ye geçiş I 2NF’ye uyan bir R bağıntısında: I I Amerika’da çekilen filmlerin dilinin güncellenmesi iki çokluda değişiklik gerektiriyor I 3NF olması için: I I 23 / 44 R(A, B, C , D), birincil anahtar: A C →D R1(C , D), birincil anahtar: C R2(A, B, C ), birincil anahtar: A C , R1’e başvuran dış anahtar 24 / 44 2NF-3NF Geçişi Örneği 3NF Bağıntı Örnekleri Örnek Örnek I R1: COUNTRY → LANGUAGE I I I I A: B: C: D: MOVIEID TITLE COUNTRY LANGUAGE I R5(COUNTRY, LANGUAGE) birincil anahtar: COUNTRY I R6(MOVIEID, TITLE, COUNTRY) birincil anahtar: MOVIEID COUNTRY, R5’e başvuran dış anahtar R6 MOVIEID TITLE 6 228 70 1512 Usual Suspects Ed Wood Being John Malkovich Suspiria R5 COU COU LANG UK US US IT UK US IT EN EN IT R4 R3 ACTORID 308 26 282 745 503 NAME Gabriel Byrne Johnny Depp Cameron Diaz Udo Kier John Malkovich MOVIEID ACTORID ORD 6 228 70 1512 70 308 26 282 745 503 2 1 2 9 14 26 / 44 25 / 44 Bağımlılık Çizeneği Örneği 3NF Düzelen Aykırılıklar Örnek Örnek I Brezilya’da çekilen filmlerin Portekizce olduğu biliniyorsa R5 bağıntısına eklenebilir I ”Suspiria” filmi silinse de İtalya’da çekilen filmlerin İtalyanca olduğu R5 bağıntısında kalır I Amerika’da çekilen filmlerin dilini güncellemek için R5 bağıntısında tek çokluda değişiklik yapmak yeterli 28 / 44 27 / 44 Boyce-Codd Normal Formu BCNF Örneği Örnek (filmlerin başlık nitelikleri eşsiz) Tanım I BCNF: bütün işlevsel bağımlılıklar anahtar adaylarına I anahtar adayları: I I anahtarı oluşturan nitelikler arasındaki bağımlılıklar dikkate alınmalı I aykırı işlevsel bağımlılıklar: I I 29 / 44 {MOVIEID, ACTORID} {TITLE, ACTORID} MOVIEID → TITLE TITLE → MOVIEID 30 / 44 Kaynaklar Varlık/İlişki Modeli I modelleme yaklaşımı I bileşenleri Okunacak: Date I Chapter 11: Functional Dependencies I Chapter 12: Further Normalization I: 1NF, 2NF, 3NF, BCNF I I I I Chen 1976 varlıklar özellikler ilişkiler 32 / 44 31 / 44 Varlıklar Varlık Örnekleri Tanım Örnek varlık: aynı özellikleri taşıyan ”şeyler” kümesi I varlık: film, kişi küme elemanları varlık tipinin birer örneği I kişi örneği: Johnny Depp I güçlü: tek başına var olabilir I güçlü varlık: kişi I zayıf: varlığı başka bir varlığa bağlı I zayıf varlık: film I 33 / 44 Özellikler Özellik Örnekleri Tanım Örnek özellik: varlıkları ya da ilişkileri betimleyen veriler I basit - bileşke I anahtar 34 / 44 I özellik: başlık, ülke, dil I basit: önad, soyad I bileşke: tam ad I tekli - çoklu değerli I boş I taban: doğum tarihi I taban - türetilmiş I türetilmiş: yaş 35 / 44 36 / 44 İlişkiler İlişki Türleri Tanım ilişki: varlıklar arasındaki bağlantılar I bire bir I katılımcı: ilişkideki varlıklar I bire çok I derece: katılımcı sayısı I çoka çok I total - kısmi: bütün örnekler ilişkiye katılıyor - katılmıyor 37 / 44 İlişki Örnekleri Varlık/İlişki Çizenekleri Örnek (bire bir) I 38 / 44 I varlık: dikdörtgen I özellik: elips I ülkeler ile şehirler arasındaki başkentlik ilişkisi I Örnek (bire çok) I I I çalışanlar ile projeler arasındaki yöneticilik ilişkisi I türetilmiş: kesikli çizgi çoklu değerli: çift çizgi bileşke: alt-elipsler ilişki: eşkenar dörtgen I Örnek (çoka çok) I zayıf: çift çizgi I I öğrenciler ile dersler arasındaki kayıt ilişkisi zayıf-güçlü arasında: çift çizgi total: bağlantı çift çizgi ilişkinin türüne göre 1 ya da n 40 / 44 39 / 44 Varlık/İlişki Çizeneği Örneği Varlık/İlişki Çizeneği Örneği Örnek Örnek 41 / 44 42 / 44 Tasarıma Geçiş I her varlık bir bağıntı I her özellik bir nitelik her çoka çok ilişki bir bağıntı I I I Kaynaklar Okunacak: Date I katılımcı varlıklara dış anahtarlar Chapter 14: Semantic Modeling her bire çok ilişki için ilişkinin ”çok” tarafından ”bir” tarafına dış anahtar 43 / 44 44 / 44
Benzer belgeler
Buradan - Matematik Olimpiyat Okulu • Ana sayfa
adım da, ilk iki adımın sonuçlandırılma şeklinden bağımsız olarak, 2 farklı yoldan gerçekleştirilebileceğinden, tüm görevler için atama yapılması 4 · 3 · 2 = 24 farklı yoldan
yapılabilir.
...