Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

İlişkisel Veritabanı Sistemleri ve NoSQL

7,912 views

Published on

TC Sakarya Üniversitesi Fen Bilimleri Enstitüsü Yönetim Bilişim Sistemleri Yüksek Lisans programında yapmış olduğum çalışma.

Published in: Technology
  • You might get some help from ⇒ www.HelpWriting.net ⇐ Success and best regards!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

İlişkisel Veritabanı Sistemleri ve NoSQL

  1. 1. T.C. SAKARYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ HİYERARŞİK, İLİŞKİSEL VE NoSQL VERİTABANLARI YÖNETİM BİLİŞİM SİSTEMLERİ DERSİ (ENF503) 2013-2014 GÜZ DÖNEMİ ÖDEVİ Murat AZİMLİ (1250E43037) Enstitü Anabilim Dalı : BİLİŞİM SİSTEMLERİ Enstitü Bilim Dalı : BİLİŞİM SİSTEMLERİ Öğretim Görevlisi : Prof. Dr. Orhan TORKUL Aralık 2013
  2. 2. i İÇİNDEKİLER 1. GİRİŞ……………………………………………………………………....................1 2. VERİTABANI NEDİR ?.............................................................................................2 3. VERİTABANI MODELLEMESİ NEDİR ?................................................................3 4. VERİTABANI TÜRLERİ……………….…………………………………...............5 4.1 Hiyerarşik Veritabanları ………..………………………………………………5 4.2 İlişkisel Veritabanları…..………………………………………………………..6 4.2.1 İlişkisel Veritabanı Nesneleri....................................................................6 4.2.2 İlişkisel Veritabanlarında Sorgulama........................................................7 4.2.3 İlişkisel Veritabanlarında ACID Özellikleri…………………………….8 4.3 NoSQL Veritabanları ………………………………………………………….10 5. SONUÇ……………………………………………………………………………..12 6. KAYNAKLAR…………………………………………...…………………………13
  3. 3. 1 1.GİRİŞ Son yıllarda, bilişim ve iletişim araçları teknolojisinde çok büyük gelişmeler yaşanmıştır. Bilişim ve iletişim araçlarındaki üretim maliyetlerinin düşmesiyle, insanların ve kurumların son teknolojiye ulaşması kolaylaşmıştır. Bu sayede, milyarlarca byte tutan veriler elektronik ortamlarda depolanabilmiş, insanlar ve kurumlar arasındaki her türlü işlem (hareket) kayıt altına alınabilmiştir. Buna paralel olarak, iletişim teknolojilerinde ise adeta kablosuz (mobil) bir döneme girilmiş, insanlar ve kurumlar için zamanın ve mekanın önemi giderek azalmıştır. Bu sayede dünyada uzak mesafeler yakınlaşmış, daha önce ulaşılamayan yerlere ulaşılabilmiştir. Tüm bu gelişmeler, insanlar ve kurumlar arasında rekabeti de beraberinde getirmiştir. Örneğin; 15-20 sene öncesine kadar ülkemizde faaliyet gösteren 3-5 tane otomobil markası varken, bugün 100 ü aşkın marka ülkemizde faaliyet göstermektedir. Küçülen dünyada ve artan rekabet koşulları altında kurumların yaşamaları ve gelecekte de var olmaları da alacakları kararların doğruluğuna bağlıdır. Günümüzde, kurumların aldıkları yanlış kararların geri dönüşü hemen hemen kalmamıştır. Bir çok kurum, aldıkları yanlış kararlar neticesinde faaliyetlerini durdurmak zorunda kalmıştır. Bunun tam aksine, bir çok kurum da aldıkları doğru kararlar sonucunda büyümüş, geleceklerini garanti altına almışlardır. Doğru karar vermenin önemini anlayan kurumlar, yaptıkları tüm işlemleri, daha sonra kullanılmak üzere elektronik ortamlarda (veritabanlarında) saklamaya başlamışlardır. İlk başlarda amaç, verilere istendiği anda ulaşabilmek, verileri listeleyip raporlamaktı. Bu yapıldıktan sonra, depolanan verilerden analiz yaparak çeşitli sonuçlara ulaşmak sonraki amaç oldu. Çünkü, son yıllarda kurumlar arası rekabet çok artmış buda alınan karar sayısındaki artışı beraberinde getirmiştir. Alınan kararların hızlı ve doğru bir şekilde alınması gerekmiştir. Karar almayı etkileyen faktörler ve parametreler de geçmişle kıyaslanamayacak ölçüde artmış ve karmaşıklaşmıştır. İş dünyasının giderek karmaşıklaşan veri depolama ve analiz ihtiyaçlarına çözüm bulmak için çeşitli veritabanı teknolojileri geliştirilmiştir.
  4. 4. 2 2.VERİTABANI NEDİR ? Veritabanı, kurumlarda gerçek zamanlı operasyonel verilerin girildiği ve saklandığı elektronik (bilgisayar) ortamlardır. Örneğin; bir işletmede satış faturası kesilmesi, satış faturası sonucunda ilgili muhasebe hesaplarının çalıştırılması, yine fatura karşılığnda ürün satınalınması, satınalma faturası sonucunda ilgili muhasebe hesaplarının çalıştırılması, depoya ürün girişi ve stokların arttırılması gibi işlemler birer operasyonel veridir. Sürekli olarak tekrarlanmakta ve kayıt altına alınarak saklanması gerekmektedir. Önceleri, kurumlarda veri saklama ortamı olarak çeşitli defterler, kartonlar (kartoteks) kullanıldı. Kurumda yapılan her türlü işlem, ilgili defterlere ve kartonlara işlenerek dosyalandı. Fihristler ve indexler oluşturularak çeşitli arama bulma yöntemleri geliştirildi. Ancak bütün bunlar insan eliyle yapılmakta olduğundan, kayıt, arama, bulma, sorgulama işlemleri çok zaman alıyordu. Kurumlardaki en kalabalık departmanlarını bu tür kayıtların yapıldığı departmanlar oluşturuyordu. Bunlara örnek olarak, kamu kurumlarında evrak kayıt birimleri ve özel kurumlarda da muhasebe departmanları gösterilebilir. Bilişim teknolojilerindeki gelişmelere paralel olarak, kurumlardaki gerçek zamanlı operasyonel veriler elektronik ortamlara (bilgisayar) kayıt edilerek saklanmaya başlandı. Bilişim teknolojilerindeki yeni ürünlerin fiyatları ucuzladı ve bir çok kurum tarafından ulaşılabilir hale geldi. Bunların sonucunda, hemen hemen tüm kurumlar operasyonel verilerini elektronik ortamda (bilgisayar) kayıt altına alıp saklamaya başladı.
  5. 5. 3 3. VERİTABANI MODELLEMESİ NEDİR ? Veritabanı modellemesi, herhangi bir veritabanına kayıt edilecek verilerin, veriler arasındaki ilişkilerin, verilere nasıl erişileceğinin tasarlanmasıdır. Veritabanlarına, gerçek dünyada üretilen, çeşitli nesnelere ve olaylara ait olan veriler kayıt edilir. Teknolojik kısıtlamalardan dolayı, gerçek dünyada üretilen tüm verilerin bir veritabanına kayıt edilmesi mümkün değildir. Kayıt edilebilse bile, bu verilerin büyük çoğunluğu bir işe yaramayacaktır. Bu yüzden, veritabanlarına işe yarayacak, ulaşılmak istenen sonuca götürebilecek veriler kayıt edilmelidir. Örneğin, bir işletmeye ait veritabanında, müşterilerinin babalarının isimlerini veya arabalarının markalarının yer almasının bir anlamı mı ? Bu veriler işletmenin işine yarayacak mı ? Yada, müşterilerin hangi bilgileri veritabanında yer almalı ? Soruları sorulmaya başlandığında, bir veritabanın yapısının tasarlanmaya başlanarak modelleme yapıldığını anlayabiliriz. Kullanılacak veritabanı ne olursa olsun, öncelikle veritabanında hangi verilerin tutulacağı belirlenmelidir. Bu tasarımı yapmak için en yaygın kullanılan yöntem, varlıkilişki diyagramlarıdır. Bu diyagramlarda, varlıklar ve özellikleri ile varlıklar arasındaki ilişki açıkca gösterilir. Varlıklar arasındaki ilişki de, tıpkı varlıklar gibi çeşitli özelliklere sahiptir. Örneğin, bir üniversite veritabanını düşündüğümüzde, bir öğrencinin birden fazla bölümünün olup olamayacağı, birden fazla ders alıp alamayacağı gibi. Bu tür verilere “yapısal” veriler denir. Yapısal veriler içeren veritabanlarında, varlıklar ve özellikleri, varlıklar arasındaki ilişkiler ve özellikleri (tablo ve alanlar) önceden belirlenmiş ve tanımlanmıştır. Bunların dışında bir veri veritabanına girilemez ve saklanamaz. İnsanların ve kurumların yapısal verileri elektronik ortamlarda saklama ve gerektiğinde bu verilere ulaşma ihtiyacı 20.yüzyılda ortaya çıkmıştır. Bu süre içerisinde, bir çok çalışma yapılmış, yapılan çalışmalar bir araya getirilmiş, herkesin kabul ettiği bir endüstri standardı haline dönüşmüştür. Bundan dolayı, yapısal verileri içeren ilişkisel veritabanlarının nasıl olacağı, veritabanı modellemesinin nasıl yapılacağı bir çok kişi tarafından bilinmekte ve uygulanmaktadır.
  6. 6. 4 Son yıllarda, yaygınlaşan bilgisayar ve internet teknolojileri sayesinde, gerçek dünyada üretilen veriler, direkt olarak elektronik ortamlarda bilgisayarlar üzerinde üretilmeye başlandı. Örneğin, internet üzerinden alışveriş yapılması, bankacılık ve finans işlemleri, çeşitli bilgi ve belgelerin paylaşımı gibi. Bunun sonucunda, içereceği verilerin (yapısının) önceden tahmin edilemeyeceği (yapısal olmayan) bir veritabanı türü doğdu. Buda, “internet veritabanı” dır. Günümüzde, “internet veritabanı” na dünya çapında sayısız kullanıcı tarafından veri girişi yapılmakta, sayısız kullanıcı tarafından da girilen bu verilere ulaşılmaya çalışılmaktadır. Bundan dolayı, bilişim dünyası 3 soruyla karşılaşmıştır:  Bu kadar büyük boyutlardaki ve yapısal olmayan veri nerede ve nasıl depolanacak ?  Sonradan arandığında bu verilere nasıl ulaşılacak ?  Bu verilerle nasıl analiz yapılacak ve ne gibi sonuçlara ulaşılacak ? Bu soruların cevaplarını tam olarak veren, herkes tarafından kabul görmüş ve endüstri standardı haline gelmiş teknoloji çözümü henüz oluşmamıştır. Bu konudaki çalışmalar, farklı kişiler ve kurumlar tarafından kendi ihtiyaçlarına çözüm bulabilmek için yürütülmektedir. Bu konuda önemli bir mesafe alınmıştır. En azından, birbirlerinden farklı mantıkta olsalar bile temelde aynı işi yapan algoritmalar geliştirilmiştir. Bu algoritmaları kullanarak, yapısal olmayan verileri depolayabilen ve gerektiğinde bu veriler üzerinde sorgulama yapabilmeyi sağlayan veritabanı sistemleri yaygınlaşmaya başlamıştır.
  7. 7. 5 4. VERİTABANI TÜRLERİ 4.1 Hiyerarşik Veritabanları Hiyerarşik veritabanları, yapısal veriyi depolamak ve işlemek için geliştirilmiş olan ilk veritabanı modelidir. Bu veritabanı modelinde, kök düğüm (root node) haricinde kalan tüm düğümler, bir üst düğüme bağlanmak zorundadır. Verilerin tablolara yazılma mantığı ile, daha sonra verilere erişim mantığı aynıdır. Bu mantık, ikili arama (binary search) metoduna dayanır. Verilerin tabloda yerleşeği düğüm (kayıt) ikili arama metoduna göre bulunur ve yine aynı metodla erişim sağlanır. Şekil 4.1: İkili (binary) veri yapısı Hiyerarşik veritabanları, dünya genelinde yaygın bir kullanıma kavuşamamıştır. İlk kez, 1968 yılında IBM firması tarafından ticari olarak geliştirilmiş olup sadece ana bilgisayarlarda (mainframe) kullanılmıştır. Çünkü, o yıllarda kişisel bilgisayarlar (pcpersonel computer) henüz yaygınlaşmamıştı. Ana bilgisayarlarda bulunan işlemciler, günümüzde kullanılan kişisel bilgisayarların işlemcilerine göre çok yavaştı. Bir verinin tabloya yerleşebilmesi için bir çok düğümün ötelenmesi (yer değiştirmesi) gerekiyordu. Ayrıca bir veriye ulaşabilmek için bir çok düğümden geçilmesi gerekiyordu. Hiyerarşik veritabanları, gerçek dünyada oluşan verileri tam olarak yansıtamıyordu. Çünkü, gerçek dünyada üretilen verilerde bir ast-üst ilişkisi yoktu. Sadece aralarında bir ilişki bulunuyordu. Bundan dolayı, ilişkisel veritabanları günlük hayatta yaygın olarak kullanılmadı ve bir endüstri standardı haline gelemedi. O dönem yapılan çalışmalar, kazanılan tecrübe ve deneyimler sonucunda „“ilişkisel veritabanı“ modellerine geçiş yapıldı. Bugün bile, bir çok ilişkisel veritabanı o dönem geliştirilen ikili arama (binary search) kullanmaktadır.
  8. 8. 6 4.2 İlişkisel Veritabanları Günümüzde bilgisayar ortamlarında tutulan ilişkisel veritabanlarının mantığı, geçmişte kayıt işlemlerinin defter ve kartonlara yapılıp dosyalanmasına dayanır. Veritabanı içerisindeki bilgilere erişim mantığı hemen hemen aynıdır. Ancak, bilgisayar ortamında yapılan kayıt ve bilgiye sonradan erişim (sorgulama) işlemleri geçmişle karşılaştıralamayacak kadar kolay ve hızlı yapılmaktadır. Kolaylık ve hız kadar diğer önemli bir kavram da doğruluk ve tutarlılıktır. İlişkisel veritabanı sistemlerinin günümüzde yaygın olarak kullanılmasının temel sebepleri de bunlardır. Kurumlarda gerçek zamanlı operasyonel verilerin tutulduğu veritabanlarına OLTP (OnLine Transaction Processing) veritabanları denir. Bu tür veri tabanlarına, aynı anda bir çok kullanıcı kayıt girebilir. Girilen kayıtlar üzerinde çok miktarda silme, güncelleme, sorgulama gibi temel veritabanı işlemleri yapılabilir. 4.2.1 İlişkisel Veritabanı Nesneleri İlişkisel veritabanları içerisinde bir çok mantıksal nesne bulunur. Bunların temeli ve en önemlileri ise Tablo (Table) ve Indeks (Index) lerdir. Veritabanına girilen veriler tablolarda tutulur. Her bir tablo farklı yapılardaki veri gruplarına aittir. Örneğin, müşteri verileri bir tabloda tutulurken, ürün verileri ayrı bir tabloda tutulur. Çünkü, müşteri varlığı ile ürün varlığı’nın nitelikleri (attribute) farklıdır. Bu verilerin arasındaki ilişkilerin kurulduğu başka bir tablo daha olabilir. Örneğin, fatura tablosu. Fatura tablosu içerisinde, hem müşteri verileri hemde ürün verileri bulunabilir. Bunlara genel olarak “hareket tabloları” denir ve varlıklar arasında ilişki kurulmasını sağlarlar. Tablolarda tutulan verilere daha hızlı erişim ve sorgulama yapılabilmesi için kullanılan nesneler ise indeks’lerdir. Bir veritabanında çok sayıda tablo olabileceği gibi, bir tabloda da farklı niteliklere göre hazırlanmış çok sayıda indeks olabilir. Her veritabanın içerisinde, kendi içinde oluşturulmuş olan nesneleri tutan sistem tabloları ve şemaları bulunmaktadır. Bunlara META-DATA denilmektedir.
  9. 9. 7 MUSTERI_NO MUSTERI_UNVAN VERGI_DAIRE VERGI_NO 0001 DENEME A.Ş. BORNOVA 123456789 0002 ÖRNEK LTD.ŞTİ. KARŞIYAKA 654321678 0004 BATI METAL SANAYİ A.Ş KONAK 234559456 0005 DOĞU ÜRETİM SAN.A.Ş BORNOVA 001234345 Şekil 4.2: Örnek bir tablo ve içerdiği veriler Tablo ve indeksler dışında, günümüz ilişkisel veritabanlarında bir çok nesne bulunmaktadır. Bunların başlıcaları; Görüntüler (View), Saklanmış Yordamlar (Stored Procedure & Functions), Tetikleyiciler (Triggers), Kısıtlamalar (Constraints) dır. Bunların amacı, veritabanına girilen veriler arasında tutarlılığı sağlamaktadır. Örneğin, müşteri tablosunda olmayan bir müşteriye ait fatura kesilmek istendiğinde veritabanı bunun hatalı bir veri girişi olduğunu anlayabilir. Günümüzde ilişkisel veritabanı sistemleri çok gelişmiştir. Tablolarda milyonlarca byte büyüklüğünde verileri tutabilir, bu veriler üzerinde çok kısa sürelerde arama bulma işlemleri gerçekleştirebilir. Ayrıca her ilişkisel veritabanı sistemi kendi VTYS (Veritabanı Yönetim Sistemi) sistemine sahiptir. Veritabanı üzerindeki tüm yönetim işlemleri bu VTYS ler kullanılarak yapılır. Bunlar; a. Veritabanına yeni bir tablo, alan veya indeks eklenmesi. b. Veritabanına yeni bir görüntü, prosedür, fonksiyon eklenmesi. c. Veritabanı yedeklemesinin yapılması. d. Veritabanı performansının izlenerek yönetilmesi. e. Veritabanı güvenliğinin sağlanarak yetkisiz kişilerin erişiminin engellenmesi. 4.2.2 İlişkisel Veritabanlarında Sorgulama İlişkisel OLTP veritabanlarında gerçek zamanlı operasyonel veriler tutulmaktadır. Değişik zamanlarda, bu veritabanları içerisinde yer alan veriler sorgulanarak, verilerden anlamlı bilgiler çıkarılmaya çalışılmaktadır. 1990 lı yılların ortalarına kadar, veriden anlamlı bilgi çıkarma işlemlerinin tamamına yakını veritabanı sorgulaması ile elde edilmiştir. Veritabanından, sorgulama ile elde edilen veriler çeşitli tablolama yazılımlarına aktarılmış ve ihtiyaç duyulan analizler o yazılımlar üzerinde yapılmıştır.
  10. 10. 8 İlişkisel OLTP veritabanlarından sorgulama yapabilmek ve istenen kriterlere ait veri setlerini elde edebilmek için SQL (Structured Query Language) Yapısal Sorgulama Dili kullanılmaktadır. Tüm ilişkisel OLTP veritabanlarında kullanılan standart bir sorgulama komut kütüphanesi ANSI (American National Standarts Instutite) tarafından geliştirilmiştir. (ANSI SQL) Günümüzde bir çok veritabanı sistemi üreticisi ANSI SQL komut setlerine ilave olarak, veritabanı üreticileri kendi veritabanı sistemlerine özgü ek komutlar içeren SQL komut setleri üretmişlerdir. Örnek olarak; PL/SQL ve T-SQL en yaygın olarak kullanılan SQL komut setleridir. İlişkisel veritabanlarında tablolarda tutulan veriler satır ve sütunlar olmak üzere 2 boyutludur. Bundan dolayı SQL sorgulama dili ile yapılacak sorgulama da elde edilecek bilgi 2 boyutu geçemez. Sadece, istenen tablolardaki, istenen sütunlardaki verileri belirli şartlara göre elde edilebilir. Ancak günümüzdeki çok boyutlu karmaşık prosesler ve karar alma süreçleri karşısında bu yöntem yetersiz kalmıştır. Analiz süreçlerinde sadece belirli bir aşamaya kadar ihtiyaçları karşılamıştır. Şekil-1 deki tablodan, vergi dairesi BORNOVA olan müşterileri elde eden basit bir sorgulama cümlesi aşağıdaki gibidir: (Tablo adı TBL_MUSTERI dir) SELECT MUSTERI_NO,MUSTERI_UNVAN,VERGI_DAIRE,VERGI_NO FROM TBL_MUSTERI WHERE VERGI_DAIRE = ‘BORNOVA’ 4.2.3 İlişkisel Veritabanlarında ACID Özellikleri 1980’li yılların başlarında, ilişkisel veritabanlarında olması gereken özellikler belirlenerek asgari standartlar oluşturulmuştur. ACID kelimesi, bu özellikleri tanımlayan ingilizce kelimelerin baş harflerinden oluşan bir kısaltmadır. Bu özellikler: Atomicity (Atomiklik), Consistency (Tutarlılık), Isolation (İzolasyon), Durability (Sağlamlık)
  11. 11. 9 Atomiklik kavramı veri giriş işlemleri (transaction) ile ilgilidir. İlişkisel veritabanlarına veri giriş bütünsellik gerektirir. Bazen, bir tabloya bir kayıt girilebileceği gibi, bir çok tabloya bir çok kayıt girilmesi gerekebilir. Bu durumda, bir işlem (transaction) birden fazla tabloyu ve birden fazla kaydı kapsayabilir. İşlem sırasında, verilerden herhangi birinin kayıt edilmesi sırasında hata oluşursa, diğer verilerinde hiç birisi kayıt edilmez. O ana kadar girilen kayıtlar geri sarılırak, hiç girilmemiş gibi olur. (rollback) Bu durum, bütün verilerin veritabanına sorunsuz bir şekilde kayıt edilmesini garanti altına alır. (commit) Bu duruma örnek olarak, veri bütünlüğünün çok önemli olduğu bankaları ve ticari işletmeleri gösterebiliriz. Bir işletmenin müşterisine bir satış faturası kaydı girdiğini varsayalım. Satış faturası, birden fazla tablodan oluşmaktadır. Bir satış faturasının kayıt edilmesiyle, işletme stokları ve muhasebe hesapları etkilenmektedir. Fatura bilgilerini veritabanına kayıt ettikten sonra, herhangi bir sebepten dolayı muhasebe hesaplarına ilgili veriler kayıt edilemeyebilir. Böyle bir durumda, fatura kayıtları ile muhasebe kayıtları arasında bir tutarsızlık oluşacaktır. Bundan dolayı, veritabanına faturanın kayıt işlemi, muhasebe hesaplarına yapılan kayıtları da içermelidir. Tüm kayıtlara, “ya hep yada hiç” yaklaşımı ile bakılarak tek bir kayıtmış gibi düşünülmelidir. Tutarlılık kavramı, verilerin önceden belirlenen (tanımlanan) kurallara uygun şekilde veritabanına girişini garanti eder. Önceki bölümde açıklanan, kısıtlamalar (constraint) yabancı anahtarlar (foreign keys) ve tetikleyiciler (triggers) kavramları “tutarlılık” amacına hizmet ederler. Bir veritabanıda yer alan herhangi bir tablodaki bir alanın (field) boş değer içermemesi istenebilir. Yine herhangi bir alana sadece belirlenen değerlerden birisinin girilmesi veya girilen değerin belirli bir aralıkta olması istenebilir. Örneğin, “maaş” verisinin girileceği alana negatif değerde veri girilmesi veya “telefon numarası” verisinin girileceği alana harf içeren veri girilmesinin engellenmesi gerekmektedir. İzolasyon kavramı ise, aynı anda birden fazla kullanıcını veri giriş işlemlerinin (transaction) birbirlerine karışmaması, birbirlerini etkilememesidir. Yani, tam anlamıyla işlemlerin (transactions) birbirlerinden izole edilmesidir. Sağlamlık, veritabanına girilen verilerin, istenmeden değişmemesi ve silinmemesidir.
  12. 12. 10 4.3 NoSQL Veritabanları NoSQL, geleneksel ilişkisel veritabanı sistemlerinin kurallarını uygulamayan ve veritabanı işlemleri için klasik SQL sorgularına ihtiyaç duymayan veritabanı sistemlerine verilen isimdir. Son yıllarda, bilgisayarın ve internetin insan yaşamına daha fazla girmeye başlamasıyla, internet ortamında yapısı olmayan ve dağınık şekilde bulunan devasa boyutlarda veriler oluşmaya başlamıştır. Bu verileri depolamak ve işlemek için, geleneksel ilişkisel veritabanı yöntemleri yetersiz kalmıştır. Çünkü, geleneksel ilişkisel veritabanı sistemleri ancak yapısal ve ilişkili verileri merkezi bir şekilde depolamak ve işlemek için geliştirilmişlerdir. Bu sorunu aşmak için, ana faaliyet konusu internet üzerinde olan firmalar çalışmalara başlamıştır. Bu çalışmaların öncüleri, Google, Facebook, Twitter, Linkedin, eBay, Amazon gibi firmalardır. Günümüzde, yaklaşık 150 kadar NoSQL türünde veritabanı sistemi bulunmaktadır. NoSQL veritabanı sistemleri, henüz bir endüstri standardı haline gelmemiştir. Çünkü, bir NoSQL veritabanı sisteminde olması gereken asgari özellikler, uluslararası düzeyde ortaya konulmamış ve herkes tarafından kabul edilmemiştir. Bundan dolayı, birbirlerinden farklı konulara odaklanmış, farklı algoritmalarla ve mantıklarla çalışan, farklı özellikler barındıran bir çok NoSQL türünde veritabanı sistemi bulunmaktadır. NoSQL veritabanı sistemleri de, kendi içlerinde 4 farklı kategoriye ayrılmaktadır:     Column Stores: (Örnekler: HBase, Accumulo) Document Stores: (Örnekler: MarkLogic, MongoDB, Couchbase Key-value Stores: (Örnekler: Dynamo, Riak, Redis, Cache, Project Voldemort) Graph Database: (Örnekler: Neo4J, Allegro, Virtuoso) NoSQL veritabanı sistemleri, çoğunlukla internet ortamında üretilen ve depolanan verilere odaklanmıştır. Bu verilerin en önemli özellikleri ise; Yapısal olmamaları, dağıtık halde ve devasa boyutlarda olmalarıdır. Bundan dolayı NoSQL veritabanı sistemleri, performans, ölçeklenebilirlik ve yüksek kullanılabilirlik konularına odaklanmışlardır.
  13. 13. 11 Bundan dolayı, geleneksel ilişkisel veritabanı sistemlerinde olan kavramlardan ve özelliklerden bir çoğu NoSQL veritabanı sistemlerinde bulunmamaktadır. Bunların en önemlileri, ACID (Atomicity, Consistency, Isolation, Durability) özellikleri ve SQL veri sorgulama komutlarıdır. Geleneksel ilişkisel veritabanı sistemlerinin bu kadar yaygınlaşması ve bir endüstri haline gelmesi bu özellikler sayesinde olmuştur. Ayrıca, geleneksel ilişkisel veritabanı sistemleri tarafında da önemli gelişmeler yaşanmıştır. Özellikle, çok boyutlu sorguları ve tabloları (küpler) barındıran OLAP (On-Line Analytical Processing) teknolojileri çok önemlidir. Bu teknoloji ile, çok büyük veriler üzerinde çeşitli simülasyonlar ve analitik analizler yapılarak iş dünyasına yeni fırsatlar sunulmuştur. NoSQL veritabanı sistemleri ne zaman kullanılmalıdır ? Başta belirttiğimiz gibi, çok büyük hacimli, yapısal özellik göstermeyen, veriler arasındaki ilişkinin ve bütünlüğün çok önemli olmadığı iş ihtiyaçlarını uygun maliyetlerle karşılamak için kullanılabilir. Bu tanıma günümüzde en çok uyan uygulamalar internet uygulamalarıdır. Özellikle, bir internet sitesi aracılığıyla elde edilen, kritik önem derecesine sahip olmayan verilerin depolanmasında ve erişilmesinde kullanılabilir. Mali değeri olan veya kaybedilmesinde önemli mali zararlara yol açabilecek verilerin üretildiği bankacılık, sigortacılık, ithalat, ihracat, üretim vb iş süreçlerinde kullanılması şu anda uygun görünmüyor.
  14. 14. 12 5. SONUÇ Hiyerarşik veritabanı sistemleri geçmişte kalan veritabanı sistemleridir. Yeni veritabanı sistemlerine temel teşkil ederek görevini tamamlamış, yerini ilişkisel veritabanı sistemlerine bırakmıştır. İlişkisel veritabanı sistemleri ise, endüstri standardı haline gelmiş olan günümüz veritabanı sistemleridir. Bugün bile, iş dünyasıda için kritik öneme sahip yapısal verilerin büyük bir kısmı ilişkisel veritabanı sistemlerinde depolanmaktadır. İlişkisel veritabanı sistemleri, veri tutarlılığı, güvenlik, sağlamlık ve sorgulama konularında önemli gelişmeler yaşamıştır. Yapısal veriler üzerinde, çok gelişmiş sorgulamalar ve analizler yapılabilmektedir. NoSQL veritabanı sistemlerine ise, uzak geleceğin veritabanı sistemlerinin ilk adımları diyebiliriz. Çünkü, henüz asgari sağlanması gereken özellikler tanımlanmamıştır. Bu yapılmadan da bir endüstri standardı haline gelmesi, herkes tarafından yaygın şekilde kullanılması mümkün değildir. Özellikle, kritik öneme sahip verileri depolayan kurumların yakın gelecekte dahi kullanmaları mümkün görünmüyor. Aslında, NoSQL veritabanı sistemleri, günümüz ilişkisel veritabanı sistemlerine bir alternatif olma hedefiyle ortaya çıkmamıştır. Sadece, ilişkisel veritabanlarının zayıf kaldığı, internet ortamında bulunan düzensiz ve dağıtık verilerin depolanması ve işlenmesinde bir çözüm üretmişlerdir. Global veritabanı pazarı incelendiğinde, ilişkisel veritabanı sistemlerinde önde gelen firmaların da, düzensiz ve dağıtık verilelerle başa çıkabilen çözümler üretmeye başladığı görülmektedir. Örnek: Oracle NoSQL, SQL Server AZURE vs. Mevcut ilişkisel veritabanı sistemleri büyük hacimli, dağıtık ve düzensiz verileri depolama ve işleme konusunda daha fazla özellikler barındırmalı, yeni gelişen NoSQL veritabanı sistemleri de, veri tutarlılığı ve güvenliği adına daha fazla özellik içermelidir. Bu şekilde, her iki veritabanı sistemi birbirlerinin eksikliklerini tamamlayarak, uzak geleceğin yeni nesil veritabanı sistemlerini oluşturacaklardır.
  15. 15. 13 6. KAYNAKLAR [1] VAISH, G., Getting Started with NoSQL, Pact Publishing, Birmingham-UK, 2013 [2] MCCREARY, D., KELLY, A., Making Sense of NoSQL, Manning Publications Co., Shelter Island-NY, 2013 [3] TIWARI, S., Professional NoSQL, John Wiley & Sons, Inc., Indianapolis, 2011 [4] DOĞAN, B., Veritabanı Ders Notları, Marmara Üniversitesi [5] Why NoSQL ?, Retrieved from http://www.couchbase.com [6] İLTER, H., NoSQL, Retrieved from http://devveri.com/nosql-nedir [7] TAYLAN, E., NoSQL Nedir ?, Retrieved from http://www.ermantaylan.com/blog/2011/07/nosql-nedir-ne-zaman-kullanilmalinasil-calisiyor/ [8] Introduction to MongoDB, Retrieved from http://docs.mongodb.org/manual/core/introduction/ [9] Oracle NoSQL Database, Retrieved from http://www.oracle.com/technetwork/products/nosqldb/overview/index.html?ssS ourceSiteId=ocomen [10] Understanding NoSQL, Retrieved from http://spring.io/understanding/NoSQL [11] ACID, Retrieved from http://en.wikipedia.org/wiki/ACID

×