https://www.microsoft.com/en-us/download/confirmation.aspx?id=29062 VERİTABANI SİSTEMLERİ Veri Nedir? Veri (Data) ve Bilgi (Information) terimleri sık sık birbirinin yerine kullanılmaktadır. Genel Kavramlar Bilgi ve Veri Bilgi bir alıcı tarafından kazanılan anlam ile ilgilidir. Bu anlamdaki bilgi, hem iletişim kaynağının hem de alıcının bir fonksiyonudur. Veri ile bilgi arasında farklılık olduğu ve verinin bilgi elde etmeye yarayan işlenmemiş ham malzeme olduğu kabul edilir. Kişi; bilmek, öğrenmek istedikten ve veriyi kullanmaya başladıktan sonra bilgi ortaya çıkar. Genel Kavramlar Veri Tabanı • Veri tabanı en genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş veriler topluluğudur. • Veri tabanları gerçekte var olan ve birbirleriyle ilişkisi olan nesneleri ve ilişkileri modeller. Genel Kavramlar Veri Tabanı • Veri tabanı, bir kuruluşun uygulama programlarının kullandığı operasyonel verilerin bütünüdür. Burada “kuruluş”, bir okul, üniversite, banka, bir üretim şirketi, hastane, devlet kuruluşu, vb. olabilir. Genel Kavramlar Operasyonel veri” bir kuruluşun çalışabilmesi, işleyebilmesi için kullanılan çok çeşitli verilerdir ”. Ticari bir şirket için müşteri bilgileri, satış bilgileri, ürün bilgileri, ödeme bilgileri, vb., okul için öğrenci bilgileri, açılan dersler, kimlerin kaydolduğu, öğretmen bilgileri, boş ve dolu derslikler, sınav tarihleri, vb., hastane için hasta bilgileri, doktor bilgileri, yatakların doluluk boşluğu, teşhistedavi bilgileri, mali bilgileri, vb … Genel Kavramlar Veri tabanı yönetim sistemi(VTYS)- Data base management system (DBMS)”, • yeni bir veri tabanı oluşturmak, • veri tabanını düzenlemek, geliştirmek • veri tabanını bakımını yapmak gibi çeşitli karmaşık işlemlerin gerçekleştirildiği birden fazla programdan oluşmuş bir yazılım sistemidir. Veri tabanı yönetim sistemi, kullanıcı ile veri tabanı arasında bir arabirim oluşturmaktadır . Veritabanı yönetim sistemi nedir? • Veri tabanı sisteminin bileşenleri; Veritabanı Uygulaması Kullanıcı Veritabanı Yönetim Sistemi Veritabanı Genel Kavramlar Veri tabanı yönetim sistemi(VTYS) • Veri tabanının tanımlanması: veri tabanını oluşturan verilerin tip ve uzunluklarının belirlenmesidir. • Veri tabanını oluşturulması: veri için yer belirlemesi ve saklama ortamına verilerin yüklenmesini ifade eder. • Veri tabanı üzerinde işlem yapmak; belirli bir veri üzerinde sorgulama yapmak, meydana gelen değişiklikleri yansıtmak için veri tabanının güncellenmesi ve rapor üretilmesi gibi işleri temsil eder. Ayrıca veri tabanı yönetim sistemi, verinin geri çağrılmasını sağlar. Veri tabanına yeni kayıt eklemek, eskileri çağırmak ve gerekli düzeltmeleri yapmak yoluyla, verinin bakımını ve sürekliliğini gerçekleştirir, kayıtlara yeni veri eklemek ve yeni kayıtlar oluşturmakla, veri tabanını genişletir. Veri Tabanı Örnekleri • Üniversite- Öğrenci İşleri Bilgi Sistemi • Hastane-Hasta, doktor, tedavi, araç-gereç, mali bilgiler • Ticari bir şirket- Müsteri, Ürün, Satış, Ödeme, Teslimat bilgileri • Banka-Müşteri, mevduat, kredi kartı, kredi bilgileri 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ı Hiyerarşik Veri Tabanları : Bu veritabanı tipi, ana bilgisayar ortamlarında çalışan yazılımlar tarafından kullanılmaktadır. Bu türde en çok kullanılan yazılım, IBM tarafından çıkarılan IMS' dir. Uzun bir geçmişe sahip olmasına rağmen, PC ortamına uyarlanan hiyerarşik veri tabanları yoktur. Hiyerarşik veri tabanları, bilgileri bir ağaç (tree) yapısında saklar. Kök (Root) olarak bir kayıt ve bu köke bağlı dal (Branch) kayıtlar bu tip veritabanının yapısını oluşturur. Aşağıda böyle bir veri tabanının yapısı gösterilmektedir. Hiyerarşik Veri Tabanları : Olumsuz yanları; –Her varlık tek varlığa bağlı. –Arama kökten dallara. –Kökten veri silinirse dallar silinir. İlk kullanılmış veri modelidir. IBM firması veri tabanı sistemlerinde kullanmıştır. Ağaç yapısına benzer veri yapısı düşünülmüş ve tasarlanmıştır. Hiyerarşik Veri Tabanları : • Genellikle veritabanlarında depolanan hiyerarşik veri örnekleri arasında şunlar yer alır: • Bir organizasyon yapısı • Grafik Web sayfaları arasında bağlantılar Ağ Veri Tabanları : Hiyerarşik veri tabanlarının yetersiz kalmasından dolayı bilim adamlarının ortak çalışması sonucu ortaya konulmuş bir veri tabanı türüdür. Ağ veri tabanları verileri ağaçların daha da gelişmiş hali olan graflar (ağacın kendiside özel bir graftır) şeklinde saklarlar. Bu yapı en karışık yapılardan biridir. • Olumsuz yanları; • Karmaşık Nesneye Yönelik Veri Tabanları : Günümüzde nesne kavramı her yerde kullanılmaktadır. Yazılımın mutlaka nesneye yönelik bir dilde yazılmış olması beklenir. Fakat Windows gibi işletim sistemi üzerinde çalışan yazılımlar bu özelliklere tümüyle sahip değillerdir. Sadece nesne kavramını kullanarak bazı ek özellikler sunarlar. Nesneye yönelik veri tabanı da , C++ gibi nesneye dayalı bir dille (OOPL) yazılmış olan ve yine C++ gibi nesneye dayalı (OOPL) bir dille kullanılan veri tabanı anlamına gelir. Günümüz teknolojisinde yüzde yüz nesneye yönelik bir veri tabanı yaygın olarak kullanıma sunulmuş değildir. İlişkisel veritabanları • 1970’lerin başında geliştirilmiştir. • İlişkisel modeli 1970 yılında İngiliz bilimadamı Codd önermiştir. Bu model, matematikteki ilişki teorisine (“the relational theory”) dayanır. • Bu sistemde veriler tablo şeklinde saklanır. • Tablolar arasındaki bağlantılar matematiksel ilişkilerle gösterilir. • Günümüzdeki hemen hemen tüm veri tabanı programları bu yapıdadır. İlişkisel veritabanları Veri Tabanı Yaklaşımının Avantajları • Ortak verilerin tekrarını önIenmesi; • Verilerin merkezi denetiminin ve tutarlılığının sağlanması • Veri payIaşımının sağlanması • Fiziksel yapı ve erişim yöntemi karmaşıklıklarının, çok katmanlı mimarilerle kullanıcıdan gizlenmesi, • Her kullanıcıya yalnız ilgilendiği verilerin, alışık olduğu kolay, anlaşılır yapılarda sunulması Veri Tabanı Yaklaşımının Avantajları • Sunulan çözümleme, tasarım ve geliştirme araçları ile uygulama yazılımı geliştirmenin kolaylaşması. • Veri bütünlüğünün gerekli olanakların sağlanması (Örnek: Bir tablodan bir öğrenci kaydı silinirse, öğrenci varolduğu diğer tüm tablolardan silinmelidir.) • Güvenlik ve gizliliğin istenilen düzeyde sağlanması • Yedekleme, yeniden başlatma, onarma gibi işletim sorunlarına çözüm getirilmesi, • Veriler tek bir merkezde tutulur ve aynı veri her kullanılan değişik bilgisayarlarda tekrar tekrar tutulmaz. 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 meslegi char 50 1 indeksler Aynı zamanda veritabanlarında veritabanının performansını artırmak için kullanılan indeksler vardır. Indeksler hangi kayıtların hangi tablolarda bulunduğunu gösteren kitapların başındakine benzer bir mantığı olan araçlardır. Saklı yordamlar 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. Saklı yordamlar 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. Saklı yordamlar • Bir stored procedure ilk çalıştırıldığı zaman derlenir. Bir daha çalıştırılınca derlenmeden çalışırlar. • Stored Procedure'ler database server'ında saklanmasından dolayı daha hızlı çalışırlar • Bir kez yazıp tekrar ve tekrar kullandığımız için modüler bir yapıda program geliştirilmesi sağlanır. • Stored Procedure'lerin diğer bir özelliği ise programlama deyimleri içermesidir. if, next, set vs.. • Stored Procedure'ler sadece giriş ve çıkış parametreleri uygulama katmanında göründüğü için daha güvenilirdir. Transaction logging, veri dosyasına karşı yapılan işlemlerin kayıtlarının tutulduğu kayıt dosyası. Trigger yani tetikleyici, ilişkisel veri tabanı yönetim sistemlerinde bir tabloda belirli olaylar meydana geldiği zaman yani ekleme, güncelleme, silme işlemlerinden biri gerçekleşmeden önce veya sonra çalışan ve belirli işlemleri kodlandığı şekilde yerine getiren yordamdır. tetikleyici 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. – Tahakkuk ve tahsilatlar sonucu carî hesapların etkilenmesi işlemlerinin tetikleyiciler aracılığı ile yapılmaları, tipik bir tetikleyici 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ı Çeşitleri 1 2 3 4 5 Microsoft Access MySQL IBM DB2 Interbase Informix 6 7 8 9 Progress Microsoft SQL Server PostgreSQL Oracle MS Access • • • • • Microsoft Office ürünüdür. Küçük ölçekli uygulamalar içindir. Tablo başına 2 GB a kadar veri depolayabilir. Aynı anda 255 bağlantıya izin verebilir. MS Windows dışındaki sistemlerde kullanılamaz. MS Access • “Transaction logging” özelliğine sahiptir, ancak “trigger” ve “stored procedure” özelliklerine sahip değildir. MySQL • MySQL Inc. • Windows, Linux vb. • “trigger” ve “stored procedure” özelliklerine sahiptir, ancak “Transaction logging” özelliği bulunmamaktadır. • Tablo başına 4 TB veri depolayabilir. IBM DB2 • IBM • Access ve MySQL e göre daha performanslı, ancak küçük işletmelere göre daha yüksek maliyete sahiptir. • Windows üzerinde çalışabilir. • Transaction logging”, “trigger” ve “stored procedure” özelliklerine sahiptir. Informix • Ücretli ve güçlü bir veritabanıdır. • Orta ölçekli işletmelerin yükünü kaldırabilecek kapasitededir. MS SQL Server • Microsoft • Dezavantajları: – Sadece Windows üzerinde çalışabilir. – Yüksek maliyet • Kullanım kolaylığı, güvenilirliği,işlem gücü • Tablo başına 4 TB veri. • “Transaction logging”, “trigger” ve “stored procedure” özelliklerine sahiptir. PostgreSQL • • • • • • • PostgreSQL Global Development Group Linux, Unix, BSD, Windows, AIX vb. Ücretsiz, akademik bir veritabanı Çok güçlü işlem yapısı Veri güvenliği ön planda Tablo başına 64 TB veri tutabilme özelliği “Transaction”, “Inheritance” “trigger” ve “stored procedure” özelliklerine sahiptir. Oracle • Oracle, Inc. • Dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir. • Çok yüksek maliyet • Windows, Unix, Linux, ... • Oracle, sınırsız sayıda tabloları desteklemektedir. Hangi veritabanını seçmeli? • Küçük yoğunlukta trafik: Access • Web uygulamaları için: MySQL • Daha büyük ve orta ölçekli uygulamalar içinse, Progress, MS SQL ya da Linux üzerinde PostgreSQL . • Oracle ise çok yüksek güvenilirlik ve işlem gücü gerektirdiğinde tercih edilen bir veritabanı sunucusudur. Kaynaklar • http://pozitron.sdu.edu.tr/dersnotlari/veri%20taban%C4%B1%20sis temleri%201/bol1.pdf • http://sibelsomyurek.com/veritabani/ders_notlari.html • http://www.ibrahimbayraktar.net/2014/10/stored-procedurenedir.html • https://tr.wikipedia.org/wiki/Trigger • http://www.yazgelistir.com/makale/kayit-dosyalari-transactionlogs-ve-boyut-sorunu • http://web.firat.edu.tr/mbaykara/vtys.pdf • Zehra Alakoç Burma, http://celalettinuyanik.com/wpcontent/uploads/2012/05/Veri-Taban%C4%B1-Y%C3%B6netimSistemleri-15.pdf • http://www.slideshare.net/uyar/veritaban-ynetim-sistemlerinesneye-dayal-veritabanlar