VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI Dersin Hedefleri • Veri Tabanı Kullanıcıları • Veri Modelleri • Veri Tabanı Tasarımı • İlişkisel VT Kavramsal Tasarımı (EntityRelationship, ER) Modeli VT KULLANICILARI 1.Veri Tabanı Yöneticisi (DBA) 2.Uygulama Programcısı 3.Sorgu Dili Kullanıcıları 4.Son Kullanıcılar 1.Veri Tabanı Yöneticisi (DBA) Görevleri; •• VT Tasarımı ve Oluşturulması Kavramsal şema + fiziksel olarak yapılandırılması •• VT Performans Analizi VT ayarları, donanım ve yazılım ihtiyaçlarının belirlenmesi, performans arttırıcı işlemler •• Erişim Yetkilerinin Düzenlenmesi Kullanıcıların VT erişebilirliği, yetkisiz erişimlerin düzenlenmesi 1.Veri Tabanı Yöneticisi (DBA) Görevleri; • Yedekleme ve Geri Yükleme • Süreçlerin belirlenmesi, yedekleme ve geri yüklemenin güvenilirliği • Veri Bütünlüğü Sağlama • Sistemin Sürekliliğini Sağlama • Sorunlara hazırlıklı olma, Kötü durum senaryolarını oluşturma 2. Uygulama Programcısı • Son kullanıcılara yönelik yazılım geliştiriciler. • VT direk kullanamazlar. • Veri işleme dili ve geliştirme. 3. Sorgu Dili Kullanıcıları • Veri tabanından bilgi almak • Bilgi eklemek/silmek • VT yapısında değişiklik yapmak • VT yapısını bilmelidir 4. Son Kullanıcılar • Uygulama programcıları tarafından geliştirilen yazılımları kullanır. • Veri tabanında yazılım aracılığı ile kayıt ekleme, silme ve raporlama yapabilir. Veri Modelleri • Verileri mantıksal düzeyde düzenlemek için kullanılan yapılar, kavramlar ve işlemler topluluğudur. • Her VYTS belirli bir veri modeli kullanır. • Veriler ve veriler arası ilişkiler veri modeline göre düzenlenir. • Veri modeli ile VT kavramsal ve dış şemaları oluşturulur. Veri Modelleri 1. 2. 3. 4. Hiyerarşik Ağ İlişkisel Nesneye Yönelik 1. Hiyerarşik Veri Modeli İlk veri modelidir. (1960 – 70) Kayıtlar ağaç yapısında saklanır. EbeveynÇocuk ilişkisi Her varlık bir sefer ilişki oluşturabilir. 1. Hiyerarşik Veri Modeli • Aynı varlık 1 den fazla ilişkide kullanılacaksa tekrar oluşturulmalı. • Gereksiz veri tekrarına sebep olur. • Bir kayıt silinirse altındaki dallar da silinir. 1. Hiyerarşik Veri Modeli 2. Ağ Veri Modeli • 1970 – 80 arası kullanılmıştır. • Hiyerarşik modelden farklı olarak bir veri birden fazla veri ile ilişki kurabilmektedir. • Ortak bilgi alanları ile birden fazla veri ile ilişki kurulabilir. 3. İlişkisel Veri Modeli • 90 lı yıllardan beri hemen hemen tüm sistemlerde kullanılmaktadır. • Ortak özelliklerdeki veriler tablolarda saklanır. • Tablo = Sütun + Satır • Her sütun farklı bir veri tutar. • Her satırdaki veriler aynı kaydı ifade eder. 3. İlişkisel Veri Modeli • Anahtarlar sayesinde indeksleme yapıldığı için işlemler daha hızlı gerçekleşir. • Birden fazla tablodaki bilgiler ortak alanlar tanımlanarak birbirleriyle ilişkilendirilir. • Raporlama kolaylığı sağlanır. 3. İlişkisel Veri Modeli 1-1 İlişki 1-n ilişki N-1 ilişki M-n ilişki 4. Nesneye Yönelik Veri Modeli • Son 10 yıldır gündemde. • Henüz yaygın olarak kullanılmamaktadır. • Aslında OODBMS Nesne yönelimli programlama(OOP) ilkeleri ile Veri Tabanı Yönetim ilkelerinin birleşmesinden oluşur. 4. Nesneye Yönelik Veri Modeli • Veriler nesne olarak modellenir. • Sınıf ve miras kavramları mevcuttur. • Büyük tablolarda ilişkisel veri modeline göre yüksek performans sunar. İlişkisel Veri Tabanı Tasarımı • Bir projenin tasarım aşamasında veri tabanının tasarımı çok önemlidir. • Veri tabanı oluşturulduktan sonra yapılacak düzenlemeler daha zor olabilir hatta sorunlara yol açabilir. İlişkisel Veri Tabanı Tasarımı 1. Gereksinim Analizi • Mevcut sistemin özellikleri ve ihtiyaçların belirlenmesi • Yazılım ve donanım maliyet analizi İlişkisel Veri Tabanı Tasarımı 2. Kavramsal Tasarım • Varlıklar ve özniteliklerin belirlenmesi • İlişkilerin belirlenmesi • Varlık-İlişki veri modellerinin çıkarılması İlişkisel Veri Tabanı Tasarımı 3. Mantıksal Tasarım • Varlık – İlişki modelini kullanarak mantıksal modelin oluşturulması • Tablolar • Satır ve Sütunlar • Anahtarlar İlişkisel Veri Tabanı Tasarımı 4. Normalizasyon • Mantıksal modele normalizasyon kurallarının uygulanması • İlişkilerden yeni tabloların oluşturulması İlişkisel Veri Tabanı Tasarımı 5. Veri Tabanının Oluşturulması • Tabloların oluşturulması • Güvenlik ile kullanıcı yetkilerinin tanımlanması • Test verileri ile denemeler yapılması İlişkisel Veri Tabanı Tasarımı 6. Uygulama Programı • Kullanım durumlarının belirlenerek programla aşamasına geçilmesi İlişkisel Veri Tabanı Kavramsal Tasarım • VT saklanacak verilerin üst seviyede gösterilmesi için kullanılır. • ER (Entity-Relationship, Varlık-İlişki) Modeli • VTYS den bağımsız modelleme yapılır ve ilişkiler tanımlanır. • Herhangi bir VTYS ile veri tabanına dönüştürülebilir. Varlık – İlişki Modeli • Veri çözümleme ve modellemede ilişkilerin ortaya konması için kullanılan araçtır. • Niteliklerin kümesi tarafından tanımlanır. • Görsel olarak varlık-ilişki tablosu ile gösterilir: Varlık – İlişki Modeli VARLIK (ENTİTY) • Var olan ve benzerlerinden ayırt edilebilen nesnelerdir. (Kitap, Öğrenci, Araba) VARLIK KÜMESİ • Birden fazla varlık tarafından oluşturulan kümeye verilen isim. ÖĞRENCİ Varlık – İlişki Modeli NİTELİK • Varlıkların özelliklerinin ifadesidir. • Örneğin öğrenciNo, Adı ve Soyadı, Adres, Telefon ANAHTAR NİTELİK • Bir niteliğin değeri her bir varlık için farklı ise bu nitelik anahtar olarak belirlenir. Varlık – İlişki Modeli TEK DEĞERLİ NİTELİK • Bir varlık bir nitelik için tek bir değere sahipse tek değerli nitelik olarak isimlendirilir. • Örneğin her öğrenci bir ad ve soyada sahip, bir adet adresi mevcut. Varlık – İlişki Modeli Anahtar nitelik Tek değerli nitelik AD ÖNO ÖĞRENCİ Varlık – İlişki Modeli ÇOK DEĞERLİ NİTELİK • Bir varlığın bir nitelik içinde birden fazla değere sahip olduğu durumdur. • Örneğin bir öğrencinin birden fazla telefon numarası bulunabilir. Varlık – İlişki Modeli Anahtar nitelik Tek değerli nitelik AD ÖNO TELEFON Çok değerli nitelik ÖĞRENCİ Varlık – İlişki Modeli DOMAİN (ETKİ ALANI) • Niteliklerin alabileceği değer aralığıdır. • Örneğin öğrenci notlarının 0 ile 100 arasında olması. • ER diyagramında gösterilmez. Varlık – İlişki Modeli İLİŞKİ • Varlıklar arasındaki bağlantı ilişkiyi ifade eder. • Örneğin öğrenci ile ders arasında ders alma ilişkisi vardır. • İki varlık arasında birden fazla ilişki olabilir. Varlık – İlişki Modeli İLİŞKİ ÖĞRENCİ ALIR DERS Varlık – İlişki Modeli TANIMLAYICI NİTELİK • Varlıklar arasındaki ilişkilerde, ilişki sonucu oluşan niteliklerdir. • Örneğin bir araba kiralama firmasında müşteri varlığı ile araç varlığı arasında kiralama ilişkisi vardır. Bu ilişkiye ait kiralanan tarih ve saat nitelikleri oluşmaktadır. Varlık – İlişki Modeli MÜŞTERİ KİRALA TARİH ARAÇ SAAT Tanımlayıcı Nitelikler İlişkisel Veri Modeli 1-1 İlişki Bir varlık kümesindeki her varlık diğer varlık kümesinin en çok bir varlığı ile ilintili olduğu ilişkidir. 3. İlişkisel Veri Modeli 1-1 İlişki • • • • • • • Personel Id Ad Soyad 123 AHMET KAÇAR 124 MURAT UÇAR 125 AYŞE SÖYLER 1 Görev Id Görev 123 Muhasebeci 124 Teknisyen 125 1 Pazarlamacı 3. İlişkisel Veri Modeli 1-n İlişki İlk kümedeki her varlık diğer kümenin en çok bir varlığı ile ilintili olduğu ilişkidir. 3. İlişkisel Veri Modeli 1-n İlişki • • • • • • • Öğrenciler NO AD BOLUM_ID 123 Ahmet BTP 124 Murat BTP 125 Ayşe ELK Bölümler Id BOLUM BTP Bilgisayar ELK 1 Elektrik n 3. İlişkisel Veri Modeli N-1 İlişki İlk kümedeki her varlık diğer kümenin en çok bir varlığı ile ilintili olduğu ilişkidir. 3. İlişkisel Veri Modeli m-n İlişki Herhangi bir kümede bulunan varlıklardan her biri diğer kümede bulunan bir çok varlıkla ilintili olduğu ilişki türüdür. 3. İlişkisel Veri Modeli m-n İlişki • • • • • • • Varlık ilişki Modelinin Tablolara Dönüştürülmesi 1-1 İlişki •Varlık kümeleri tablolara dönüştürülür. •Nitelikler tabloların sütunlarına dönüştürülür. Varlık ilişki Modelinin Tablolara Dönüştürülmesi 1-1 İlişki • Bir varlık kümesinin birincil anahtarı diğer varlık kümesinin yabancıl anahtarı olarak belirlenir. • Tanımlayıcı nitelik var ise nitelikler yabancı anahtar olarak kullanılan tabloya sütun olarak eklenir. 1-1 ilişki tabloya dönüştürülmesi AD_S ID ADRES MAAŞ 1 Personel BölümId Yön etic i 1 Bölüm n Adı 1 ÇALIŞIR PERSONEL Tarih ID BÖLÜM AD_S BÖLÜMID ADRES ADI MAAŞ BOLÜMID Tarih M-N ilişki tabloya dönüştürülmesi SID AD_S ID yönetme Film puan oynar Adres n m Tarih Adı Sinema Saat FİLM OYNAR SİNEMA ID Tarih SID AD_S Saat ADI YÖNETMEN FİLM_ID ADRES PUAN SID TELEFON Telefon Varlık ilişki Modelinin Tablolara Dönüştürülmesi 1-n veya n-1 İlişki • Varlık kümeleri tablolara dönüştürülür. • Nitelikler tablo sütunlarına dönüştürülür. • İlişkinin n tarafındaki tabloya 1 tarafındaki tablonun birincil anahtar sütunu yabancıl anahtar olarak eklenir. Varlık ilişki Modelinin Tablolara Dönüştürülmesi 1-n veya n-1 İlişki • Tanımlayıcı nitelik var ise nitelikler ilişkinin bulunduğu n tarafındaki tabloya sütun olarak eklenir. Varlık ilişki Modelinin Tablolara Dönüştürülmesi M-n İlişki • Varlık kümeleri tablolara dönüştürülür. • Oluşturulan ilişki isminde tablo oluşturulur. • Nitelikler tablo sütunlarına dönüştürülür. • Tanımlayıcı nitelikler ilişkiden oluşturulan tabloya sütun olarak eklenir. Varlık ilişki Modelinin Tablolara Dönüştürülmesi M-n İlişki • İlişkiyi oluşturan tabloların birincil anahtarları ilişkiyi oluşturan tabloya yabancıl anahtar olarak eklenir. • İlişkiden oluşturulan tablonun birincil anahtarı oluşturulan yabancıl anahtarların birleşiminden oluşur. Varlık ilişki Modelinin Tablolara Dönüştürülmesi M-n İlişki • Yabancıl anahtarlarla oluşturulan anahtar ihtiyaca cevap vermiyor ise yeni bir sütun birincil anahtar olarak belirlenebilir. Kaynakça • VTYS1 – TURGUT ÖZSEVEN