Bu Dersin Konuları Veri Modelleri Veri Tabanları. Gelişim tarihçesi Veri Tabanı Modeli VTYS bileşenleri BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Yaklaşımı VTYS Sorgu İşlemcisi PROGRAM 1 İş Yöneticisi … PROGRAM 2 BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Veri Modeli • Veri Modeli- verilerin, veriler arasındaki ilişkilerin, verilerle ilgili sınırlamaların soyut biçimde ifadesidir • Veri Modeli dosyanın içeriğini oluşturan, dosyalar arasında iletilen, dosyalar arasında bağlantı oluşturan verilerin yapısını belirler • Türleri: – Hiyerarşi, ağ – İlişkisel – Nesneye yönelik BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Modelleri • Nesne tabanlı Varlıklar, özellikler, ilişkiler • Varlık-ilişkisel kavramsal veri tabanı • Semantik • İşlevsel • Nesneye-yönelik Kayıt Tabanlı Veri Modelleri • Ağ kayıtlar, kümeler, düğümler, kenarlar örnek model: IDMS/R • Hiyerarşi kayıtlar, kümeler, ağaç örnek model: IMS • İlişkisel Ağ Veri Modeli Şeması Hiyerarşi Veri Modeli Şeması Fiziki Veri Modelleri • • • • Verilerin disk ortamında tutulması Bilgilerin fiziki kayıtlarla tasviri Fiziki kayıtların düzenlenmesi Disk dosyalarına erişim yöntemleri İlişkisel Veri Modeline Örnek Calisma Calisan CNO E1 E2 E3 E4 E5 E6 E7 E8 CNO PNO CADI J. Doe M. Smith A. Lee J. Miller B. Casey L. Chu R. Davis J. Jones E1 E2 E2 E3 E3 E4 E5 E6 E7 E7 E8 Elekt.Müh. Sist. Anal. Mak. Müh. Programcı Sist. Anal. Elekt. Müh. Mak. Müh. Sist. Anal. P1 P1 P2 P3 P4 P2 P2 P4 P3 P5 P3 PROJE PNO P1 P2 P3 P4 P5 PADI Robot Uygulaması VeriTabanı Gelişt. Bilgisayarlı Tasarım Bakım/Destek Bilgisayarlı Tasarım BM315 Veri Tabanı Yönetim Sistemleri Gorev Meslek BUTCE 150000 135000 250000 310000 500000 Mehmet Ali SALAHLI Yönetici Çözümleyici Çözümleyici Danışman Mühendis Programcı Yönetici Yönetici Yönetici Yönetici Yönetici Sure 12 24 6 10 48 18 24 48 36 23 40 Veri Tabanlarının Kısa Tarihçesi • 1960’lar: – 1960’ların evveli: Charles Bachmann Honeywell’de ilk VTYS’i (IDS -Integrated Data Store) geliştirdi • Ağ modelinde veri bağlantıları grafla ifade edilirdi. – 1960’ların sonları: İlk başarılı ticari VTYS (IMS-information management system) IBM’de geliştirildi • Hiyerarşi modelde veri bağlantıları ağaç biçiminde ifade edilirdi • Bu gün de kullanılmaktadır (SABRE reservations; Travelocity) – 1960’ların sonları: Conference On DAta Systems Languages (CODASYL) modeli tanımlandı. Bu ağ modeli idi, fakat daha çok standartlaşmıştı BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanlarının Kısa Tarihçesi • 1970’ler: – 1970: Ted Codd IBM San Jose Laboratory (şimdi IBM Almaden) laboratuarında ilişkisel veri modelini tanımladı. – İki önemli proje başlatıldı (1970’lerin sonlarında her ikisi gerçekleşmişti) • INGRES (University of California, Berkeley) • System R ( IBM San Jose Laboratory) – 1976: Peter Chen Varlık İlişkisel (ER) modeli tanımladı BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanlarının Kısa Tarihçesi • 1980’ler – İlişkisel Veri tabanları teknolojisinin gelişmesi – ISO tarafından SQL’in standartlaştırılması (1980’lerin ortaları-sonu) – Yükseliş devri • 1990’lar – İlişkisel teknolojinin yaygınlaşması ve başarımın yükselişi – Paylaşılan sistemlerin oluşumu – Yeni veri modelleri: nesneye yönelik, tümdengelimli (deduktive) – 1990’ların sonu: nesneye yönelik teknolojinin ilişkisel VTYS’le birleştirilmesi Nesne-ilişkisel VTYS – Yeni uygulama alanları: Veri ambarları ve OLAP, Web Internet, çoklu ortam ve metinlerin işlenmesi BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Nedir? • Veri Tabanı bütünleşik, yapılandırılmış, karşılıklı ilişkili, bir uygulama amacıyla oluşturulmuş ve disk ortamında yerleşen veriler kümesidir • Veri tabanı (VT), ortamı oluşturan varlıklar ve onlar arasındaki ilişkilerin veri modelidir. • Veri tabanının yapısı kullanılan soyut veri modeline göre belirlenir. • Veri Tabanı Yönetim Sistemi (VTYS), veri tabanına erişimi, yönetimi gerçekleştiren ve denetleyen yazılım sistemidir Üretim Üretim Verileri Üniversite Öğrenci, ders verileri Hastane Hastalık, hasta kayıt verileri Banka Müşteri Hesap Verileri BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Neden Veri Tabanı Teknolojisi • Veriler yapısal varlık oluşturuyor Bütünleşik denetim – Tekrarlamalarının azaltılması – Tutarsızlığın önlenmesi – Paylaşıla bilirlik – Standartlar – Daha yüksek güvenlik – Veri bütünlüğü • Programcının verimliliği Veri Bağımsızlığı BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Mimarisi • Veri tabanları için genel mimari ve standart kavramların oluşturulması • 1971- Date Base Task Group (CODASIL tarafından oluşturuldu) – 2 seviyeli yaklaşım- sistem görünümü (şema), kullanıcı görünümleri (altşemalar) • 1975- American National Standards Institute - Standards Planning and Requirements Committee – Üç seviyeli yaklaşım BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI ANSI-SPARC üç seviyeli mimarisi • Dış seviye- veri tabanının kullanıcı tarafından görünümü. Bu seviye veri tabanının her bir kullanıcıya özgül kısmını ifade eder • Kavramsal seviye- veri tabanına ortak bakış. Bu seviye, veri tabanında hangi verilerin saklandığını ve bu veriler arasındaki ilişkileri ifade eder • İç seviye- veri tabanının bilgisayarda fiziki tasviri. Bu seviye veri tabanında verilerin nasıl saklandığını ifade eder BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Modelleri (ANSİ-SPARC mimarisine göre) • Dış veri Modeli –modele her kullanıcının özgü bakışı • Kavramsal Veri Modeli – VTYS’den bağımsız ortak (genel) bakış • İç Veri Modeli – kavramsal şemanın VTYS tarafından anlaşılır biçimde ifadesi Seviyelere örnek Dış görünüm1 Pno Ad Kavramsal Seviye Soyad Dış görünüm 2 Maaş Personel _no Yaş Ad Personel_ Soyad no Soyad Doğum_ Tarihi Struct Personel { İç Seviye int Personel_no; int Sube_no; char Ad[15]; char Soyad [15] ; Struct date Dogum_tarihi; float Maash} BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI ; Maaş Şno Şube_no ANSI/SPARC Mimarisi ATAMA (ÇNO,PNO,ÇAD,PAD) Kullanıcılar Dış şema Dış görünüm Kavramsal şema İç Şema Dış görünüm Kavramsal şema İç görünüm VTYS BM315 Veri Tabanı Yönetim Sistemleri Dış görünüm PERS(ÇNO: metin, ÇAD: metin, UNVAN:metin) PROJ(PNO: metin, PAD: metin, BÜTÇE: tamsayı) ÇALIŞMA(ÇNO: metin, PNO: metin, GÖREV: metin, DUR: tamsayı) Tüm ilişkiler dosya olarak kaydediliyor. PERS(ÇNO), PROJ(PNO) ve ÇALIŞMA (ÇNO,PNO) üzere indeksler oluşturuluyor Mehmet Ali SALAHLI Kavramsal Modelleme • Kavramsal veri tabanı tasarımı Uygulama için kullanılan verilerin çalıştırılma ayrıntılarından (VTYS, uygulama programları veya diğer fiziki koşullar) bağımsız modelinin yapılandırılması süreci • Bu süreçte oluşturulan modele kavramsal veri modeli denir Veri Bağımsızlığı • Yukarı seviyelerdeki değişmeler aşağı seviyeleri etkilemez • Kavramsal yapılanmanın, bellek yapısının ve erişim stratejisinin ayrıntılarının kullanıcılara görünmemesi (şeffaflığı). – Mantıksal • kavramsal şemadaki değişmeler dış şemayı etkilemez ( mantıksal erişim stratejisinin şeffaflığı) – Fiziki • İç şemadaki değişmeler kavramsal şemayı etkilemez (Fiziki erişim yollarının şeffaflığı) BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanının İşlevselliği • Bütünleşmiş şema – Kullanıcıların verileri tekbiçimli görmesi – Kullanıcılar varlıkları, yalnız ilişkisel modeldeki ilişkiler (tablolar) gibi görüyor • Bildirimsel bütünlük ve tutarlılık – 24000 maaş 250000 – Çalışan, kendi yöneticisinden yüksek maaş alamaz. – Kullanıcı özellikleri ve sistem sınırlamaları • Görünümlerin kişiselleştirilmesi – Bazı ilişkilerin sınırlandırılması – Bazı sınıf kullanıcılar için ilişkilerin yeniden yapılandırılması BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı İşlevselliği (devamı) • Betimsel erişim – Sorgu dili - SQL • Tüm elektrik mühendislerinin isimlerini bul. SELECT CADI FROM CALISAN WHERE MESLEK = “Elect. Müh.” • Proje üzerinde 12 yıldan fazla çalışmış yöneticilerin adları. SELECT CAL.CADI FROM CALISAN,CALISMA WHERE GOREV = “Yonetici” AND SURE > 12 AND CALISAN.CNO = CALISMA.CNO • Yürütmeği belirleyen bir sistem – Sorgu işlemcisi ve optimalleştirici BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı İşlevselliği (devamı) • Hareketler (transactions) – Kullanıcı istekleri atomik (bölünmez) birim gibi yerine getirilir – hareket, bir veya birden fazla sorgu içere biliyor – Uyumluluk • Uyumluluğun şeffaflığı – Pek çok kullanıcının aynı veri tabanına erişmesi mümkündür, fakat onlar veri tabanını kendi kişisel verileri gibi görüyorlar – Uyumluluğun denetimi • Hataların şeffaflığı • Sistemde hatalar oluştuğu durumlarda da veri tabanının tutarlılığı bozulmaz – Kod hatalarının bulunması ve düzeltilmesi BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı İşlevselliği (devamı) • Hareket (Transaction) özellikleri – Bölünmezlik (Atomicity) • “Tümü veya hiç ne” özelliği – Uyumluluk (Consistency) • Her iş doğrudur ve veri tabanının uyumluluğunu bozmaz – Yalıtımlık (Isolation) • Aynı zamanda oluşan işler biri diğerini engellemez – Süreklilik (Durability) • İş tamamlandıktan sonra , onun etkisi , sonuçlara bağlı olmadan sistemde kalacak BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Yönetim Sistemi • VTYS - kullanıcıya, veri tabanını tanımlamak, oluşturmak, işlemek, bakımını yapmak ve veri tabanına denetimli erişimi sağlamak imkanı veren yazılım sistemi BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Yönetim Sisteminin Bilgisayar Sisteminde Yeri Uygulama Programları Uygulama geliştirme araçları VTYS İşletim Sistemi Donanım BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Uygulamalar-VTYS-Veri Tabanı Veri Girişi ve Raporlar satış Satış uyg. programları VTYS Veri Girişi ve Raporlar Sözleşme BM315 Veri Tabanı Yönetim Sistemleri Mülk, Ev sahibi, Kiracı,Sözleşme ayrıntıları+Kütük tanımları Veri Tabanı Sözleşme uyg. programları Mehmet Ali SALAHLI VTYS işlevleri • • • • • • • • • • Veri saklama, edinme ve güncelleme Kullanıcı erişebilir katalogun oluşturulması İşlerin desteklenmesi Aynı zamanlı işlerin denetimi Kurtarma hizmetleri Yetkilendirme hizmetleri Veri iletişimi için destek Bütünlük hizmetleri Veri bağımsızlığı Yardımcı hizmetler BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Veri Tabanı Yönetim Sisteminin Yapısı Sıradan Kullanıcılar Formlar Veri Tabanı Yöneticileri VT profesyönellleri,Uyg. programcıları Uygulama arayüzleri VİD(veri işlem dili) Arayüzu VTD (veri tanımlama dili) SQL Komutları Hareket ve Kilitlemeler Yöneticisi Sorgu Değerlendirme Birimi Dosyalara erişim yöntemleri Tampon Yöneticisi Disk Alanı Yöneticisi İndeksler BM315 Veri Tabanı Yönetim Sistemleri System Katalogu Veri dosyaları Mehmet Ali SALAHLI Kurtarma Yöneticisi VTYS VTD Derleyicisi Veri Tabanı Veri Tabanı Kullanıcıları • Son Kullanıcılar – Sıradan kullanıcılar – Veri Tabanlarına formlar veya uygulama arayüzleri ile erişilir – Daha usta kullanıcılar DML kullanmakla sorgular üretiyorlar • Uygulama programcısı/geliştiricisi – Veri tabanına erişe bilecek uygulamalar tasarlar ve çalıştırır (bazen son kullanıcı ile aynı) • Veri Tabanı Yöneticisi (DBA) – Kavramsal şemayı tanımlar ve yönetir – Uygulama ve kullanıcı görünümlerini beliler – VTYS işlemlerini izler ve düzenler (iç şemayı tanımlar/değiştirir) – Veri Tabanını yükler ve yeniden biçimler – Güvenlik ve güvenilirlikten sorumludur BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI VTYS Dilleri • • Veri Tanımlama Dili (VTD-DDL) – Veri Tabanı Yöneticisinin ve kullanıcının, uygulama için gereken varlıkları ve farklı varlıklar arasındaki olası ilişkileri tanımlamak için tanımlayıcı dil – Kavramsal şema, dış şema ve iç şema tanımlanır ve birinden diğerine çevirme yapılır – Her bir seviyede farklı dil kullanıla bilir – Tanımlamalar ve üretilen bilgiler sistem katalogunda saklanılır Veri İşleme Dili (VİM-DML) – Veri tabanındaki veriler üzerinde temel işlemlerin yapılmasını sağlayan dil • Esas dile gömülmüş sorgu dili • “kendi başına” sorgu dili olabilir – Türleri • Yordamsal: işlemlerin “nasıl” yapılacağı gösterilir • Betimsel: ‘ne”ler üzerinde işlem yapılacağı gösterilir BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI Yordamsal ve Yordamsal olmayan diller • Yordamsal Veri İşlem Dili (VİD)- hangi verilere gerek duyulduğu ve bu verilerin nasıl bulunacağı gösterilmelidir • Yordamsal olmayan VİD- gereken verilerin nasıl bulunacağı değil, bu verilerin kendisi ve aralarındaki bağlantılar tanımlanmalıdır BM315 Veri Tabanı Yönetim Sistemleri Mehmet Ali SALAHLI