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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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