VERİTABANI YÖNETİMİ Temel Terimler ve Kavramlar 1.HAFTA ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İçerik İlk dersimizde veritabanı temel kavramları açıklanarak, veritabanları ve özellikleri, dosya sistemleri, konuları ele alınacaktır. Veri tabanın hangi amaçla kullanıldığı, tarihsel gelişim süreci, nasıl bir yapıya sahip olduğu, veritabanı yönetim sistemlerini öğreneceğiz. Ders sonunda veritabanları hakkında genel bir bilgi sahibi olunması hedeflenmektedir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Giriş Veri tabanları, günümüzde hayatımızın her aşamasında karşımıza çıkan bir kavramdır. Bir mağazada ürün bilgileri, okullarda öğrencilere, personele ait bilgiler, hastanelerde hastaya, personele ilişkin bilgiler vs. bir yerde tutulmak zorundadır. İşte veri tabanları bu tür verileri depolamak ve daha sonra bu bilgilere istenildiği zaman erişebilmek için kullanılır. Bu derste veri tabanının ne olduğu, veri tabanına neden ihtiyaç duyulduğu sorularına cevap verebilecek, hazırlamak istediğiniz herhangi bir veri tabanının ihtiyaç analizini yapabilecek, ilişkisel veri tabanının ne olduğunu öğrenecek ve ilişkisel veri tabanı tasarlanması sırasında karınıza çıkacak olan sorunlara çözüm bulmak için kullanılan normal formların neler olduğunu ve hangi sorunların nasıl çözümlendiğini öğreneceksiniz. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veritabanı Yönetimi Sistemleri: Ders Hakkında Hafta Konu 1 Veritabanı Sistemleri ve Temel Kavramlar 2 Veritabanı Tasarımı 3 Veri Modeli 4 İlişkisel Veri Tabanı 5 Veritabanı Normalizasyonu 6-7 SQL-Yapısal sorgulama dili 8 Veritabanı Mimarileri-Veritabanı sunucusu- 9-10 Wampserver ve MySQL Workbench 11 Web Tabanlı Veri Tabanı Uygulamaları 12-13-14 Microsoft SQL Server 2012 ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil VTYS Dersinin amacı nedir? Çağdaş Veri Yönetimini Anlamak, Veri Tabanı Sistemlerinin Oluşturulması, Denetimi Ve Erişim Yöntemlerini Ve Araçlarını Öğrenmek, Veri Tabanları Yönetim Sistemlerinin Gelişim Yönlerini Araştırmak, Verilecek Teori Bilgiler Temelinde Vtys Uygulamaları Yapmaktır. Dersi anlamak ve başarılı olmak için… 1. Bilgiye ulaşmasını bilmek 2. Dersi takip etme 3. Ders notlarını takip etme 4. Farklı kaynaklara ulaşmak 5. Dersin gerekliliğini kavrama 6. Sizden istenenleri (ödev vb.) size verilen süre içerisinde etik kurallar içinde yerine getirme ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Amaçlar Veri Tabanları Konusunu Niçin Çalışmalıyız? Bilgisayar teknolojisi hesaplamadan bilgiye doğru bir yöneliş halindedir. Veri kümelerinin hacmi artmakta ve çeşitlenmektedir. Bilimsel verilerden askeri verilere kadar birçok alanda veritabanı kullanımı artmıştır. Ayrıca, Internet veritabanlarını bütün kullanıcılara açık hale getirdiği için kullanımı en yüksek seviyeye çıkmıştır. Kısacası içinde VT olmayan hemen hiçbir ciddi uygulama kalmamıştır. Bu çerçevede amaç; çağdaş veri yönetimini anlamak, veri tabanı sistemlerinin oluşturulması, denetimi ve erişim yöntemlerini ve araçlarını öğrenmek, veri tabanları yönetim sistemlerinin gelişim yönlerini araştırmak, verilecek teori bilgiler temelinde veritabanı yönetim sistemin uygulamaları yapmaktır. Önümüzdeki haftalar göz önüne alındığında bu derste veritabanı temel kavramlarını anlama, ilişkisel sorgu dili SQL’i öğrenme ve uygulama yapma, pratik bir ilişkisel veritabanı yönetim sistemini (Access, MySQL, MS SQL Server gibi) kullanarak veritabanın gerçekleştirimi ve Veritabanı ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil üzerinde sorgulama yapmayı öğreneceğiz. Terimler ve Kavramlar Veri: Veri kaydedilebilir bilinen gerçeklerdir. Veriyi, veri tabanında kayıtlı fiziksel değer olarak tanımlayabiliriz. Örneğin bir kişinin adı, adresi, telefon numarası gibi. Veri, bir ya da daha çok bilgi parçasından meydana gelen bir topluluktur. Sonuç çıkarmak, çıkarsama yapmak, ya da bir incelemeyi sürdürmek için gerekli olaylara, ilişkilere ve sayısal ham bilgilere verilen ad (Eğitim Terimleri Sözlüğü) Bilgisayar için işlenebilir duruma getirilmiş sayısal ya da sayısal olmayan bilgi (Matematik Terimleri Sözlüğü) Olgu, kavram veya komutların, iletişim, yorum ve işlem için elverişli biçimli gösterimi (Bilişim Terimleri Sözlüğü) Olguların, kavramların, veya talimatların, insan tarafından veya otomatik yolla iletişim, yorumlama ve işleme amacına uygun bir biçimde ifadesidir (ANSI tanımı). Genellikle, biz veri veya veri birimleri üzerindeki işlemlerimizi varlık hakkında her hangi bilgi almak için gerçekleştiririz. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Yönetimi Veri yönetimi, veriyi depolama ve depolanan veriye erişme sürecidir. Veri yönetiminin üç temel işlevi vardır: • a) Verinin iç ilişkileri ve dış dünya ilişkilerinin belirlenip, standart veri tanımlarının yapılması. • b) Belirli bir biçimde verinin depolama araçlarında depolanması. • c) Sistem kullanıcıları tarafından depolanmış verinin doğru bilgi sağlayacak şekilde elde edilmesi. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Yönetimi Yaklaşımları Bilgisayar tabanlı veri yönetiminde iki yaklaşım söz konusudur: a) Geleneksel dosya isleme ile veri yönetimi Geleneksel dosya isleme sisteminde, belirli dosyalar, belirli uygulamalarla yaratılır ve yönetilir. Veri bir programdan diğerine atılır. Her uygulama programı veya sistemi, sadece belirlenmiş bir bölüm veya kullanıcı grubunun ihtiyaçlarını karsılamak için tasarlanan verileri kullanır. b) Veri tabanı sistemi ile veri yönetimi Veri Tabanı Sistemleri (VTS), bilgisayarda çeşitli amaçlar için düzenli şekilde veri saklayan ve isteğe göre bilgi üreten bir kayıt tutma ve saklama sistemidir. Bu sistemler, genelde kişilerin, şirket veya kuruluşların özel ihtiyaçlarını karşılayacak şekilde oluşturulmaktadır. Bu yaklaşım, verinin birden fazla programca kullanılmasına izin veren bir yaklaşımdır. Veri tabanı sistemi ile dosyalar belirli uygulamalarla yönlendirilmez. Veriler sınırsız uygulamalarla paylaştırılacak biçimde düzenlenmiştir. Dosyalar arasında ilişkilerin yaratılması söz konusudur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Geleneksel Yaklaşım Geleneksel Veri yönetimi yaklaşımı, dosya kökenlidir. Bu yaklaşımda her bir uygulama kendi dosyalarıyla yürütülmektedir. Yani her bir uygulama problemi için ayrı veri dosyaları oluşturulmakta ve saklanmaktadır. Bilgisayarlar kullanılmaya başlamadan önce dolaplar ve çekmeceler dosya ve klasörlerle doldurulurdu. Bilgiler ise bu dolap veya çekmecelerde saklanırdı. Bilgisayarların kullanılmaya başlanmasıyla bilgiler yine yukarda anlatılan teknikle fakat dolap veya çekmeceler yerine elektronik ortamlarda saklanmaya başlanmıştır. Veri saklama birimlerinde depolanan veri topluluklarına "dosya" adı verilmektedir. Bu sistemlerde saklanacak bilgilerle, saklayacak ve işleyecek programlar birbirine bağımlı olarak çalışır. Bilgileri işlemek için kullanılacak olan programın, kullanacağı dosyaların yapıları ve erişim biçimleri hakkında bilgi sahibi olması gerekmektedir. Klasik dosya sistemleri kullanıcıların ihtiyaçlarını karşılayan bir bilgisayar programı yardımı ile verilerin saklanması, aranması ve güncelleştirilmesi işlemidir. Bu tür dosya sistemlerinde her program kendi verisini belirler ve sadece o veriye erişebilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Dosya sistemlerinin sakıncaları; Bunlar şöyle sıralanabilir: Veri tekrarı: Aynı veri çeşitli dosyalarda birden fazla yer alabilmektedir buda sistemin hantallaşmasına neden olur. Mesela bir stok dosyasında stok numarası verisinin malzeme dosyasında, fatura dosyasında ve ambar girişi dosyasında yer alması gibi. Verinin birkaç dosyada güncellemesi: Veri birden fazla dosyada tekrar edilebildiği için, verinin bir dosyada güncellenip diğerlerinde güncellenmemesi Veri Bütünlüğünün (Data Integrity) bozulmasına neden olabilir. Buna bağlı olarak birbiri ile çelişen raporlar üretilebilir. Belleğin tekrarlı bilgi nedeniyle israfı: Aynı verinin birden fazla dosya içinde bulunması nedeniyle kullanılan veri hard diskte fazla yer işgal edecek. Yani hard disk tekrarlı veriler için kullanılmış olacaktır. Sadece belirli bir dilin kullanılması: Verilerin dosya sisteminde saklandığı ortamlar için değişik programlama dillerinden biri kullanılır. Kullanılan bu programlama dili ise SQL dili gibi esnek değildir. Özet olarak Dosya Sistemlerindeki Sorunlar şöyle sayılabilir; Veriler birbirinden ayrı ve izole edilmiş, Çoğunlukla veri tekrarı var, Uygulama programına bağımlı, Birbirine uyuşmayan (incompatible) veri dosyaları, ©Veritabanı Yönetimi Anlaşılması zor. Prof. Dr. İbrahim Çil Veri Yönetimine Veri Tabanı Yaklaşımı Veri tabanı, verileri bir merkezde toplayarak ve veri tekrarını minimize ederek birçok uygulamaya verimli bir şekilde hizmet etmek üzere organize edilmiş bir veri topluluğudur. Veri tabanı teknolojisi geleneksel dosyalama sistemlerinin neden olduğu çoğu problemi ortadan kaldırabilir. Her uygulama için verileri farklı dosyalara saklamak yerine, burada veriler fiziksel olarak tek bir yerde depolanır. Tek bir veri tabanı birden çok uygulamaya hizmet verir. Örneğin, işçi bilgilerini personel ve bordro dosyalarında ayrı ayrı saklamak yerine, bu veriler tek bir insan kaynakları veri tabanında oluşturulabilir. Bu yaklaşımda her bir uygulama, birleştirilmiş veri dosyalarını kullanır. Yani veri dosyalan bütünleştirilmiştir. Bu yaklaşım, verinin birden fazla programca kullanılmasına izin veren bir yaklaşımdır. Veri yönetimine Veritabanı yaklaşımını kullanmak için ilave yazılım yani Veri Tabanı Yönetim Sistemi-VTYS gerekmektedir. Veri tabanı yaklaşımı, geleneksel ©Veritabanı yaklaşımın sahip olduğu dezavantajları Yönetimi Prof. Dr. İbrahim Çil ortadan kaldırmaktadır. VTYS ve VT iki farklı kavramdır VTYS bir yazılımdır, VT ise bir veri topluluğudur, yani fiziksel olarak dosyalarda tutulan bir bilgi kümesidir VTYS veri tabanlarını yönetir, depolar, siler, ekler v.b. işlemleri yapar. VT ise üzerinde işlem yapılan bir veri grubundan ibarettir (bu işlemleri kendisi yapamaz) Programcı verileri depolamak için veri tabanına doğrudan ulaşmaz, bunun yerine VTYS sistemine erişir ve ona talebini iletir Dolayısıyla sistemde her zaman bir VTYS bulunmak zorundadır VT Sistemi Veritabanı Veritabanı Yönetim Sistemi VT VTYS Fiziksel veri ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri tabanını yöneten yazılımlar topluluğu Veritabanı Veritabanı, bilgisayar temelli bir kayıt tutma sistemidir. Veritabanı, bilgisayar ortamında saklanan düzenli verilerdir. Veri tabanı; belirli bir veri modeli ile saklanan, sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler topluluğudur. Bilgisayar terminolojisinde, sistematik erişim imkanı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bilgisayarda sistematik şekilde saklanmış, programlarca işlenebilecek veri yığınıdır ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veritabani Yönetim Sistemlerinin Sağladığı Yararlar Veri tekrarı azaltılır: Aynı veri değişik kişilerin PC’lerinde veya değişik bilgisayarlarda tekrar tekrar tutulmaz; veri tekrarı azaltılır. Veri tutarlılığı: Aynı verinin değişik yerlerde birkaç kopyasının bulunması “bakım” zorluğu getirir: bir yerde güncellenen bir adres bilgisi başka yerde güncellenmeden kalabilir ve bu durum veri tutarsızlığına yol açar. Verinin paylaşımı sağlanır / Eşzamanlılık : VTYS kullanılmadığı durumlarda veriye sıralı erişim yapılır. Yani birden çok kullanıcı aynı anda aynı veriye erişemez. Bir VTYS’de ise verinin tutarlılığını ve bütünlüğünü bozmadan aynı veritabanlarına saniyede yüzlerce, binlerce erişim yapılabilir. Veri bütünlüğü: Bir tablodan bir öğrenci kaydı silinirse, öğrenci var olduğu diğer tüm tablolardan silinmelidir. Veri Bağımsızlığı: Programcı, kullandığı verilerin yapısı ve organizasyonu ile ilgilenmek durumunda değildir. Veri bağımsızlığı, VTYS’lerinin en temel amaçlarındandır. Verilerin güvenliğini sağlar: Verinin isteyerek ya da yanlış kullanım sonucu bozulmasını önlemek için çok sıkı mekanizmalar mevcuttur. Veri tabanına girmek için kullanıcı adı ve şifreyle korumanın yanı sıra kişiler sadece kendilerini ilgilendiren tabloları ya da tablo içinde belirli kolonları görebilirler. Kullanıcıların her alana erişememesi iyi bir özelliktir. Bunun için çeşitli yetkiler atanır ve verilerle birlikte bu yetkiler de saklanır. ©Veritabanı Yönetimi Her kullanıcının erişeceği veriler ayrı ayrı tanımlanabilir. Yetkiler ve kısıtlamalar ile Prof. Dr. İbrahim Çil istenilen kullanıcı erişim ayarları gerçekleştirilir. Olumlu Yönleri VERİ BAĞIMSIZLIĞI –Verinin uygulamalardan bağımsız olarak tutulması, mevcut yazılımların yeniden gözden geçirilmesine gerek bırakmadan yeni yazılımların, yeni verilerin ve yeni veri biçimlerinin eklenebilmesi GEREKSİZ VERİ TEKRARININ OLMAMASI –Her veri planlı tekrarlar dışında bir kez yer alır. tüm uygulamalar aynı veriyi kullanır. güncellemelerde bütünlük ve tutarlık sorunları ortadan kalkar. VERİ GÜVENLİĞİ –Herhangi bir veriye erişim ve işlem yapma önceden belirlenmiş yetki dahilinde gerçekleşir. güvenlik ve kullanıcıya özgü bilgilerin korunması için gerekli modüller VTYS içinde yer alır. VERİ BÜTÜNLÜĞÜ –her veri, hatalı uygulamalar dışında her erişimde olması gereken değeri yansıtır. hareket sonrası bir kez güncelleme yeterlidir. EKONOMİK BOYUT –Veri kaynağı tek merkezde tutulur ve ortak kullanılır. daha etkin teknik destek hizmeti sunulabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Olumsuz Yönleri BOYUT –Uygulama ile veri arasında yer alan katmanı oluşturan yazılım demetinin getirdiği fazladan bellek gereksinimi KARMAŞIKLIK ‐etkin kullanım için iç işleyişin bilinmesi gerekli ama bilgili kişi sayısı sınırlı ve pahallı. ayrıca verinin saklanması, geri çağrılması, korunması vb. konularda çeşitli seçenekler sözkonusu. bu seçeneklerin tercihinde yapılacak bir hata istenmeyen sonuçlara yol açabilir. MALİYET ‐daha fazla komut, daha uzun geliştirme süresi, daha fazla uzman kişi kullanımı nedeniyle artan maliyet donanım gereksinimi artışı ‐çok daha fazla sayıda komut nedeniyle hem daha güçlü işlemci, hem de daha fazla iç ve dış bellek gereksinimi söz konusu SİSTEM PROBLEM MALİYETİ ‐tüm verinin tek bir merkezde toplanması yüzünden herhangi bir bozulma durumunda tüm işler aksar. bileşkenin parçalarının her biri; VTYS’nin tutulduğu bilgisayar, işletim sistemi, dış bellek, iletişim sistemi, VTYS bozulabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Tabanlarının Kullanım Yerleri Bilgisayar teknolojisi hesaplamadan bilgiye doğru bir yöneliş halindedir. Verilerin hacmi artmakta ve çeşitlenmektedir. Bilimsel verilerden askeri verilere kadar birçok alanda veritabanı kullanımı artmıştır. Kısacası içinde veri tabanı olmayan hemen hiçbir ciddi uygulama kalmamıştır Ayrıca, Internet veritabanlarını bütün kullanıcılara açık hale getirdiği için kullanımı en yüksek seviyeye çıkmıştır. Bir kütüphane takip otomasyonu, bir hastane otomasyonu, muhasebe programları ve daha bir çok program temelde bir veritabanı uygulamasıdır. Günlük hayatta veritabanı programlama telefon şirketleri tarafından yoğun olarak kullanılır. Konuşmaların süreleri ay boyunca veri tabanlarında saklanır. VERTABANLARI LE NERELERDE KAR9ILA9IYORUZ Veritabanları hayatın her alanında kullanılmaktadır. • Bankalar: tüm işlemler / hareketler / ATM’ler ile işlem yaparken; • Kütüphane bilgisayarında tarama yaparken; • Havayolları: rezervasyonlar, zaman programları • Üniversiteler: Kayıt, dersler, notlar • Satış: müşteriler, ürünler, alımlar • Üretim: imalat, stok, siparişler, tedarik ihtiyaçları • İnsan Kaynakları: personel kayıtları, maaşlar, vergi kesintileri • İnternet yoluyla alışveriş yaparken; • Üniversite kayıt işlemlerinde; ©Veritabanı Yönetimi • Otel, uçak bileti rezervasyonlarında; Prof. Dr. İbrahim Çil Veritabanı Yönetim Sistemleri-VTYS Veri Tabanı Yönetim Sistemi (VTYS); bir veri tabanını oluşturmak, üzerinde istenilen bilgiyi aramak, gerektiğinde bilgi eklemek-silmekdeğiştirmek ve veri tabanı ile ilgili her türlü işletimse gereksinimleri karşılamak için kullanılan geniş kapsamlı yazılım sistemidir. Veri tabanları, veri tabanı yönetim sistemleri aracılığıyla oluşturulur ve yönetilir. Bu sistemlere; Microsoft Access, MySQL, IBM DB2, Informix, Interbase, Microsoft SQL Server, PostgreSQL, Oracle ve Sysbase örnek olarak verilebilir. VTYS, veri tabanı yazılımının bir parçası olarak, verinin nasıl depolanacağı, kullanılacağı ve erişilebileceğini mantıksal olarak yönlendiren bir kurallar sistemidir. VTYS, paylaşılabilen bir kaynak olan veriyi yöneten bir üründür. Bu ürün, kullanıcılara birbiriyle ilişkili verileri gruplama ve paylaşma imkanı vermektedir. VTYS, birbirleri ile ilişkili veri ve programlar topluluğundan oluşmaktadır. Uygulama Programları Veritabanı Yönetim ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Sistemi Veritabanı PC bazlı veri tabanları ve Sunucu veri tabanları Çok kullanılan veritabanı yönetim sistemleri: MySQL Microsoft SQL Server Microsoft Access Oracle IBM DB2 Paradox Interbase Informix Progress PostgreSQL ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Sunucu veri tabanları: 1.Oracle 2.Informix 3.MS-SQLServer 4.Sybase 5.DB2 6.MySQL 7.Postgresql PC bazlı veri tabanları : 1.Microsoft Access 2.FoxPro 3.FileMaker Pro 4.Paradox Veritabanı Yönetim Sistemleri-VTYS Veri tabanı yönetim sistemi bir organizasyonun verilerini bir merkezde toplamasına, verimli bir şekilde yönetmesine ve çeşitli uygulama programları tarafından bu verilere erişilmesine izin veren bir yazılımdır. VTYS uygulama programları ile fiziksel veri dosyaları arasında bir arabirim görevini görür. Uygulama programı spesifik bir veri parçasını aradığında, VTYS bu veri parçasını veri tabanında bulur ve uygulama programına aktarır. Geleneksel veri dosyalarında ise bu iş için programcı program içinde kullanılan her bir veri elemanının boyutunu ve formatını belirlemek ve sonra da bu verilerin bulunduğu yeri bilgisayara söylemek durumunda idi. Bu VTYS ler işlerini daha kolay yürütmek için kendi adına standart oluşturmuştur. Ancak genel işlemlerde kullanılan dil aynıdır ve adı SQL dir. MS SQL Server ve Sybase: Transact SQL Oracle: PL/SQL ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil VTYS yazılımları iki temel bölümden oluşur: a) Kullanıcı görünümlerini, alanları, kayıt tiplerini ve kayıtlar arasındaki ilişkileri belirleyen “Veri Tanımlama Dili-Data Definition Language (VTD)”ve kaydetme, güncelleme, çağırma veya silme komutlarını içeren “Veri Düzenleme Dili-Data Manipülatör Language (VDD)”. b) Kullanıcılar üzerinde yetki düzenlenmesini sağlayan “Veri Kontrol Dili-Data Control Language (DKD)” bölümü bulunur. Bu bölümler dışında seçimlik olarak “Sorgulama Dili-Data Qery Language (SD)”, yardımcı programlar ve Veri Sözlüğü gibi bölümlerden söz edilebilir. VTYS Veri Tanımlama Dili Tablo oluşturma Form oluşturma Sorgu oluşturma Rapor oluşturma Veri Tabanı VT Tanımları Veri Tabanını Oluşturma VT Sorgusu Sorgu İşleyicisi (SQL) Veri Yönetme Dili Kayıt ekleme Kayıt silme Kayıt güncelleme ©Veritabanı Yönetimi Veri Sözlüğü Prof. Dr. İbrahim Çil Veri Tabanını Kullanma Uygulama Programı ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Tabanı Uygulamaları Türleri PC veri tabanları: – Genellikle kişisel, 1 kullanıcı Çalışma Grubu veri tabanları: – Yerel ağ üzerinden herkesin veri tabanına eriştiği küçük grup kullanım, < 25 kullanıcıı Kurumsal veri tabanları: – İntranet üzerinden (veya bazen Internet üzerinden) tüm kuruluşa hizmet sunar. Yüzbinlerce kullanıcı Veritabanı Uygulamaları Sayısal ve Metinsel Veritabanları Multimedya Veritabanları Coğrafik Bilgi Sistemleri Veri Ambarları Gerçek-zamanlı ve Aktif Veritabanları ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veritabanı Yönetim Sistemleri Aktörleri SİSTEM HÜHENDİSLERİ ‐Vtys’nin donanıma, işletim sistemine, uygulama yazılımlarına uyarlanması, ince ayarlarının yapılması işlemlerinden sorumludur. Örneğin, türkçe’ye uygun sıralama özelliğinin seçilmesi, fontların ayarlanması, vb. VTYS SORUMLUSU (ADMIN) ‐Veritabanının tasarlanması, uygulama geliştirmede katkı, bakım ve yedekleme işlemleri, erişim planlaması, uygulaması, denetimi ile ileriye yönelik planlamalar UYGULAMA GELİŞTİRENLER ‐Veritabanındaki veriden değişik biçim ve içerikte bilgilerin rutin olarak alınabilmesi ve işlenebilmesi için uygulamaların geliştirilmesi. Örneğin bir bordro uygulamasının hazırlanması SON KULLANICILAR ‐Vtys üzerinde yer alan uygulamaları bilgi girişi ve rapor oluşturma amacıyla kullananma ve anlık sorgulama yapma ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Gelişim •1950 ler öncesi herşey kağıtta •1950 lerin sonunda tape ler devreye girdi. •1960 ların disk teknolojisi gelişti, veri dosyalara aktarıldı. •1970 lerin başında ilişkisel model ortaya çıktı. •1970 lerin ikinci yarsısında ER modeli geliştirildi. •1980 lerde ilişkisel VT kullanımı arttı ve SQL standart hale geldi. •1990 larda ilişkisel ve XML VT ları çıktı. •2000 lerde ise SQL gibi sorgulama dili olmayan kavramlar geldi (NoSQL). Veri Tabanı Yönetim Sistemleri (DBMS) 1960 Hiyerarşik İlişkisel 1970 Nesne-Yönelimli 1990 1995 Ağ Nesne-İlişkisel Internet Verileri ve E-ticaret Uygulamaları Java ©Veritabanı Yönetimi XML Prof. Dr. İbrahim Çil IMDB CMDB Embedded Mobile Veri Tabanı Sistemlerinin Kısa Tarihçesi 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. Tarihsel açıdan veri tabanı sistemlerinin gelişimini 3 kuşağa ayırmak mümkündür. 1960 ve 70'lı yıllarda kullanılan birinci kuşak veri tabanı sistemlerinde çizge kavramlarına dayalı hiyerarşik ve ağ modellerinin kullanıldığını görüyoruz. 1960’ların sonları: Conference On DAta Systems Languages (CODASYL) modeli tanımlandı. Bu ağ modeli idi, fakat daha çok standartlaşmıştı 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) 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) ve System R ( IBM San Jose Laboratory) 1976: Peter Chen Varlık İlişkisel (ER) modeli tanımladı 1980'li yıllarda kullanılmaya başlanan ikinci kuşak veri tabanı sistemlerin en belirgin özelliği ilişkisel sistemler olmasıdır. İlişkisel sistemlerin yetersizliği nedeniyle 3. Kuşak veri tabanı sistemleri dediğimiz genişletilmiş-ilişkisel, nesneye-yönelik ve nesne-ilişkisel veri tabanı sistemleri geliştirilmektedir. 1980lar:RDBMS, nesneye dayalı ve ileri-lişkisel modeler, Uygulama temeli DBMS (spatial, scientifc, enginering, etc.) 1990lar:Veri madencilği, veri ambarı, multimedia ve web veritabanları ©Veritabanı Yönetimi 2000lar; Akışkan haldeki verilerin yönetimi ve veri madenciliği(sensor data), Veri madencilği ve Prof. Dr. İbrahim Çil uygulamaları, Web teknolojileri (XML, data integration) ve global bilgi sistemleri Zaman içerisinde veri tabanı sistemlerinin gelişim seyri Veritabanı Sistemleri Web tabanlı Sistemleri Nesneye-yönelik Sistemleri İlişkisel Sistemleri Ağ Sistemleri Dosya Sistemleri 1960 1970 1980 1990 ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil 2000 2010 Zaman Veri Tabanı Yönetim Sistemlerinin Sınıflandırılması Veri Modeline Göre • Hiyerarşik • Ağ • İlişkisel • Nesneye Yönelik Kullanıcı Sayısına Göre • Tek kullanıcılı • Çok kullanıcılı Veri Modeline dayalı Veri Tabanı Yapıları • Bilinen temel veritabanı yapılar; hiyerarşik, ağ, ilişkisel ve nesne yönelimli veri tabanlarıdır. Kullanıcıların, kullanıcı ihtiyaçlarına en iyi hizmet verebilecek uygulama programlarım geliştirebilmeleri için veri tabanındaki veri elemanları arasındaki ilişkinin mantıksal olarak yapılanması gereklidir. • Amaç, verilerin nasıl ilişkilendirileceğinin gösterilmesidir. Veri tabanlarında depolanan kayıtlar ve onların birbirleriyle ilişkileri değişik mantıksal yapılarla gösterilebilir. • Veri Tabanı Yönetim Sistemleri bu yapıların oluşumları ve onların fonksiyonları kullanılarak tasarlanır. Veri tabanları aşağıdaki 4 yapıdan herhangi biriyle yapılandırılabilmektedir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Hiyerarşik Veritabanı Modeli Kitaplar (no, başlık) Yazarlar (ad, soyad) Yayıncılar Konular Bu yapı, bilinen en eski veri modelleme sistemidir. Kullandığı veri modeli ağaç yapısıdır. Hiyerarşim modelde veri türleri üstten aşağıya doğru bir usulde düzenlenir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Ağ Veritabanı Modeli Yazarlar Konular Kitaplar Yayıncılar Bilinen en karmaşık metoddur ve çizge veri yapısını temel alır. Bu yapı daha çok karmaşık bağlantılara izin verir. Veri türleri arasında yan bağlantılarla ilişki kurulur. Bu yapı aynı zamanda CODASYL model olarak ta adlandırılır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişkisel Veritabanı Modeli Bu modelde temel alınan şeyler verilerin birbiriyle ilişkileridir. Günümüzde en çok kullanılan modeldir. Bu mimari yapı kullanılarak bir çok yazılım üretilmiştir. Bu formda veri tabanı organizasyonu iki boyutlu tablolar şeklinde düşünülerek kullanıcıya sunulur. Veri tabanı kullanıcıları veri raporlarını bu yolla görür. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Nesne İlişkisel Veri Modeli Nesne ilişkisel veri tabanı, ilişkisel işlevselliğin üzerinde nesne yönelimli özellikler içerir. Bu türdeki ilk veri tabanı 1997’de oluşturulan Oracle8’dir. Desteklediği veri tipleri sayılar, tarihler ve karakterlerin dışında kullanıcının oluşturabileceği veri tiplerine kadar genişletilmiştir. Nesne ilişkisel veri tabanı sisteminin amacı, ilişkisel tipteki bir ortamda nesne tabanlı veri depolamayı sağlamaktır. Bu sistem, ilişkisel veri tabanı yönetim sisteminin nesne desteğini içeren melez bir veri modeli olarak kabul edilir. ilişkisel veri modelinde tamsayı, karakter katarı, reel sayılar gibi basit veriler tablolarda saklanırken, nesne ilişkisel veri modelinde veri depolanan tabloların yerini nesneler alır. Yapılan sorguların sonuçları satırlardır. Bu işlevselliği nesnelerle sağlamak ve bağlantısız verilerle nesne yönelimli programlama dillerini bütünleştirmek için ilişkisel modelde değişiklik yapılması gerekir. Bir VTYS'nin nesne ilişkisel yeteneklere sahip olabilmesi için, kullanıcı tanımlı veri tipleri, nesne ve kalıtım desteği verebilmelidir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Nesne Yönelimli Veri Modeli İlk geliştirilen VTYS’ler kolayca tanımlanmış veri alanlarına ve kayıtlara göre yapılandırılabilen homojen veriler için tasarlanmıştı. Fakat bugünkü ve gelecekteki uygulamalar, sadece önceden tanımlanmış sayıları ve karakterleri değil, çizimleri, resimleri fotoğrafları, sesleri ve videoları da saklayabilen veritabanlarını gerektirmesidir. İlk VTYS’ler bu tür grafik ve multimedya uygulamaları için uygun değildir. Bu tür verileri ilişkisel sistemlerde yönetmek için büyük çaplı programlama gerekir çünkü bu karmaşık veriler tablolara ve satırlara dönüştürülmelidir. Fakat, nesne yönelimli (object-oriented) VTYS’ler verileri ve prosedürleri nesneler halinde saklar ve bu nesneler istediğinde otomatik olarak alınabilir ve paylaşılabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Nesne Yönelimli Veri Modeli Veri tabanı yönetim sistemleri uygulamasında klasik veri modelleri için yapılan en önemli eleştiri, veri kümelerinin düşünce olarak bütünleştirilebilmesi, ancak uygulamada yetersizliklerin ortaya çıkmasıydı. Çünkü, gerçekten verinin nasıl davrandığı modellemede yer almamaktaydı. İşte nesne yönelimli veri modeli, semantik ifadelerin bütünleşmesiyle bu eksiklikleri gidermeye çalışır. Kullanılmakta olan ilişkisel veri tabanı teknolojisi, endüstride pek çok uygulama için oldukça yeterlidir. Ancak, ilişkisel veri tabanı teknolojisi, nesne yönelimli diller tarafından saglanan veri depolama modellerini hesaba katmaz. Özellikle, ilişkisel veri tabanlarının nesne yönelimli uygulamalarla birlikte kullanılması sırasında ortaya çıkan sorunlar vardır. Nesneye yönelik veri tabanı teknolojisi bu sorunları ortadan kaldırmak için geliştirilmiştir. Nesneye yönelik veri tabanı , C++ gibi nesneye dayalı (OBJECT ORIENTED) bir dille (OOPL) yazılmış olan ve yine C++ gibi nesneye dayalı (OOPL) bir dille kullanılan veri tabanı anlamına gelmektedir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Nesne Yönelimli Veritabanları Bu sistemler web uygulamalarında kullanılan çeşitli multimedya bileşenlerini yada Java “apletlerini” yönetmek için kullanılabilir. OOVTYS, tekrarlı veriler gibi veri türlerini saklamak için oldukça kullanışlıdır. Örneğin üretim uygulamalarında parçalar içinde parçaların bulunduğu (malzeme listesi) tekrarlı veriler bu sistemlerde kolayca baş edilebilir. Finans ve ticaret uygulamaları da genellikle OOVTYS kullanır çünkü bu uygulamalar yeni ekonomik şartlar altında kolayca değiştirilebilen veri modelleri ister. Her ne kadar nesneye yönelik veritabanları daha karmaşık veri türlerini saklayabilse de, büyük miktarda verilerin işlenmesi gerektiği durumlarda bu sistemler ilk çıkan ilişkisel VTYS’ler ile karşılaştırıldığında yavaş kalır. Nesne yönelimli sistemler, farklı sistemler ve metodolojiler için kullanılmıştır. Genel olarak bu sistemler gerçek dünyadaki nesne denilen şeyleri varlık seklinde modellemeyi temel almaktadır. Nesneler, ortak karakteristikler içeren sınıflar içerisinde bulundurulur. Sınıf hiyerarşisi kavramı ise insanların nesneleri küresel anlamda kategorize etmelerini sağlamak için geliştirilmiştir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil İlişkisel Veri Tabanı ve Nesneye Yönelik Veri Tabanı Nesneye yönelik veri tabanı yönetim sistemi (NYVTYS), “kapsülleme” gibi uygun giriş metotlarıyla birlikte veriyi saklar. ilişkisel veri tabanında ise veri normalleştirme ile uygun şekilde saklanır. Basit olarak anlatmak gerekirse, ilişkisel veri tabanında bir nesnenin her parçası tabloda ayrı bir hücrede tutulur ve tablo o nesneyi oluşturur. Oysa NYVTYS’nde nesne bütün olarak tek bir hücrededir. Burada bilgisayar destekli tasarım (CAD) uygulamalarında olduğu gibi karmaşık veri tipleri depolanabilir. Multimedya uygulamalarında olduğu gibi aynı veri tabanı içindeki veri tipleri genişletilerek dizilebilir. Evrimsel uygulamalarda olduğu gibi zamansal olarak nesnelerin takibi daha kolaylaşır. Verinin nesne ve tablo görünümü ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Melez Sistemler Bugün hibrid object-relational VTYSler gündeme gelmiştir. Bu melez sistemler her iki sistemin yeteneklerini birleştirir. Bu tür bir melez sistem yaklaşımı üç farklı şekilde elde edilebilir: 1. İlişkisel VTYS’lerine nesneye yönelik erişim sağlayan araçlar kullanarak, 2.Mevcut ilişkisel VTYS’ne nesneye yönelik uzantılar ekleyerek, yada 3.Melez bir “object-relational” veri tabanı yönetim sistemi kullanarak. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Modeline Göre Veri Tabanı Yapıları Dosya sistemleri İlişkisel VTYS Nesneye yönelik VTYS Hiyerarşik Sistemler Dosya Sistemleri Nesne-Yönelimli İlişkisel Sistemleri Nesne- İlişkisel Ağ Sistemleri ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Nesne-İlişkisel VTYS Veriden, verinin bilgisayarda saklanmasına giden yol Girdi (Input) Veri (Data) İşleme (Process) Bilgi(Information) Veri / Bilgi Saklama (Storage) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Çıktı (Output) Veri Tabanlarının karşılaştırılması Geleneksel Veri Tabanı (Legacy Database) Genellikle hiyerarşik veya ağ veri tabanında kurulurlar. Programları, COBOL dilinde yazılır ve raporlama araçları hantaldır. Anında ileten ve parti parti çalışan bileşenleri vardır. Bu veri tabanları, yüksek miktarda veri depolarlar ve geniş düzeyde işleme yaparlar. İlişkisel Veri Tabanı (Relational Database) İlgili verinin standart raporlama ve sorgulama yapılabilecek şekilde depolanmasına izin verirler. Örneğin, Yapılandırılmış Sorgulama Dili -SQL) sadece ilişkisel veri tabanları için tasarlanmıştır. İlişkisel veri tabanları bir ana bilgisayara ya da sunucuya merkezi olarak yerleştirilebileceği gibi bir kişisel ya da mini bilgisayar ağına da dağıtılabilir. Nesne yönelimli Veri Tabanı (Object database) Sadece nümerik ve karakter veriyi değil resimleri veya grafik bilgisi gibi daha gelişmiş nesneleri, veritabanı işlemleriyle ilişkilendirerek kullanır. Bu veri tabanları, bazı uygulamalarda kullanılmasına karşın henüz Yönetimi standartlaştırılmamıştır ve işletme©Veritabanı maliyetleri yüksektir. Prof. Dr. İbrahim Çil Veri Saklama ve Veri Hiyerarşisi Bilgisayar sistemi verileri şu sırada organize eder: Bit ve byte, alan, kayıt, tablo (dosya), veri tabanı, veri ambarı. Bir Bit bilgisayarın saklayabileceği en küçük birimdir. Bir grup bit, yani byte, tek bir karakteri temsil eder. Bu karakter bir harf, sayı, bir sembol olabilir. Bir grup karakterin bir kelime yada kelimeler grubu haline gelmesiyle bir “alan” oluşturulur. Örneğin: İsim, tel, vs. Birbiriyle ilişkili bir grup “alan” bir araya gelerek bir kayıt teşkil eder. Kayıtlar bir araya gelerek bir dosya teşkil eder. Dosyalar tablo olarak ta düşünülebilir. Tablolar ise bir araya gelince veri tabanı oluşturur. Veri tabanı en az bir tablodan oluşur. Veri Ambarı, Veritabanı topluluğudur. Tablo(Dosya), Kayıt ve Alan Veri saklama birimlerinde depolanan veri topluluklarına tablo(dosya) denir. Dosyalar kendi içinde kayıtlara bölünmüştür. Kayıtlar da farklı bilgilerden oluşur. Bu bilgilerin her birine alan adını veriyoruz. Alan adı verilen ayrılmış boşluk, içinde bir veri elemanını saklar. Bu veri elemanı verinin niteliklerini tanımlar. Dosya(Tablo); kayıtlardan, kayıtlar alanlardan oluşur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Saklama ve Veri Hiyerarşisi Bilgisayar sistemi verileri şu sırada organize eder: Bit ve byte, alan, kayıt, tablo (dosya), veri tabanı, veri ambarı. Bir Bit bilgisayarın saklayabileceği en küçük birimdir. Bir grup bit, yani byte, tek bir karakteri temsil eder. Bu karakter bir harf, bir sembol yada sayı olabilir. Bir grup karakterin bir kelime yada kelimeler grubu haline gelmesiyle bir “alan” oluşturulur. Örneğin: İsim, tel, vs.) Birbiriyle ilişkili bir grup “alan” bir araya gelerek bir kayıt teşkil eder. Kayıtlar bir araya gelerek bir tablo teşkil eder. Tablolar ise bir araya gelince veri tabanı oluşturur. Diğer ifadeyle veri tabanı en az bir tablodan oluşur. Veri Ambarı, Veritabanı topluluğudur. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Hiyerarşisi Veri parçası Bit ( 1/0) 0,1 Byte ( 8 bit) 01000001 Karakter ( ASCII- UNICODE vb.) A Kelime ( 1 veya birden çok karakter) Ali Kayıt ( Kelime topluluğu) Ali Kaya 1989 Adana Veritabanı( Topluluğu ) Ali KayaKayıtlar 1989 Adana Veli Keser 1986 Çorum Ayşe Bal 1988 Kayseri 20493054 Tablo (Kütük) Veri Ambarı (Veritabanı topluluğu) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Kayıt ALİ Tablo EREN MÜHENDİSLİK BİLGİSAYAR Veritabanı Dijital birimlerde, veri kapasitesi ve boyutu açısından bazı değerler kullanılır. 1 bit: 0 veya 1 8 bit: 1 Byte 1024 Byte: 1 KiloByte (KB) 1024 KB: 1 MegaByte (MB) 1024 MB: 1 GigaByte (GB) 1024 GB: 1 TeraByte (TB) 1024 TB: 1 PetaByte (PB) 1024 PB: 1 ExaByte (EB) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Hiyerarşisi Dosya sistemi Veri tabanı Tablo(Dosya), Kayıt ve Alan Veri saklama birimlerinde depolanan veri topluluklarına dosya denir. Dosyalar kendi içinde kayıtlara bölünmüştür. Kayıtlar da farklı bilgilerden oluşur. Bu bilgilerin her birine alan adını veriyoruz. Alan adı verilen ayrılmış boşluk, içinde bir veri elemanını saklar. Bu veri elemanı verinin niteliklerini tanımlar. Bit (0,1) Byte / Karakter (01001100) Alanlar (Fields) Veri Tabanı (Meta Data, Tablolar, Dizinler, ...) ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Kayıtlar (Records) Dosyalar (Files) Veri hiyerarşisi Bit (0,1) Byte / Karakter (01001100) Ad Alanlar (Fields) Soyadi ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Kayıtlar (Records) Güven KÖSE 1234 Dosyalar (Files) Güven KÖSE 1234 Ali KAYA 4356 ….. ….. …. Veritabanı Büyüklüğü Hesaplaması Örneğin MS SQL Serverda veriler disk üzerinde sayfa şeklinde tutulur Her sayfa 8 KB lık bloklar şeklinde depolanır. Örneğin 1MB lık bir veritabanında bilgiler; 1024/8 = 128 sayfa olarak tutulacaktır 128*8=1024 KB (1MB) Eğer bir tabloda birden fazla sütun varsa toplam satır boyutunu hesaplarken 9 Byte ‘lik ilave yapmak gerekir (row overhead). Satırlar (rows) sürekli, bölünmeyen yapıdadır ve tek satırda maximum miktar 8096 Byte (8KB) dır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veritabanı Büyüklüğü Hesaplaması Örnek : Aşağıdaki gibi tanımlanmış bir tabloda 250.000 adet kayıt vardır. Buna göre tablonun databese içerisinde kapladığı alanı bulalım: create table ogrenci ( adi char(30), soy char(30), tel cahr(30), ceptel char(30), dtarihi DateTime , vize int, final int ) adi 30 byte soy 30 byte tel 30 byte ceptel 30 byte dtarihi 8 byte vize 4 byte final 4 byte 1)Toplam Satır boyutu = 4*30 + 1*8 + 2*4 + 9 -> 147 byte 2) Her sayfadaki satır sayısı = 8096/147 -> 55 satır 3)Tablo içindeki sayfa sayısı = 250.000 / 55 -> 4545 sayfa (page) 4)Tablo boyutu = 4545 * 8 KB -> 36.363 KB veya 36 MB NOT: Birden çok sütun olduğundan 9 byte ilave edilmiştir. Bu tabloda INDEX’ leme yapılmamıştır. Hesaplanan değer, Index’ leme yapılan sütuna göre r %25 ile %50 oranında ©Veritabanı artacaktır. Yönetimi Prof. Dr. İbrahim Çil Veri Saklama Modelleri: : OLTP ve OLAP Veritabanları günümüzde yoğun olarak veri üretilen yerlerde iki genel amaca yönelik olarak kullanılır. Bunlardan biri, üretilen verilerin anlık olarak SQL Server saklanması işlemdir ki bu türden işlemler için Access MySQL optimize edilmiş sistemlere OLTP (Çevrimiçi Oracle Hareket İşleme (ÇİHİ)-On-line Transaction OLTP Processing) adı verilir. OLAP Veri girişi veya bankacılık ve taşımacılık gibi sektörlerde kayıt takip işlemlerini yapmak için İlişkisel Veritabanı Yönetim Sistemi kullanılan uygulamaları yöneten bir uygulama türüdür. OLTP sistemlerde sürekli olarak veride değişiklikler olur, her an eklenmeler yada silinmeler olabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil OLTP(Online Transaction Processing) Sistemler Sistemler (Çevrimiçi Hareket İşleme (ÇİHİ) Sistemler Bir kurumun verilerinin işlendiği ortamlara OLTP (Online Transaction Processing) sistemler adı verilmektedir. Sisteme yeni bilgilerin eklenmesi, varolan bilgilerin değiştirilmesi ya da silinmesi gibi işlemler ile sürekli olarak güncellenen ve bir değişim içindeki verilerden oluşan sistemlere özgü işlemleri kapsar. Örn: Bankacılık, borsa, okul sistemleri… ÇİHİ işlemleri, veri tabanı üzerinde sürekli olarak yeni operasyonların aynı anda birçok kullanıcı tarafından gerçekleştirilmesini sağlar. Örneğin bir işletmenin sahip olduğu stok sistemi ile depoya giren ve çıkan ürünleri ve ödemeleri izlenebilir. OLTP sistemlerine ilişkin veritabanlarına veri kaydedilebilir, veriye erişilerek raporlanabilir ve istendiğinde veri silinebilir. Güncelleme Kayıt ekleme OLTP Veri tabanı Kayıt okuma ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Kayıt silme OLAP (Online Analiytical Processing) OLAP- Eş Zamanlı Analitik Veri İşleme OLAP (Online Analiytical Processing), daha çok raporlama ve karar destek amacı ile kurulan sistemlerdir. OLAP- Eş Zamanlı Analitik Veri İşleme şeklinde Türkçeye çevrilebilir. Bu türden sistemler aracılığıyla veri ambarı ve veri pazarı gibi yapılar kullanılarak yoğun bir şekilde üretilmiş verilerin analizleri ve raporları oluşturulur. Böylece tüketici ve satış eğilimleri, üretim maliyetleri gibi konularda kullanılacak sonuçlar elde edilir. Bu araç çok boyutlu veri analizinde kullanılır. Bilginin her bir yönü (ürün, fiyat, bölge, maliyet, zaman) farklı bir boyutu temsil eder. Çok boyutlu analizler birden çok boyut kullanarak, kullanıcıların aynı verileri farklı şekillerde görmesini sağlar. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Çok boyutlu veri analizi Organizasyonlar veritabanlarında sakladıkları bilgileri daha iyi kullanabilmek için güçlü veri analizi araçlarından ve web tabanlı veritabanı teknolojilerinden faydalanıyor. Bazen yöneticiler eldeki verilerini geleneksel veritabanı modellerinin sunduğu yöntemlerden farklı şekillerde analiz etmek ister. Örneğin, somun, cıvata, vida ve delikli pul (rondela) olmak üzere dört farklı ürünü üç farklı bölgede satan bir şirket, gerçek satışlarının ürünlere göre ve bölgelere göre miktarını bilmek isteyebilir. Ve bu satış rakamlarını önceki tahmin değerleri ile karşılaştırabilir. Bu tür bir analiz veriye çok boyutlu bir bakış açısını gerektirir. Bu nedenle Çok boyutlu veri analizi olarak ta ifade edilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bu tür bir bilgi sunabilmek için, organizasyonlar ya özel bir çok boyutlu veri tabanı kullanmalıdır, yada ilişkisel veritabanındaki verilerin çok boyutlu görünümlerini veren araçlar kullanmalıdır. ÜRÜNLER Önceki tahmin Değerleri Gerçek Değerleri Somun Cıvata Vida Pul Doğu Batı Orta PAZAR BÖLGELERİ Çok boyutlu analizler birden çok boyut kullanarak, kullanıcıların aynı verileri farklı şekillerde görmesini sağlar. nin bir diğer ismi: on-line analytical processing (OLAP). Bilginin her bir yönü (ürün, fiyat, bölge, maliyet, zaman) farklı bir boyutu temsil eder. Çok boyutlu VTYS •İlişkisel VTYS nin bir türevi •Çok boyutlu – boyut / değer ilişkisine dayalı •İlişkisel VTYS lerden beslenirler •MDX standart dili ile sorgulanabilir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Kapalı Döngü Kayıt yönelimli OLTP ve analiz yönelimli OLAP ortamları bir bütünlük içerisinde olmalıdır. İş yapma süreçlerinin ürettiği veriler analiz edilebilir durumda olmalıdır. Veri tabanlarındaki verilerin analizinden bilgiler elde edilmektedir. Bu bilgilerde işletmenin stratejisini belirlemede ve kararlarda destek sağlamaktadır. Bu nedenle veri kaynakları düzenli ve anlamlı olmalıdır. Aşağıdaki şekil bu çevrimi göstermektedir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Veri Ambarı (Data Warehouse) Genel olarak veri ambarı, birçok kaynaktan bilgi toplayan ve bu bilgileri son kullanıcının erişebilmesi için birleştiren ve tutarlı hale getiren bir sistemdir. Diğer sistemlerin veri tabanlarından veri alabilmeyi sağlarlar. Birçok veritabanından gelen bilgiyle beslenir ve son kullanıcının erişimi için hazır bulundurulur. Karar destek sistemlerinde kullanılır. Veriyi yüksek maliyetli bireysel sistemlerde değil, düşük maliyetli büyük sistemlerde işlediklerinden maliyetlerde düşme sağlarlar. Son kullanıcılara kolay kullanılan sorgulama ve analiz araçlarıyla ve grafik arayüzlerle bilgiye ulaşım imkanı sunarlar. Bilgiler, ayrı sistemlerden değil, sürekli güncellenen tek bir sistemden alınır. Veri Pazarları (Datamart): Veri ambarlarının daha küçük versiyonlardır ve daha ziyade departmanlara yönelik küçük veri kümelerini depolarlar. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Büyük Veri (Big Data) Kavramı: Bilişimin yeni ufku Big Data Kavramı:Büyük veriler, mevcut bilgi sistemlerinin işleyemeyeceği kadar geniş ve karmaşık veri kümelerine verilen addır. Diğer bir deyişle, bilinen veritabanı yönetim sistemleri ve yazılım araçlarının, verileri toplama, saklama, yönetme ve çözümleme yeteneklerini aşan büyüklükteki verilere büyük veri-big data- denir. Günümüzde bu büyüklük onlarca terabayt’ tan (1 terabayt= 1000 gigabayt, 10 üzeri 12 bayt) petabayt’lara (10 üzeri 15 bayt) uzanır. Büyük veriler, yüksek hacimlerinin yanında, yüksek veri üretim hızı ve yüksek veri değişkenliğe sahip bilgilerden oluşur ve ileri düzeyde karara destek, verilerden anlam çıkarma ve süreç optimizasyonu yapabilmemizi sağlar. "Zamanla toplanan büyük miktarda verilerin ekonomik ve ölçeklenebilir bir biçimde ve ilişkisel veritabanı tekniklerinin yetmediği noktalarda kullanılabilir ve anlamlandırılabilir kılınması kavramıdır". Büyük verileri yorumlama yeni yaklaşımlar gerektirir HAZIRLAMA YORUMLAMA Hız Veri Hacmi Veri Veri Değişkenliği ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Karmaşıklık Bilgi Sistemlerinin Karakteristik Özellikleri Bilgi sistemi Amacı Kayıt İşleme Sistemleri TPS(Transaction Processing System) Günlük işlemler sonucu oluşan verinin toplanması ve saklanması Yönetim Bilişim Sistemleri MIS(Management Information System) Bir TPS’deki veriyi bir organizasyonu planlamak, kontrol etmek ve yönetmek için bilgiye dönüştürür. Karar Destek SistemleriDSS(Decision Support System) Veri analiz edilerek ve işlenerek yönetimin karar vermesine destek sağlar. Üst Düzey Bilgi/Destek Sistemleri EIS (Executive Information System) Üst yönetime organizasyonun performansını arttırmak, stratejiler geliştirmek ve uygulamak için bilgi sağlar. OLAP- Eş Zamanlı Analitik Veri İşleme OLAP(Online Analytical Processing) Verilere hızlı erişim ve çok boyutlu analiz sağlar. Veri Madenciliği Data Mining Verideki gizli (saklı) ilişkileri ortaya çıkarmak için istatistik analiz ve yapay zeka tekniklerini kullanır. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Yeni trendler •NoSQL •SQL kullanılmayan •Sabit tablo yapıları bulunmayan •İlişki tanımlanmayan •ACID kurallarını sağlamayabilen VTYS ler. •Aakdemisyenler bu sistemlere ‘structured storage’ adını veriyor. •Big data 4 ExaByte veri %70 mobil erişim Big data için uygulanan çözümler –MPP veritabanları –Apache Hadoop framework –Dağıtık dosya sistemleri –Dağıtık veritabanları –MapReduce algoritmaları –Bulut bilişim altyapısı ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Sosyal veri Yeni trendler • In-memory database Tüm veri hafızada – hem avantaj hem problem –Daha hızlı –Güç gidince tüm veri kaybolur. Önleme yöntemleri (Snapshot dosyaları, Replication,TRX loglaması, NVRAM kullanımı) •Sosyal İş Zekası (Social BI) Sosyal medya iş yapmanın kurallarını değiştiriyor –Satış yapma, doğru kitle ile buluş –Büyük kampanyalar yerine ufak/kişisel aksiyonlar al –Kontrolü bırak, açık ol –İletişim kanalları kapama, her yerde varol •Database machine/appliance •Özelleştirilmiş donanım/yazılımlar •Donanım/yazılım beraber ve entegre geliştiriliyor •Özel çözümler olduğu için entegrasyon problemleri minimum •Daha çok veriambarı çözümlerinde kullanılıyor •Bulut VTYS (Cloud DBMS) •Mobile BI ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Transaction ve ACID Transaction, daha küçük parçacıklara ayrılamayan işlem bloğu demektir. Bazı durumlarda, birden fazla işlem bir bütünün parçasıdır. Bu işlemlerden biri bile gerçekleşmese bütün işlemler anlamsız kalabilir. Bu türden işlemlerin tamamının bir tek işlem gibi ele alınması gerekiyor demektir. Parçalanamaz işlemlerin oluşturduğu yeni bir tek işleme transaction denir. Bir veritabanı veriler üstünde değişiklik yaparken ACID kuralını sağlamalıdır ACID( Atomicity, Consistency, Isolation, Durability) Bu kurallar; 1. Atomicity (Bölünmezlik): Transaction bloğu yarım kalmaz. Ya hepsi gerçekleşmiş sayılır veya hiçbir işlem gerçekleşmemiş gibi kabul edilerek en başa dönülür. Yani, transaction daha küçük parçalara ayrılamayan bir işlem birimi olarak ele alınır 2.Consistency (Tutarlılık): Transaction veritabanının yapısını bozmadan işlem bloğunu terk etmelidir. Yani ara işlemler yaparken ürettiği işlem parçacıklarının etkisini veritabanında bırakarak, transaction’ı sonlandıramaz. Örneğin, birinci hesaptan para azaltıp ikinci hesaba eklemeden transaction sonlandırılamaz 3.Isolation (İzolasyon): Farklı transaction’lar birbirinden ayrık ele alınmalıdır. Her transaction için veritabanının yapısı ayrı ayrı korunmalıdır. İlk transaction tarafından yapılan değişiklikler, ikinci transaction’dan her an görülememeli, sadece bütün işlem gerçekleştiği anda ve bütünü bir anda görülmelidir 4. Durability (Dayanıklılık): Tamamlanmış transaction’ın hatalara karşı esnek olması gerekir. Elektrik kesilmesi, CPU yanması, işletim sisteminin çökmesi bu kuralları uygulamaya engel olmamalıdır. Bunun içinde gerçekleşmiş ve başarılı olarak sonlanmış transaction’ın değişikliklerinin kalıcı olarak diske yansıtılması gerekir. ©Veritabanı Yönetimi Prof. Dr. İbrahim Çil Bazı Kavramlar Agent : Ajan. Internet'te bilgi toplayan bir program. Sizin olmadığınız zamanlarda da bazı servisleri periyodik olarak yerine getirebilir. Verdiğiniz parametrelere göre ilgilendiğiniz bilgileri toplar, bunları günlük veya belirlediğiniz periyotlarda size sunar. Algorithm : Bir sorunu çözmek için belirlenmiş kurallar veya işlemler. Authentication : Onaylama. Özel veya herkese açık ağlarda, ağa bağlanan kişinin kimliğinin tespiti için gereklidir.İşlem şifre girilerek gerçekleştirilir. Authorization : İzin. Sisteme giriş izni vermek. Çok kullanıcılı sistemlerde sistem yöneticisi, sisteme girebilecek kişilere giriş izni ve kişilere bağlı olarak da sistemde yapabileceği işlemler için belirli izinler verir. Authentication : Onaylama. Özel veya herkese açık ağlarda, ağa bağlanan kişinin kimliğinin tespiti için gereklidir.İşlem şifre girilerek gerçekleştirilir. Authorization : İzin. Sisteme giriş izni vermek. Çok kullanıcılı sistemlerde sistem yöneticisi, sisteme girebilecek kişilere giriş izni ve kişilere bağlı olarak da sistemde yapabileceği işlemler için belirli izinler verir. Backup : Yedekleme. Ekipmanın bozulması durumu düşünülerek dosyaların veya veritabanının başka bir yere kopyalanması işlemi. Browser : Web'de yayınlanan bilgiyi aramak için kullanılan bir yazılım paketi; en çok kullanılanları Microsoft Internet Explorer ve Netscape'dir. Cache : Bir şeyin geçici bir süre saklandığı yer. Web sayfalarını, diskinizdeki browser'in cache dizininde saklayabilirsiniz. O sayfaya tekrar dönmek istediğinizde, browser sayfayı gidip sunucudan almak yerine cache'den alır ve size zaman kazandırır. Bilgisayarlar çeşitli seviyelerde cache içerirler, bunların arasında bellek cache'i (ön bellek) ve disk cache'i vardır. Client : İstemci. Ağ üzerindeki bir nokta. Bir sunucu tarafından sağlanan kaynakları kullanan kullanıcı iş istasyonu. Client/server : İstemci/sunucu. İki bilgisayar programı arasındaki ilişkiyi tanımlıyor. Programlardan biri (istemci), talebini yerine getirecek olan programdan (sunucu), bir servis talebinde bulunur. Bir ağ üzerinde istemci/sunucu modeli, farklı yerlere dağıtılmış programlar arasında uygun bir iletişim yolu sağlar. Data mining : Veri arama. Daha önce bulunmayan ilişkileri ortaya çıkarabilmek için yapılan veri analizi. Data warehouse : Veri ambarı. Bir kurumun çeşitli kaynaklarından gelen verilerin tamamının veya önemli kısımlarının toplandığı depolama alanı. Çeşitli uygulamalardan ve kaynaklardan alınan veriler veri ambarındaki bir veritabanında tutulacak şekilde düzenlenirler ve analitik uygulamalar tarafından kullanılmak veya kullanıcı sorguları için hazır hale getirilirler. Database : Veritabanı. Kolayca erişilebilecek, yönetilebilecek ve güncellenebilecek şekilde düzenlenmiş olan bir veri topluluğu. Bir veritabanı, satış işlemleri, ürün bilgileri, stoklar ve müşteri bilgileri ile ilgili kayıtları barındırır. Database management system : Veritabanı yönetim sistemi. Bir veya birden fazla kullanıcının bir veritabanına bilgi girmesine veya veritabanındaki bilgilere erişmesine izin veren bir program. Decission support system : Karar destek sistemi. Kullanıcıların iş kararlarını daha kolay verebilmesi için verileri analiz eden ve sonuçları kullanıcıya sunan bir uygulama. Default : Kullanıcı bir ayar parametresini veya herhangi bir değeri belirlemediği zaman, uygulamanın kullandığı daha önceden belirlenmiş sabit bir değer veya ayar parametresi. Encoder : Sayısal ses teknolojisinde, wav ses dosyalarını MP3 dosya formatına dönüştüren program. Entity : Varlık. İletişim alanında genel olarak yönetilebilen bir ağ cihazını gösterir. Gigabit : 1 milyar bit. İki iletişim noktası arasında saniyede iletilen bit sayısının ölçüsü olarak kullanılır. KB (kilobyte) : Bilgisayar belleği veya depolama alanı için ölçü birimi. 1 KB yaklaşık bin byte'dır (1.024 byte). Terabit : Veri iletişim hızı ölçü birimi, 1 trilyon bit. Terabyte : Bilgisayarın depolama alanı ölçü birimi, 2'nin 40. kuvveti, bin adet milyar byte. OLTP (Online transaction processing) : Veri girişi veya bankacılık ve havayolları gibi sektörlerde işlem (transaction) yapmak için kullanılan uygulamaları yöneten bir program türü. Server : Sunucu. 1) Aynı veya farklı bilgisayarlarda bulunan uygulamalara servis sunan bir bilgisayar programı. 2) Sunucu programının çalıştığı bilgisayar. 3) İstemci/sunucu yapıda, istemci PC'lere dosya erişimi, baskı kuyruğu veya uzaktan uygulama çalıştırma gibi servisler sunan bir ağ noktası. HTML (HyperText Markup Language) : Web sayfası yaparken kullanılan ©Veritabanı Internet'in yazım dili. Yönetimi Internet : Dünyadaki bilgisayarların birbirine bağlanmasını sağlayan, bilgisayarlar, router'lar Prof. Dr. İbrahim ve Çilkablo bağlantılarından oluşan global ağ.