BĐL378 VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat TELÇEKEN ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi 1 KÜTÜPHANE Varlık-Bağıntı Şeması Varlık Sınıfı ĐLĐŞKĐSEL VERĐTABANLARINDA NELERE DĐKKAT EDĐLMELĐ? Öznitelik Birincil Anahtar Bağıntı Veri Kaybından kaçınma Veri kaybetmeden tabloyu nasıl parçalarız? Đlişkisel bütünlüğün sürdürülmesi Bir yayıncıyı veritabanından kaldırmak istiyorsak o yayınevine ait kitapları da silmeliyiz. Farklı görünümlerin oluşturulması Veriler farklı tablolara dağılınca verinin farklı görünümlerini elde etmek zorlaşacak. 1 1 1 Çok Çok Çok Bağıntı Tipleri: (Yayınevi Kitap) (Kitap Yazar) 1
1 Çok Bağıntı Kurulması Yayımcısı olma bağıntısını kurmak için, YAYINEVĐ varlık sınıfı için birincil anahtar olan YayıneviID özniteliğini KĐTAP tablosuna eklemek yeterlidir. Bu durumda KĐTAP varlık sınıfının tablo şeması KĐTAP(ISBN, Başlık, YayıneviID, Fiyat) biçimine dönüşür. Genel olarak, {A2}, S tablosunda, S tablosu/tablo şeması için bir aday anahtar olsun. Bu durumda {A2} özniteliğini T Tablosuna eklersek, S ve T tabloları arasında 1- Çok bağıntı kurulmuş olur. Đşte {YayıneviID} Kitap sınıfı için yabancı anahtardır. Yabancı anahtar bulunduğu sınıfın bir anahtarı (süper, aday, birincil) değildir. Çünkü; T tablosundaki her varlık S tablosunda yalnız bir varlık ile bağıntılıdır. Ayrıca T tablosunda birden çok varlık S tablosundan tek bir varlık ile bağıntılı olabilir. Ancak bir başka tablonun anahtarı olduğu için diğer tablonun her varlığı ile bulunduğu tablodaki varlıkların eşlenmesini sağlayacaktır. {A2}, S için anahtar, T için bir yabancı anahtardır, T için bir anahtar değildir. T tablosuna hedef, S tablosuna kaynak tablo denir. 2
Tablolar arasında 1-1 bağıntılar da benzer olarak kurulur. KĐTAP sınıfının tablo şeması KĐTAP(ISBN, Başlık, Fiyat, YazarID) olacak ve birden çok yazar tarafından yazılmış kitaplar için tekrarlamalar oluşacaktır. Çok Çok Bağıntı Kurulması Bağıntı, iki ayrı 1 Çok bağıntı olarak düşünülürse ne olur? Bunun yerine Çok Çok bağıntıyı iki 1- Çok bağıntıya bölen yeni bir tablo oluşturulabilir. ISBN YazarID Örneğin; KĐTAP sınıfındaki ISBN, YAZAR sınıfına, YAZAR sınıfındaki YazarID KĐTAP sınıfına eklenirse 0-201-79803-4 1 0-321-18923-X 2 0-007-24243-2 3 0-007-24243-2 4 0-13-065265-2 5 0-13-041531-6 6 0-13-030437-9 7 0-471-40825-5 8 0-471-40825-5 9 9-754-86934-8 10 9-754-86934-8 11 0-13-736331-1 12 0-13-736331-1 13 0-13-736331-1 14 Varlık Sınıfı: KĐTAP/YAZAR Tablo Şeması: KĐTAP/YAZAR(ISBN,YazarID) 3
Yabancı anahtarın her değeri kaynak tablosunda bir başvuru anahtarı değeriyle eşlenmelidir. Bilgi tutarlılığı iki türlü korunabilir: 1. Ardarda Güncelleme 2. Ardarda Silme Örneğin KĐTAP tablosundaki {YayıneviID} YAYINEVĐ tablosundaki {YayıneviID} ile eşlenmiyorsa yayımcısı olmayan bir kitabımız var demektir. 1. Ardarda Güncelleme: Eğer kaynak tabloda anahtar değeri değişirse buna bağlı tabloya ait tüm yabancı anahtar değerleri de değişir. 2. Ardarda Silme: Eğer kaynak tabloda bir varlık silinirse hedef tabloda buna bağlı tüm varlıklar da silinir. Đşte bu durumun oluşmaması problemine denir. Birçok VTYS bilgi tutarlılığının korunması için araçlara sahiptir. YazarID Yazar Adı Yazar Soyadı Yazar Telefon No 1 Robert Adams (222) 335 25 22 2 Marvin Bittinger (222) 114 22 52 3 Laurence Hoffmann (333) 322 22 22 4 Gerald Bradley (333) 554 44 44 5 Gerald Folland (555) 222 22 22 6 Susan Colley (233) 225 22 55 7 Frank Beatrous (255) 352 22 55 8 Deborah Hughes (333) 558 55 55 9 Michael Robert (333) 558 55 55 10 George Thomas (255) 555 44 66 11 Ross Finney (255) 557 44 77 12 Charles Edwards (322) 444 55 66 13 David Penney (333) 555 77 88 14 Richard Madsen (444) 111 88 11 ISBN YazarID 0-201-79803-4 1 0-321-18923-X 2 0-007-24243-2 3 0-007-24243-2 4 0-13-065265-2 5 0-13-041531-6 6 0-13-030437-9 7 0-471-40825-5 8 0-471-40825-5 9 9-754-86934-8 10 9-754-86934-8 11 0-13-736331-1 12 0-13-736331-1 13 0-13-736331-1 14 4
ISBN Başlık YayıneviID Fiyat 0-201-79803-4 Calculus : a complete course 1 55,00 YTL 0-321-18923-X Calculus and its applications 1 29,00 YTL NULL (BOŞ) 0-007-24243-2 Calculus 2 100,00 YTL 0-13-065265-2 Advanced calculus 3 25,00 YTL 0-13-041531-6 Vector calculus 3 75,00 YTL 0-13-030437-9 Multivariable calculus 3 49,00 YTL 0-471-40825-5 Calculus 4 68,00 YTL 9-754-86934-8 Calculus ve analitik geometri 4 75,00 YTL 0-13-736331-1 Calculus with analytic geometry 3 38,00 YTL Null olmadan durumu açıklamak için kullanıcı için anlamlı olmayabilecek veriler eklemek gerekebilir. Bu ise kullanıcıyı şaşırtacaktır. YayıneviID Yayınevi Adı Yayınevi Telefon No 1 Addison Wesley (222) 320 19 11 2 McGraw Hill (322) 255 55 55 3 Prentice Hall (445) 222 55 44 4 John Wiley & Sons (444) 211 11 55 NULL (BOŞ) Bir öznitelik için değerin bilinmediğini yada varlık için uygulanabilir bir değer olmadığını bildirir. Tamamlanmamış yada kabul edilmeyen bilgilerle başa çıkma yoludur. Çok miktarda veri içeren dosyalarda istenen verilerin aranıp, bulunması uzun zaman alabilir. Dizin dosyalarının amacı veritabanı dosyalarındaki veriye doğrudan erişimi sağlamaktır. NULL (BOŞ) Null, bir değer değil, değerin yokluğunu gösteren bir imdir. Sayısal olarak 0 yada karakter olarak a eşdeğer değildir. Başlık Advanced calculus Calculus Calculus Calculus : a complete course Calculus and its applications Calculus ve analitik geometri Calculus with analytic geometry Multivariable calculus Vector calculus ISBN Başlık YayıneviID Fiyat 0-201-79803-4 complete 1 55,00 YTL Calculus : a course 0-321-18923-X Calculus and its applications 1 29,00 YTL 0-007-24243-2 Calculus 2 100,00 YTL 0-13-065265-2 Advanced 3 25,00 YTL calculus 0-13-041531-6 Vector calculus 3 75,00 YTL 0-13-030437-9 Multivariable calculus 3 49,00 YTL 0-471-40825-5 Calculus 4 68,00 YTL 9-754-86934-8 Calculus ve analitik geometri 4 75,00 YTL 0-13-736331-1 Calculus with analytic geometry 3 38,00 YTL 5
Bir tablo birden çok özniteliğe göre düzenlemiş dizinlere sahip olabilir. Yazar Soyadı Adams Beatrous Bittinger Bradley Colley Edwards Finney Folland Hoffmann Hughes Madsen Penney Robert Thomas Yazar Adı Charles David Deborah Frank George Gerald Gerald Laurence Marvin Michael Richard Robert Ross YazarID Yazar Adı Yazar Soyadı Yazar Telefon No 1 Robert Adams (222) 335 25 22 2 Marvin Bittinger (222) 114 22 52 3 Laurence Hoffmann (333) 322 22 22 4 Gerald Bradley (333) 554 44 44 5 Gerald Folland (555) 222 22 22 6 Susan Colley (233) 225 22 55 7 Frank Beatrous (255) 352 22 55 8 Deborah Hughes (333) 558 55 55 9 Michael Robert (333) 558 55 55 10 George Thomas (255) 555 44 66 11 Ross Finney (255) 557 44 77 12 Charles Edwards (322) 444 55 66 13 David Penney (333) 555 77 88 14 Richard Madsen (444) 111 88 11 Birincil anahtarın dizinine birincil dizin denir. Diğer tüm dizinler ikincil dizin olarak adlandırılır. Bir dizin, bir anahtara bağlıysa bu dizine benzersiz dizin denir. 6