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 VTYS, çeşitli kullanıcı ve uygulamaların veritabanını tanımlama, biçimleme, değiştirme, paylaşım ve koruma işlemlerini yürüten genel amaçlı yazılım sistemidir. Tanımlama: Veri tipleri, yapıları ve uygulamaları Biçimleme: VTYS tarafından kontrol edilen kayıt biriminde saklama Değiştirme: Saklanan bilginin sorgulanması, gerçek hayatta temsil ettiği örneğin değişimlerine göre güncelleme, rapor üretilmesi Paylaşım: Aynı anda birden çok kullanıcı ve uygulamanın erişimine izin verme Koruma: Yazılım ve donanım hatalarına, yetkisiz ve zararlı erişime karşı 4 VERĐTABANI NEDĐR? Veritabanı, birbirleriyle bağlantılı verilerin yığını, koleksiyonudur. ISBN Başlık Fiyat 0-201-79803-4 complete 55,00 Calculus : a course YTL 0-321-18923-X Calculus and its applications 1 Addison Wesley (222) 320 19 12 29,00 YTL 0-007-24243-2 Calculus 100,00 YTL 0-007-24243-2 Calculus 100,00 YTL Bir veritabanı; Gerçek dünyanın bazı yönlerini yansıtır. Đçsel bütünlüğe sahip, mantıksal bir koleksiyondur. Özel amaçlı bir veri yığını için kurulur. 0-13-065265-2 Advanced calculus 25,00 YTL 0-13-041531-6 Vector calculus 75,00 YTL 0-13-030437-9 Multivariable calculus 49,00 YTL 0-471-40825-5 Calculus 4 John Wiley & (444) 211 11 55 68,00 YTL Sons 0-471-40825-5 Calculus 68,00 YTL 9-754-86934-8 Calculus ve analitik geometri 75,00 YTL 9-754-86934-8 Calculus ve analitik geometri 75,00 YTL 0-13-736331-1 Calculus with analytic geometry 38,00 YTL 0-13-736331-1 Calculus with analytic geometry 38,00 YTL 0-13-736331-1 Calculus with analytic geometry 38,00 YTL 2 5 VERĐTABANI YÖNETĐM SĐSTEMĐ (VTYS) NEDĐR? Veritabanı Yönetim Sistemi (VTYS), kullanıcılara veritabanı oluşturma ve bu yapıyı yürütme olanağı sağlayan programlar bütünüdür. Bazı kitaplar birden çok yazar tarafından yazılmıştır. Tek tabloda kitabın yazarlarıyla ilgili bilgilerin tamamının gösterilebilmesi için neler yapabiliriz? 3 6 1
Örnek tabloda olduğu gibi her yazar için kitabın her verisi tekrarlanarak yeni bir satır oluşturulabilir. Tek bir satırda birden çok yazar için sütun açılabilir. Örnek tabloda olduğu gibi her yazar için kitabın her verisi tekrarlanarak yeni bir satır oluşturulabilir. Tüm yazarlar için sadece bir sütun kullanılabilir. Birçok veri gereksiz olarak yinelenecek. 7 10 Tüm yazarlar için sadece bir sütun kullanılabilir. Aradığımız yazarı bulmamız zorlaşacak. Ayrıca; Güncelleme Sorunları Tablodaki bir veri değiştiğinde, o veriyi içeren tüm hücreler değiştirilmeli Veri Ekleme Sorunları Tüm bilgilerini bilmediğimiz bir yayınevini tabloya eklemek istersek ne yapacağız? Veri Silme Sorunları Bir yayınevine ait tüm kitapları tablodan çıkarmak istediğimizde yayınevine ait bilgileri de kaybedeceğiz. 8 11 Tek bir satırda birden çok yazar için sütun açılabilir. Bu nedenlerle, veritabanını tek bir tablo ile oluşturmak iyi bir yöntem değildir. Hangi kitap, kaç yazar tarafından yazılmış? Bir çok boş hücre oluşacak. 9 12 2
Bunun yerine veritabanı için topladığımız veri yığınını ayrı ayrı tablolara parçalayabiliriz. Bu tabloları, aralarında oluşan bağıntılarla birbirlerine bağladığımızı düşünelim. Bu tür veritabanlarına da Đlişkisel (Bağıntılı) veritabanı (Relational Database) diyoruz. (E.F. Codd, 1970) Varlık Sınıfı: YAZAR Öznitelikler Varlık Sınıfı: YAYINEVĐ 13 16 VARLIK (Entity) : Veritabanına ait bir tablonun bir satırı Varlık Sınıfı: KĐTAP ISBN Başlık Fiyat 0-201-79803-4 Calculus : a complete course 55,00 YTL 0-321-18923-X Calculus and its applications 29,00 YTL VARLIK SINIFI (Entity Class) : Tablonun içerebileceği mümkün tüm varlıklar 0-007-24243-2 Calculus 100,00 YTL 0-13-065265-2 Advanced calculus 25,00 YTL 0-13-041531-6 Vector calculus 75,00 YTL 0-13-030437-9 Multivariable calculus 49,00 YTL Kardinalite VARLIK KÜMESĐ (Entity Set) : Tablonun o anda verilen varlık sınıfına ait varlıkların kümesi 0-471-40825-5 Calculus 68,00 YTL 9-754-86934-8 Calculus ve analitik geometri 75,00 YTL 0-13-736331-1 Calculus with analytic geometry 38,00 YTL Derece 14 17 ÖZNĐTELĐK (Attribute): Tablonun isimlendirilmiş bir sütunu Derece (Degree): Tablo içindeki öznitelik sayısı Kardinalite (Cardinality) : Tablodaki varlık sayısı ALAN (Domain) : Bir yada daha çok öznitelik için geçerli olan mümkün tüm değerlerin kümesi Bir varlık sınıfının öznitelikleri; 1. Veritabanından elde etmek istediğimiz bilgileri sağlar. 2. Varlık sınıfındaki bir varlığın tek türlü tanınmasına yardımcı olurlar. 3. Tablolar arası ilişkilerin kurulmasını sağlarlar. 15 18 3
Tablo Şeması: Tablo adı ile isimlendirilmiş öznitelikler kümesidir. Varlık Sınıfı: KĐTAP ISBN Başlık Fiyat 0-201-79803-4 Calculus : a complete course 55,00 YTL 0-321-18923-X Calculus and its applications 29,00 YTL 0-007-24243-2 Calculus 100,00 YTL 0-13-065265-2 Advanced calculus 25,00 YTL 0-13-041531-6 Vector calculus 75,00 YTL 0-13-030437-9 Multivariable calculus 49,00 YTL 0-471-40825-5 Calculus 68,00 YTL 9-754-86934-8 Calculus ve analitik geometri 75,00 YTL 0-13-736331-1 Calculus with analytic geometry 38,00 YTL Tablo Şeması: KĐTAP(ISBN, Başlık, Fiyat) 19 22 Varlık Sınıfı: YAYINEVĐ Bir tablo şu özellikleri sağlar; Diğer tüm tablolardan farklı bir isme sahiptir. Her özniteliğinin ayrı bir adı vardır. Tablo Şeması: YAYINEVĐ(YayıneviID,Yayınevi Adı, Yayınevi Telefon No) Bir özniteliğin tüm değerleri aynı alandan alınır. Her varlık bir diğerinden farklıdır. Özniteliklerin ve varlıkların sıralanışı tabloyu değiştirmez. 20 23 Bağıntı Anahtarları (Relation Keys) Süper Anahtar: Bir varlığın, varlık sınıfında tek türlü tanınmasını sağlayan bir yada birden çok öznitelik kümesi Aday Anahtar: Bağıntı için süper anahtar olacak bir özalt nitelik kümesine sahip olmayan süper anahtar Varlık Sınıfı: YAZAR Tablo Şeması: YAZAR(YazarID,Yazar Adı, Yazar Soyadı,Yazar Telefon No) Birincil Anahtar(Primary Key): Tablodaki varlıkların tek türlü tanınması için seçilen aday anahtar Yabancı Anahtar(Foreign Key): Bir başka tablonun aday anahtarı olan bir yada birden çok öznitelik kümesi 21 24 4
Her bağıntının en az bir aday anahtarı vardır. (YazarID,Yazar Adı) Süper Anahtar (YazarID) Aday Anahtar Birincil Anahtar 25 28 Birincil Anahtar (YayıneviID,Yayınevi Adı) Süper Anahtar (YayıneviID,Yayınevi Telefon No) Süper Anahtar Bir tablonun birden fazla aday anahtarı varsa: Biri birincil anahtar seçilir. Diğerleri anahtar seçeneği olur (YayıneviID), (Yayınevi Telefon No) Aday Anahtar (YayıneviID) Birincil Anahtar 26 29 Bağıntı Anahtarları B, tablonun öznitelikleri kümesi ve A B olsun. A 'nın bir anahtar adayı olabilmesi için şu koşullar sağlanmalıdır: Teklik: Aday anahtarın aldığı her değer varlık sınıfına ait tek varlığı ifade eder. Đndirgenemezlik : Aday anahtarın hiçbir özalt kümesi teklik özelliğini sağlamaz. Her bağıntının bir birincil anahtarı bulunması zorunludur. Birincil anahtarda bulunan hiçbir özniteliğin değeri hiçbir varlık için boş olamaz. 27 30 5