VERITABANI / TEMEL KAVRAMLAR 13 Mart 2017 Yrd. Doç. Dr. Muhammet ARUCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı olmaktır. Veritabanı neden kullanılır? Veritabanını kullanmaksızın birşeylerin kaydını tutmak için listeler kullanılır. Alışveriş listesi, Yapılacak işler listesi, Ödenen faturaların listesi Veritabanı neden kullanılır? Listeler; Müşteri adı Mesleği Ahmet mimar Sema Firma Adres Fiyat A Çanakkale Cad. 43/5 1000 TL öğretmen B Kayabaşı mah. A Blok 8/4 250 TL Serdar mühendis C Gazi Mah 6/7 350 TL Zerrin emekli B Kayabaşı mah. A Blok 8/4 700 TL Mehmet Öğretim elemanı B Kayabaşı mah. A Blok 8/4 1200 TL Defne Doktor D Gazi Mah 6/7 100 TL Elif avukat A Çanakkale Cad. 43/5 150 TL Veritabanı neden kullanılır? Listelerle ilgili problemler; Örneğin B firmasının adresi değişti 3 satırdaki adres bilgisi de değişmeli Eksik kalırsa bilgi tutarsızlığı oluşur Hem zaman kaybına hem de hataya neden olabilir. Veritabanı neden kullanılır? Listelerle ilgili problemler; Örneğin A firması artık sizin şirketinizle çalışmıyor, Listeden firmayla ilgili kaydı silerseniz ürün satışı yapılan müşteri bilgisini ve firma adresi gibi bilgileri kaybedersiniz. Veritabanı neden kullanılır? Paylaşılan verilerle ilgili problemler; Örneğin şirketinizin farklı departmanlarının firma bilgisini görüntülemesi gerekiyor; departmanı: firma, adresi Pazarlama departmanı: firma, fiyat Müşteri hizmetleri: müşteri adı, mesleği, firma İletişim Veritabanı neden kullanılır? Paylaşılan verilerle ilgili problemler; Bu bilgilerin tamamının tüm departmanlarla paylaşılması ise farklı nedenlerden dolayı sakıncalıdır Güvenlik Müşteri vb. gizliliği Veritabanı neden kullanılır? Listeler oluşturmanın en büyük sakıncası farklı temalarla ilgili bilgileri bir arada bulundurmasıyla ilgilidir. Örneğin bir yazılı doküman oluşturulurken farklı temalar için farklı paragraflar oluşturulur, Veritabanı neden kullanılır? Benzer şekilde farklı temalardaki bilgilerin farklı tablolara yerleştirilmesi süreci normalizasyon olarak adlandırılır. Biraz önceki liste için; Müşteriler Çalışılan firmalar Satış bilgileri gibi Veritabanı neden kullanılır? Müşteriler Müsteri adı Mesleği Ahmet Sema mimar öğretmen Serdar Zerrin Mehmet Defne mühendis emekli Öğretim elemanı Elif Doktor avukat Veritabanı neden kullanılır? Çalışılan Firma A B C D firmalar Adres Çanakkale Cad. 43/5 Kayabaşı mah. A Blok 8/4 Gazi Mah 6/7 Gazi Mah 6/7 Veritabanı neden kullanılır? Satış bilgileri Fiyat 1000 TL 250 TL 350 TL 700 TL 1200 TL 100 TL 150 TL Veritabanı neden kullanılır? Farklı temalar farklı tablolara yerleştirildiğinde, Değişen bilgiler, Silinen bilgiler ve Paylaşılan bilgilerle ilgili problemlerin çoğu ortadan kalkar. Veritabanı neden kullanılır? Farklı temalar farklı tablolarda yer aldığında; Hangi müşteri hangi firmadan ürünü almış gibi soruları cevaplamak için ilişkilerin kurulması gereklidir. Veritabanı neden kullanılır? İlişkiler Müşter i No Müşteri No Müşteri adı Mesleği 1 Ahmet mimar 2 Sema öğretmen 3 Serdar mühendis 4 Zerrin 5 Firma No Fiyat 1 1 1000 TL 2 2 250 TL 3 3 350 TL 4 2 700 TL 5 2 1200 TL emekli 6 4 Mehmet Öğretim elemanı 7 1 6 Defne Doktor 7 Elif avukat Firma Firma Adres No 1 A Çanakkale Cad. 43/5 2 B Kayabaşı mah. A Blok 8/4 100 TL 3 C Gazi Mah 6/7 150 TL 4 D Gazi Mah 6/7 Veritabanı neden kullanılır? İlişkiler Müşteri No Firma No Fiyat 1 1 1000 TL 2 2 250 TL mimar 3 3 350 TL Sema öğretmen 4 2 700 TL 3 Serdar mühendis 5 2 1200 TL 4 Zerrin emekli 6 4 100 TL 5 Mehmet Öğretim elemanı 7 1 150 TL 6 Defne Doktor 7 Elif avukat Müşteri No Müşteri adı Mesleği 1 Ahmet 2 Firma Firma Adres No 1 A Çanakkale Cad. 43/5 2 B Kayabaşı mah. A Blok 8/4 3 C Gazi Mah 6/7 4 D Gazi Mah 6/7 Veritabanı neden kullanılır? Tabloları birleştirmek Peki baştaki bütüncül listeyi elde etmek için ne yapılır? SQL dilinden faydalanılır. Veritabanı neden kullanılır? Veritabanı yönetim sistemi nedir? Veri tabanı sisteminin bileşenleri; Veritabanı Uygulaması Kullanıcı Veritabanı Yönetim Sistemi Veritabanı Veritabanı yönetim sistemi nedir? Veritabanı yönetim sistemi nedir? Kullanıcı: gerçekleştirmek için veritabanını kullanır, Yeni veri ekler, Mevcut verileri değiştir, Verileri siler, Formlar, sorgular ya da raporlar yoluyla verileri okur İşlerini Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Veri tabanı yönetim sistemi ile kullanıcı arasında iletişimi sağlayan bir ya da birden fazla bilgisayar programıdır. Formlar , sorgular ve raporlar oluşturur, Kullanıcıdan verileri alır ya da kullanıcıya verileri gönderir, Kullanıcı davranışlarını veri tabanı yönetim sisteminden veri yönetim etkinliği için isteklere dönüştürür. Veritabanı yönetim sistemi nedir? Veri Tabanı Yönetim Sistemi: Uygulamadan gelen istekleri alarak bunları veri tabanı dosyaları üzerinde verileri okuyarak ya da veri yazarak gerçekleştirir, SQL cümlelerini okur ve bu ifadeleri bilgisayarın işletim sisteminin veritabanı dosyaları üzerinde verileri okuyacağı ya da yazacağı yönergelere dönüştürür. Veritabanı yönetim sistemi nedir? İşlevler Veri Tabanı Uygulaması Veri Tabanı Yönetim Sistemi Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 1. 2. 3. 4. 5. Formlar oluşturur ve formları işler, Sorgular oluşturur ve sorgular iletilir, Raporlar oluşturur ve raporları işletir, Uygulama mantığını gerçekleştirir, Uygulamayı kontrol eder. Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Formlar oluşturur ve formları işler, 1. ▪ ▪ ▪ ▪ Örneğin web temelli bir uygulamada; Kullanıcının bilgisayarında görüntülenecek HTML ve diğer web biçimlerini oluşturur, Kullanıcı formları doldurarak verileri geri yolladığında VTYS’ne gerekli düzenlemelerle ilgili istekleri gönderir. Süreçte bir hata meydana gelirse, hatalara ulaşır ve kullanıcıya gerekli mesajı gösterir ve/veya gerekli işlemleri gerçekleştirir. Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Sorgular oluşturur ve sorgular iletilir, 2. ▪ ▪ ▪ VTYS’ne iletilecek sorguyu üretir, Bu istekler genellikle SQL ile ifade edilir, Sorgu işletilince, sonuçlar biçimlendirilir ve kullanıcıya iletilir, Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Raporlar oluşturur ve raporları işletir, 3. ▪ VTYS’den sorgular aracılığıyla veri istenir ve sorgu sonuçları raporlar biçiminde sunulur, Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Uygulama mantığını gerçekleştirir, 4. ▪ ▪ ▪ Örneğin kullanıcı 10 birimlik bir istekte bulundu ancak stokta 8 birim bulundu, Ne olacağı programın mantığına bağlıdır, Uygun mantığın gerçekleştirilmesi uygulama programının görevidir. Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 5. Uygulamayı kontrol eder Veritabanı yönetim sistemi nedir? Veri Tabanı Yönetim Sistemi: 1. 2. 3. 4. 5. 6. Veritabanını oluşturmak, tabloları oluşturmak, Veritabanından veri okumak ve verileri güncellemek, Veri değerlerine ilişkin sınırlamaları gerçekleştirmek, Bir kullanıcının işleminin diğer kullanıcıyı engellemesini önlemek, Kullanıcıların yetkileri ölçüsünde etkinlikte bulunmalarına izin vermek, Veri tabanındaki verileri yedekleme. Veritabanı Veri Tabanı: İlişkili kayıtlardan oluşan veri depolarıdır. ▪ ▪ ▪ ▪ ▪ Üst veri (metadata) indeks saklı yordam (stored procedure) tetikleyici (trigger) veri tutarlılığı (referential integrity) Veritabanı Veri tabanının yapısı hakkındaki verilere metadata adı verilir. ▪ ▪ ▪ Tablo isimleri Sütun isimleri Tablo ve sütunların özellikleri vb. Veritabanı Metadata örneği: Tablo no Tablo adı Sütun sayısı Satır sayısı 1 Müşteriler 3 7 2 Firmalar 3 4 3 Satışlar 3 7 Sütun no Sütun adı Veri türü Uzunluğu Tablo no 1 id int 4 1 2 Mus_adi char 50 1 3 mesleği char 50 1 Veritabanı Bazı veritabanları uygulama üst verisi içerir. Bu üst veriler, formlar ve raporlar gibi uygulama bileşenlerini tanımlar. VTYS’inin veritabanının yapısını göstermek için çeşitli araçları vardır. Veritabanı Aynı zamanda veritabanlarında veritabanının performansını artırmak için kullanılan indeksler vardır. İndeksler hangi kayıtların hangi tablolarda bulunduğunu gösteren kitapların başındakine benzer bir mantığı olan araçlardır. Veritabanı Saklı yordamlar derlenmiş sql cümlecikleridir. Birer veritabanı nesnesi oldukları için, doğrudan veritabanı yöneticisi olan programda yer alırlar. Örneğin bir tablodaki verilerin yedeğini alan ya da 1 yıldan fazla zaman geçen verilerin yedeğini kaldıran saklı yordamlar oluşturulabilir. Veritabanı Saklı yordamlar bir tabloya bağlı olmaksızın veritabanı içinde tanımlanan belirli bir işi yapmaya yönelik kodlardır. Bu kodlar yazıldığı zaman aynı zamanda derlendikleri için optimize edilmiştir ve en hızlı şekilde çalışmaya hazır kodlardır. Veritabanı Bir tablo üzerinde belirli bir olaya bağlı olarak tetiklenip çalışan SQL kodlarına tetikleyici (trigger) denir. Tablo üzerindeki triggerları tetikleyen olaylar insert, update, delete olaylarıdır. Veritabanı Örneğin stok hareketleri sonucunda stok miktarlarının azalması veya artması işlemlerinin yapılması tipik bir trigger kullanım yeridir. Veritabanı Hem tetikleyici hem de saklı yordamlar veritabanı üzerindeki kodlar olmaları sebebi ile veritabanını sunan sunucu üzerinde çalışırlar. İstemci&Sunucu mimarinin güçlü bileşenlerindendir. İstemci&Sunucu mimarideki SQL veritabanları tarafından desteklenmektedir. Oracle, Sybase, MS SQL, Interbase, FireBird vb. Veritabanı Verilerin bulunduğu sunucu üzerinde çalışmalarından dolayı veriler istemci ile sunucu arasında gidip gelmezler ve de sunucudan istemci tarafına minimum veri çekilmiş olur. Veritabanı İlişkisel bir veritabanında PERSONEL tablosundaki kişinin bölüm bilgisinin BOLUM_NO değişkeninde tutulduğunu ve bölümün adının da BOLUM tablosunda bulunduğunu düşünelim. Veritabanı Eğer 1 numaralı bolum herhangi bir personelde kullanıldıysa BOLUM tablosundan BOLUM_NO değeri 1 olan kaydın kesinlikle silinememesi gerekmektedir. Bu tür kontrollerin yapılarak veri bütünlüğünün korunmasına veri tutarlılığı (referential integrity) denir. Veritabanı Veri tutarlılığını sağlamak amacı ile trigger kullanımı çok tercih edilir. Veri Tabanı Sistemleri 3 tür veri tabanı sistemi olabilir: Tek bir kişi tarafından kullanılan, Küçük çaplı işletmeler tarafından kullanılan, Büyük uluslar arası şirketler tarafından kullanılan Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan, Boyacı Kimlerin evi, ne zaman, ne kadar boyandı? Boyamada nereler boyandı, hangi renk ve stiller kullanıldı? Kimler başkalarına referans oldu? Referansla gelen kimler? Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan, Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan, Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan, Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Kiralanan müzik enstrümanları neler? Kaça kiralandı? En çok hangi müzik enstrümanları kiralanıyor? Kiralamayı kim yaptı? (çok kullanıcılı veritabanı) Aynı anda aynı enstrüman iki farklı satıcı tarafından seçilememeli! Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Veri Tabanı Sistemleri Büyük uluslar arası şirketler tarafından kullanılan, Sürücü lisansı veren ve otomatik kayıt bürosu 52 farklı merkezi var Kişilerin kazaları, trafik ihlalleri tutuluyor, Lisans yenilenebilir mi, herhangi bir sınırlama var mı? 100’lerce kişi tarafından veritabanı kullanılıyor ▪ ▪ ▪ Lisans ve kayıt personeli Kanun yaptırımlarını takip edenler Maliye departmanı personeli Haftada 7 gün 24 saat ulaşılabilmeli Veri Tabanı Sistemleri Büyük uluslar arası şirketler tarafından kullanılan,