M2m Sistemlerde Sql Veya Nosql Kullanimi. Using Sql Or Nosql In M2m Systems

Benzer belgeler
NoSql ve MongoDB. Saygın Topatan

VERİ TABANI YÖNETİM SİSTEMLERİ

Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi.

VERİ TABANI YÖNETİM SİSTEMLERİ

Mobil Cihazlarda Gömülü Veritabanlarının Karşılaştırılması: SqLite ve CouchBase Lite

UZAKTAN EĞİTİM MERKEZİ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan Yard.Doç.Dr.Tuncay Ercan

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

Doç. Dr. Cüneyt BAYILMIŞ

VERİ TABANI UYGULAMALARI

Veritabanı. Ders 2 VERİTABANI

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Powered by

Veritabanı Uygulamaları Tasarımı

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veritabanı Sistemleri

Uygulamaları ulut bilişime geçirmeden önce, firmanızın/şirketinizin ya da. işinizin gereksinimlerini göz önüne almanız gerekir. Aşağıda bulut bilişime

Veritabanı, Veri Madenciliği, Veri Ambarı, Veri Pazarı

Kurumsal bilgiye hızlı ve kolay erişim Bütünleşik Belge Yönetimi ve İş Akış Sistemi içinde belgeler, Türkçe ve İngilizce metin arama desteği ile içeri

Selahattin Esim CEO

Windows Server 2012: Sanallaştırmanın ötesine geçin. Oğuz Pastırmacı IT Pro Teknolojileri Yöneticisi Microsoft Türkiye

BIM 312 Database Management Systems. Veritabanı Kavramına Giriş

Mobil Cihazlardan Web Servis Sunumu

Bilgi Servisleri (IS)

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

BÜYÜK VERİ. Abdulkadir ŞAN Proje Yöneticisi 7/1/2014 VERİ SİSTEMLERİ. Anayurt Güvenliği Md. Yrd. Metin Madenciliği ve Kaynaştırma Sistemleri

CloudPro Server Backup. Güçlü bir Veri Yedekleme Çözümü ile İş Sürekliliğinizde Devamlılığın Anahtarı

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

Sade ve tam ekran masaüstü kullanımının temel çıkış noktası, aranılan özelliğe çabuk erişimi sağlayan yenilikçi kullanıcı deneyimidir.

ARGUS Plus Version ERP Sistemi


Veri Tabanı-I 1.Hafta

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Başlıca Ürün-Bilgi Sistemleri

Bilgi İşlemde Yeni Bir Çağ IBM Corporation

Doç. Dr. Cüneyt BAYILMIŞ

1 Temel Kavramlar. Veritabanı 1

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Ölçeklenebilir, Yüksek Erişilebilir ve Performanslı Bir Takip ve İzleme Sistemi Mimarisi: Karşılaştırmalı Bir Çalışma

Veri Tabanı Hafta Dersi

NoSQL. SQL ve Daha Fazlası (Not Only SQL) Hazırlayan: Ahmet Cevahir ÇINAR

İLİŞKİSEL VERİTABANLARI

S.O.S Günışığı Lojistik Saha Operasyon Sistemi

MESLEK YÜKSEKOKULLARINA SINAVLI VE SINAVSIZ GEÇİŞ SİSTEMİ İLE YERLEŞEN ÖĞRENCİLERİN PERFORMANSLARININ KARŞILAŞTIRILMASI

Veritabanı Yönetim Sistemleri, 2. basım Zehra ALAKOÇ BURMA, 2009, Seçkin Yayıncılık

MAYIS 2010 ÖZGÜR DOĞAN İŞ GELİŞTİRME YÖNETİCİSİ KAMU SEKTÖRÜ

Tarımsal Üretim Uygulamalarında Bulut Hesaplama (Cloud Computing) Teknolojisi


Veri Tabanı Tasarım ve Yönetimi

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

Büyük veriye genel bakış, mimari ve çözümler

PostgreSQL ile NoSQL. Gereksinimlerinizi Karşılamak

Kültür Varlıklarının Web Otomasyonu

Oracle Database 11g: Introduction to SQL

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

VERİ TABANI SİSTEMLERİ

YÖNTEM FİLO YÖNETİMİ ARAÇ İZLEME SİSTEMLERİ

LABORATUVAR BİLGİ SİSTEMİ NEDİR? ÇALIŞMA PRENSİPLERİ NELERDİR?

2. hafta Bulut Bilişime Giriş

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

Veri Tabanı Yönetim Sistemleri Bölüm - 3

Bu model, tüm halka servislere ve sistemlere kolaylıkla erişebilmeyi imkan verir. Örneğin

KENT BİLGİ SİSTEMİNİN BİR ALT SİSTEMİ OLARAK İSTATİSTİKSEL BİLGİ SİSTEMİ VE TÜRKİYE İÇİN 2008 YILINDA İSTATİSTİKSEL BİLGİ SİSTEMİ KULLANIM DURUMU *

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Hızlı Kurulum ve Yapılandırma Kılavuzu

w w w. a n k a r a b t. c o m

yenilikçi bir yatırım yönetim sistemine giriş yapın.

Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan

GEOPORTAL SİSTEMLERİNDE GRID VE CLOUD COMPUTING TEKNOLOJİLERİNİN KULLANILABİLİRLİĞİNİN ARAŞTIRILMASI

Servis olarak Altyapı

VERİ TABANI UYGULAMALARI

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ

Fırat Üniversitesi Personel Otomasyonu

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

SQL (Structured Query Language)

EMC Forum Yazılım Temelli Veri Depolama Moro Hekim Sistem Mühendisi

DITA ile Uygulama Belgeleri Hazırlamak

Kurumsal Yönetim Sistemleri Sistemleri

4. Sanayi Devrimi ve Kütüphanelerin Geleceği

VERİTABANI VERİTABANIN AVANTAJLARI ÖZET

KUŞCU GRUP. Alan Ağı Alt Yapı Çözümlerimiz KUŞCU GRUP. Bilişim Hizmetleri ŞTİ. İstanbul Ofis: Aydıntepe Mah.Dr.Sadık Ahmet Cad.Evren Sk.

Coğrafi Bilgilerin Harita Servisleri ile Paylaşımına Yönelik Uygulama Örnekleri

Windows Azure Sunumu. Y. Bora Kaykayoğlu Ocak 2018 Kahramanmaraş

Kritik Uygulamalar için Yeni Yedekleme ve Arşivleme Stratejileri

Bilişim. Elektronik Belge Yönetim Sistemi

SDD Dökümantasyonu Versࠀyon 1.0. Movࠀe Predࠀctࠀon Orhan Özgün Ergen Ahmet Saday Berkay Erken

1-Veritabanı Yönetim Sistemleri /Tanım

PostgreSQL - Yeni dönemdeki yeri

M2M PLATFORMLAR İÇİN SERVİS VE ARAYÜZ GELİŞTİRİLMESİ

FIRAT ÜNİVERSİTESİ PERSONEL OTOMASYONU

VERİ TABANI PROGRAMCILIĞI DALI

HAKKIMIZDA. Misyonumuz; Vizyonumuz;

İlişkisel Veri Tabanları I

MongoDB. NoSQL Database

UHeM ve Bulut Bilişim

Transkript:

M2m Sistemlerde Sql Veya Nosql Kullanimi Saadin Oyucu1, Hüseyin Polat2 1 Gazi Üniversitesi, Bilgisayar Mühendisliği Bölümü, Ankara 2 Gazi Üniversitesi, Bilgisayar Mühendisliği Bölümü, Ankara saadinoyucu@gazi.edu.tr, polath@gazi.edu.tr Özet: Makineler Arası İletişim (Machine to Machine: M2M) sistemlerine veri sağlayan en önemli bileşenler algılayıcılardır. Algılayıcı teknolojisi günümüzde oldukça ilerlemiştir. Bu ilerleme sayesinde algılayıcıların kullanıldığı alanlar, dolaysıyla da M2M sistemlerin kullanıldığı alanlar giderek çoğalmıştır. Uzaktan izleme, akıllı ev projeleri, enerji izleme sistemleri vb. alanların hemen hemen hepsinde M2M sistemler kullanılmaktadır. M2M sistemlerde algılayıcılardan anlık olarak veri alınmakta ve daha sonra bir M2M platformuna gönderilerek bu veriler kolaylıkla izlenebilmekte, saklanabilmekte ve istatiksel analizlere tabi tutulabilmektedir. Bazı durumlarda saklanacak veriler oldukça büyük boyutlara ulaşabilmektedir ve bu durum verileri yazmakta, okumakta ve analiz etmekte bazı problemlere yol açmaktadır. Bu sistemlerde şimdiye kadar geleneksel ilişkisel veri tabanları kullanılmıştır. Fakat zamanla değişen ihtiyaçlar doğrultusunda ölçeklenebilirlik ve kullanılabilirlik gibi kavramlar ortaya çıkmış ve günümüzde büyük miktardaki verilerle daha rahat çalışabilmek için NoSQL kavramı ortaya çıkmıştır. Bu çalışmada M2M sistemler için ilişkisel veri tabanı ve son zamanlarda popüler olan NoSQL veri tabanı çeşitli yönleri ile ele alınarak incelenmiş ve M2M sistemlerde NoSQL veri tabanı kullanımının ne gibi avantajlar sağlayabileceği üzerine durulmuştur. Ayrıca farklı ilişkisel veri tabanları ve NoSQL veri tabanları, M2M sistemler için performans bakımından karşılaştırılmıştır. Anahtar Sözcükler: M2M, IoT, SQL, NoSQL, MongoDB Using Sql Or Nosql In M2m Systems Abstract: Sensors are the most important ingredients that provides the data to the Machine to Machine (M2M) systems. The sensors technology is quite developed in today. Then, there is an incrementally increase in the number of areas in that sensors are used, relatively M2M systems are used in nearly all of areas such as Telemetry, Smart Home Projects and Energy Tracing Systems. Immediate data can be gotten from sensors in M2M systems and it can be traced, kept, and analyzed statically by sending to one of M2M platforms. In some cases, reserved data can be reached to rather big dimensions and there may occur some problems in writing, reading and analyzing these huge data. Traditional relational databases have been used in these systems for many years. But, some concepts emerged in line with changing needs, such as scalability and availability and today NoSQL concept has emerged to have more comfortable study with huge data. In this study, relational database for M2M systems and recently popular NoSQL database are analyzed by considering its various aspects. This study is also focused on what kind of advantages can be got after using NoSQL database in M2M systems. Additionally, different relational databases and NoSQL databases are compared according to the performance in M2M systems. Keywords: M2M, IoT, SQL, NoSQL, MongoDB 1. Giriş M2M kısaca, farklı veya aynı cihazların kablolu ya da kablosuz bir şekilde haberleşmesini sağlayan teknolojiyi ifade etmektedir. Günümüzde sayıları gittikçe artan M2M uygulamaları, temel mimari olarak üç temel alandan oluşmaktadır. Bunlar; M2M Cihaz Alanı, M2M iletişim Alanı ve Uygulama Alanıdır. Uygulama alanında veriler belirli formatlarda kullanıcıya sunulur. Bazı durumlarda verilerin işlenerek sunulması gerekebilir. Geriye dönük analizlerin yapılması istenilen bir sistemde, algılayıcılardan alınan verilerin saklanması gerekmektedir. Bir veya daha fazla algılayıcıdan alınan anlık verilerin tutulduğu veri tabanlarının boyutları gittikçe artmaktadır. Bu artış hem saklanması istenilen verilerin büyüklüğünden kaynaklanan hem de performans bakımından bazı problemlere yol açmaktadır. Verileri saklamak için geleneksel olarak ilişkisel veri tabanı modeli (Relational Database Management System: RDMS) kullanılmaktadır. Bu tip veri tabanları sorgu dili olarak bilinen Yapısal Sorgu Dili (Structured Query Language: SQL) veri tabanı olarak ta bilinirler [1]. Günümüzde 866

SQL veri tabanlarının büyük öneme sahip olması ve büyük projelerde kullanılması arka planda desteğinin çok iyi olmasındandır. Özellikle ORA- CLE, IBM ve MICROSOFT gibi dev teknoloji firmalarının bu tip veri tabanlarını desteklemesi ile bu sistemler piyasada oldukça fazla yer tutmuştur. Fakat günümüzde Bulut Bilişim ve dağınık web uygulamalarının yaygınlaşması, kullanılabilirliği ve ölçeklenebilirliği yüksek veri tabanlarına ihtiyacın artmasına sebep olmuştur. Böylelikle ilişkisel olmayan veri tabanı NoSQL kavramı ortaya çıkmıştır. Özellikle artan veri depolama ihtiyacına bir çözüm arayan ve veri tabanı performansını arttırmak isteyen Amazon ve Google gibi şirketler ilişkisel olmayan veri tabanlarını kullanmaya başlamıştır. Amazon şirketinin Dynamo teknolojisi ve Google ın Bigtable uygulaması günümüzdeki NoSQL veri tabanları için kaynak olmuştur [2]. Algılayıcılardan anlık olarak alınan verilerin büyük boyutlara ulaşması ve aynı anda birden farklı cihazda farklı işlemlerin yapılması isteği farklı problemleri beraberinde getirmektedir [3]. Eric Brewer tarafından 2000 li yıllarda ortaya atılan, dağıtık sistemlerin aynı anda; Tutarlılık: Dağıtık sisteme bağlı tüm düğümlerde aynı verilerin olması, Kullanılabilirlik: Tüm isteklere her zaman cevap verilebilmesi Parça Toleransı: Sistem parçalarından birinin çalışmaması durumunda sistemin düzgün devam etmesi gibi üç başlıkta ele aldığı özelliklerin savunulduğu CAP (Consistency, Availability, Partition Tolerance) teoremine göre aynı anda üç özellik değil sadece iki özelliğin sağlanabileceği söylenmektedir. Bu teoremden yola çıkarak farklı mimarilerde veri tabanları oluşturulmuştur. Bu mimariler genellikle CA (Tutarlılık ve Kullanılabilirlik), CP (Tutarlılık ve Parça Toleransı), AP (Tutarlılık ve Parça Toleransı) kalıpları içerisinde geliştirilmeye çalışılmıştır [4]. SQL veri tabanlarının tutarlılığı ve kullanılabilirliği oldukça yüksektir. Fakat NoSQL veri tabanları her zaman tutarlılığı garanti etmemesine rağmen ölçeklenebilir bir yapıya sahip olduğundan Parça Toleransı bakımından oldukça iyidir. Bu özelliği ile tek bir sunucu için daha fazla kullanıcı desteği sunabilir ve daha fazla algılayıcıdan verileri alıp yazabilir veya okuyabilir [3]. Görüldüğü gibi veri tabanı mimarilerinde oldukça bol çeşit ve bir o kadar da seçenek vardır. Bu çalışmada M2M sistemlerin yaygınlaşmasıyla beraber algılayıcılardan gelen ve büyük boyutlara ulaşan verilerin saklanabilmesi için SQL ve NoSQL kavramları incelenmiş ve veri tabanı seçim aşamasında, kullanıcıların seçim yaparken değerlendirebileceği sonuçlar ortaya konulmuştur. Ayrıca farklı SQL ve NoSQL veri tabanları, M2M sistemler için performans bakımından karşılaştırılmıştır. 2. Algılayıcı Verileri M2M sistemde algılayıcıdan gelen verilerin boyutu ve türü kullanılan algılayıcıya göre değişmektedir. Örneğin basınç ölçümü yapan bir algılayıcıdan gelen veri ile sıcaklık ölçümü yapan bir algılayıcıdan gelen veri birbirinden farklıdır. M2M uygulaması hangi özel alanda gerçekleştiriliyor ise o alana uygun algılayıcılar kullanmak gerekir. Veriler uygun şekilde alınır ve veri tabanına kaydedilir. Bir Soğuk Zincir Takip ve Stok Yönetim Sistemi projesi ile aşı ve anti serumların Türkiye Halk Sağlığı Kurumu na bağlı 10.000 bölgesel depoya nakli sağlanmıştır [5]. Bu Aşı Takip Sisteminde aşıların bulunduğu ortamların sıcaklık ölçümleri belirli aralıklarla yapılarak hem yetkililere sunulmakta hem de veriler düzenli olarak kaydedilmektedir. Bu verilerin kayıt esnasında sadece sıcaklık değeri kaydedilmeyebilir. Ölçümün yapıldığı tarih ve saati de verilere ekleyen zaman damgası veya diğer tanımlayıcı verilerin de saklanması istenilebilir. Veriler üzerine yapılacak her türlü eklemeler verileri oldukça büyük bir boyuta getirmekte saklanmasını ve işlenmesini zorlaştırmaktadır. Bu nedenden dolayı en uygun veri tabanını seçmek oldukça önemlidir. M2M sistemlerinde veriler düzenli olarak veri tabanına kaydedilirken yazma işleminde farklı veri tabanlarında farklı dalgalanmalar gözlenmektedir. Fakat okuma işlemi sırsında birden fazla kullanıcı birden farklı platformda verileri analiz etmek için veri tabanından istekte bulunabilir. Bu işlem sırasında Şekil 1 de görüldüğü gibi veri tabanına aşırı yüklenme olabilmektedir. Şekil 1. Veri Tabanında Algılayıcı Verilerini Yazma ve Okuma İşlemi [3]. 867

3. SQL Sorgu Dili Veri tabanı uygulamaları için kullanılan en yaygın sorgu dilidir. Kullanıcı, sorgu dili ile gerçekleştirmek istediği işlemi yalın bir biçimde ifade eder. IBM, bir ilişkisel veri tabanı yönetim sistemi geliştirmek amacıyla System/R adlı bir proje başlatarak bu sistem için Structured English Query Language (SEQUEL) adında bir sorgu dili geliştirilmeye başlamıştır. 1979 da tamamlanan bu proje sırasında geliştirilen dilin adı Structured Query Language (SQL) olarak değiştirilmiştir [6]. System/R projesini izleyen bir grup mühendis, ilişkisel veri tabanındaki potansiyeli görmüş ve Relational Software Inc. Adında bir şirket kurmuşlardır. 1979 da ORACLE adını verdikleri ilk ticari ilişkisel veri tabanı yönetim sistemini geliştirmişler ve SQL i bu sistemde sorgu dili olarak kullanmışlardır. SQL sorgu dilinde oluşturulmuş bir sorgu aşağıda yer almaktadır. SELECT ADI, SICAKLIK, SAAT FROM SENSOR WHERE ALGILAYICI_NO = 10; Yukarıdaki sorgu ile 10 numaralı algılayıcı için ad, sıcaklık ve saat bilgilerinin bulunmak istendiği kolayca anlaşılmaktadır. SQL in kullanıldığı veri tabanı içerisinde veriler belirli bir şema içerisinde tutulmaktadır. Şemayı oluşturan bileşenler ise satır ve sütunlardır. 3.1. SQL Veri Tabanı Temel Özellikleri İlişkisel veri tabanı, önceden tanımlanmış ve kategorize edilmiş tablolar içerisine veri yerleştirme biçimidir. Her tablo sütunları bir veya daha fazla veri kategorisi içerir. Her satır, sütunlara göre belirlenen kategoriler içinde eşsiz bir veri örneğini içerir. Kullanıcı veri tabanı tablosunun yapısını bilmeden veri tabanındaki veriye erişebilirsiniz. SQL veri tabanı sınırlılıklarından olan ölçeklenebilirlik ve karmaşıklık aşağıda açıklanmaya çalışılmıştır. Ölçeklenebilirlik: İlişkisel veri tabanında ölçeklenebilirlik çok güçlü ve pahalı sunucular ile gerçekleştirilebilir. Tek bir yerden depo edilmeli prensibine dayanan bu veri tabanı birden fazla yerdeki kaynakların birleştirilmesi oldukça zordur. Karmaşıklık: SQL sunucu verilerini tablolar içerisinde saklar bu durum farklı boyutta verilerin girilmesinde zorluklar ortaya çıkarır. 4. NoSQL NoSQL veri tabanı kavramı, yıllardır bilişim dünyasında kullanılan ilişkisel veri tabanı sistemlerine alternatif olarak ortaya çıkmıştır. NoSQL, günümüzde İnternet ortamında giderek büyüyen verileri depolayabilmek ve yüksek erişilebilirliğin yanında yatay ölçeklenebilen sistemlere verilen genel bir isim olarak anılmaktadır. Google ın BigTable ve Amazon un Dynamo teknolojisinde kullandığı ilişkisel olmayan veri tabanındaki başarısı ve aynı zamanda NoSQL veri tabanlarının ölçeklenebilirliği, hızı, erişim kolaylığı, maliyeti vb. gibi kavramlarda sağladığı üstünlük NoSQL veri tabanlarının popülaritesini arttırmıştır [1]. Sorgulama dili olarak SQL kullanmayan NoSQL veri tabanları için 21.12.2014 tarihinde sisteme yazılmış olan algılayıcı bilgilerini listeleyen örnek bir sorgu aşağıda verilmiştir. db.sensor.find({ create_date : 2014-12-21 }) Günümüzde çeşitli NoSQL veri tabanları bulunmaktadır. Bu farklılıkların temeli CAP teoremine dayanmaktadır ve günümüzde geliştirilen NoSQL veri tabanlarının raporlama ve SQL standartlarını desteklememesi gibi kısıtları vardır. NoSQL veri tabanlarının sağladığı avantajlar ise şunlardır; veri okuma ve yazma hızı, toplu veri işlemlerini desteklemesi, genişletilmesinin kolay olması ve düşük maliyetinin olmasıdır [4]. NoSQL veri tabanlarının belge odaklı olması ile farklı dosya yapıları bir arada kullanılabilmektedir. Bir NoSQL veri tabanı XML, JSON veya BSON dosya yapılarını destekleyebilir. Veriler belirtilen bu dosya serileri halinde bulunmaktadır. 4.1. NoSQL Sistemlerinin Çeşitleri ve Farkları Günümüzde farklı teknolojilerde bulunan NoSQL veri tabanlarının SQL gibi standartları olmadığı için kendi aralarında da çeşitli farklılıklar göstermektedirler. HBase, Cassandra, Redis, MongoDB, Voldemort, CouchDB, Dynomite, Hypertable günümüzde kullanılan NoSQL veri tabanlarından bazılarıdır [7]. Her sistemin veri tutarlılığı ve veri erişimi ile ilgili farklı özellikleri ve yetenekleri bulunmaktadır. Fakat NoSQL veri tabanlarını genel olarak veri modeline göre üç grupta toplamak mümkündür. Döküman Tabanlı: Bu sistemlerde bir kayıt döküman olarak isimlendirilir. Dökümanlar genelde JSON veya XML formatında saklanır. Bu dökümanların içerisinde sınırsız alan oluşturula- 868

bilir. MongoDB, CouchDB, HBase, Cassandra ve Amazon SimpleDB bunlara örnektir. Anahtar / Değer Tabanlı: Bu sistemlerde anahtara karşılık gelen tek bir bilgi bulunur. Kolon kavramı yoktur. AzureTable Storage, Redis, MemcacheDB ve BerkeleyDB bunlara örnektir. Grafik Tabanlı: Diğerlerinden farklı olarak verilerin arasındaki ilişkiyi de tutan, Graph Theory modelindeki sistemlerdir. Neo4J, FlockDB bunlara örnektir [8]. 5. SQL ve NoSQL Aşağıda altı farklı özellik ile SQL ve NoSQL veri tabanları karşılaştırılmıştır [9]. 1- İşlem Güvenirliği: İşlem güvenirliği ilişkisel veri tabanlarında oldukça yüksek olmasına rağmen NoSQL veri tabanı sistemlerinde oldukça düşüktür. Bunun nedeni ise ilişkisel veri tabanı sistemlerinin ACID (Atomicity Consistency Isolation-Durability) işlemlerini desteklemesidir. 2- Veri Modeli: SQL veri tabanı sistemleri verileri tablo yapılarında saklar ve SQL sorgu dili ile bu verilere erişimi sağlamaktadır. SQL veri tabanlarında aynı anda birden fazla tablo üzerinde işlem yapılabilir ve kolon sayıları arttırılabilir. Veri tabanını büyütmek amacıyla ise dikey ölçeklenebilirlik sağlanırken yatay ölçeklenebilirlik kısıtlıdır. NoSQL veri tabanı sistemlerinde ise yatay ölçeklenebilirlik hat safhada kullanıcıya sunarken veriler genellikle anahtar/değer tabanlı olarak kolon kavramı olmadan saklanır [3]. NoSQL içerisinde kolonlardan bağımsız saklanan her bir veri parçası basit anahtar değerleri ile veri tabanı sistemine gönderilmektedir. Benzersiz bir ağ yapısı ile yerleştirilen verileri okurken yüksek yoğunluk altında bile üst düzey performans alınarak düşük gecikme ile işlem yapılabilmektedir. Veriler NoSQL veri tabanlarında saklanırken nesne tabanlı mimariye benzer şekilde tutulmaktadır. Bu benzerlik yapısal olmayan ve farklılık gösteren verilerin saklanmasını kolaylaştırmaktadır. 3- Ölçeklenebilirlik: Ölçeklenebilirlik NoSQL kavramının çıkmasında önemli ölçüde paya sahiptir. İlişkisel veri tabanlarında büyüme dikey olarak sağlanırken, büyük verilerin gereksinim duyduğu ölçüye ulaşmak için donanım gereksinimi duyulur ve bu gereksinim oldukça pahalıdır. NoSQL ise yatay olarak ölçeklenebilirlik sunmakta ve büyük verilerin saklanmasını kolaylaştırdığı gibi maliyetini de azaltmaktadır. 4- Karmaşıklık: İlişkisel veri tabanlarında verilerin tablolarda tutulması ve bir tablonun birden fazla tablo ile ilişkisinin olması karmaşıklığı beraberinde getirmektedir. Özellikle yapısal olmayan verilerde karmaşıklık daha da artmaktadır. Belge tabanlı NoSQL veri tabanlarında ise bu durum farklıdır. Farklı belgelerde saklanan veriler birbirlerinden etkilenmemektedirler. 5- Hata Kurtarma: Veri tabanında oluşabilecek problemler kilitlenme ve verilerde hasara yol açabilmektedir. İlişkisel veri tabanı sistemleri özellikle log yönetimi ile veri tabanını izleme ve hata kontrolü sağlamada oldukça başarılıdır. NoSQL veri tabanları ise kendi aralarında da farklı mimarilere sahip olduğundan her veri tabanı bu duruma farklı bir çözüm bulmaya çalışmıştır. Örneğin MongoDB kazalardan kaçınmak için yedekleme mekanizmasına sahiptir. 6- Güvenlik: Günümüzde yaygın olarak kullanılan ilişkisel veri tabanları üzerine yıllardır güvenlik çalışmaları yapılmış ve bu çalışmalar meyvesini vermiştir. Basit olarak SQL Injection veya Cross Site Scripting gibi işlemlere karşı önlemler alınmaya çalışılmıştır fakat NoSQL performans bakımından ön plana çıktığından güvenlik üzerine çalışmalar geri planda kalmıştır. Bu nedenden dolayı veri tabanı seçiminde güvenlik kısmının iyice araştırılması gerekmektedir. Yukarıdaki maddelerin yanı sıra Datastax firmasının sunduğu bir uygulama için neden NoSQL veri tabanının seçilmesi gerektiği aşağıdaki özellikleri vurgulanarak belirtilmiştir [10]. Büyük verinin var olması, Geliştirilen uygulamalar için sürekli kullanılabilir verilerin olması, Platformdan bağımsız sistemlerin oluşturulma isteği, Modern işlem desteğine olan ihtiyaç, Daha esnek bir veri modelinin gerekliliği, Daha iyi bir mimari isteği, Couchbase firmasına göre ise NoSQL veri tabanlarının öne çıkan özellikleri ve NoSQL in geliştiricilere sunduğu yetenekler aşağıdaki gibidir [11]. Uygulamada verimliliği arttırmak için daha esnek veri modeli, Dinamik ölçeklendirme ile büyük verileri depolama maliyetlerini azaltmak ve birden fazla kullanıcıyı desteklemek, Çok duyarlı uygulamalar için kullanıcı beklentilerini karşılayan ve daha karmaşık verilerin işlenmesi için geliştirilmiş performans. Görüldüğü gibi hem veri tabanı üreticileri hem de geliştiriciler için NoSQL veri tabanları oldukça önemli faydalar sağlamaktadırlar. Tek eksik 869

güvenlik ve tutarlılık kısmında görülse de geliştirilmeye çalışılan uygulamalar için veri tabanı seçilirken artı ve eksileri iyi değerlendirilmelidir. 6. M2M Sistemlerinde NoSQL Doğru veri tabanı sistemini projeye başlamadan önce seçmek bazen hayati bir önem taşıyabilir. Doğru projede doğru veri tabanı sistemi ile oldukça yüksek verimlilik sağlanabilir. İnternet ortamındaki verilerin gün geçtikçe büyümesinin nedenlerinden biri de Nesnelerin İnterneti ve M2M kavramlarıdır. 2020 yılı itibariyle Nesnelerin İnterneti nin parçası olması öngörülen nesnelerin (otonom) sayısı 30 milyar civarındadır [12]. Bu sistemler haberleşmeyi algılayıcılar sayesinde yaptıkları gibi anlık olarak konum, hareket, sıcaklık, basınç vb. değerleri hem birbiri ile paylaşırken hem de depolamaktadırlar. Depolanan bu veriler zamanla büyük boyutlara ulaşabilmektedir. Büyük boyutlara ulaşan bu veri yapısını saklamak ve işlemek oldukça maliyetli ve zordur. İşte tamda bu noktada yeni teknolojileri kullanarak proje geliştirmek oldukça önemlidir. Son yıllarda ortaya çıkan NoSQL kavramı bir sistemde farklı yapıdaki verileri tutmaya olanak sağlamaktadır. Örneğin bir sıcaklık algılayıcısından gelen veri tipleri ile basınç algılayıcısından gelen veri tipi birbirinden farklı olabilir. SQL veri tabanında bu farklılık için ayrı ayrı tablo tasarımı yapmak gerekirken belge tabanlı bir NoSQL veri tabanı tablolardan bağımsız olduğu için veriler farklı tip ve boyutlarda tutulabilir. M2M sistemlerde veriler bir veya birden fazla algılayıcıdan alınmaktadır. Bu verilerin veri tabanına yazımı sırasında, veri tabanı belirli aralıklarla yoğunluk yaşayabilir aynı zamanda verileri veri tabanından okuma işleminde birden fazla kullanıcı veri tabanından farklı isteklerde bulunabilir. Bu durumda veri tabanının cevap verme süresi geç olur ise sistem kilitlenmelerine yol açılabilmektedir. Bu durumu engelleyebilmek için performans bakımından üst düzey bir belge tabanlı NoSQL veri tabanı tercih nedeni olmalıdır. Bunun için ise MongoDB kendini kanıtlamış bir sistemdir ve Türkiye Halk Sağlığı Kurumu Soğuk Zincir Takip ve Stok Yönetim Sistemi projesinde de kullanılmaktadır [5]. Sanal ve fiziksel veri tabanları üzerine yapılan bir çalışmada birden fazla okuma ve yazma işlemi için sistemin performansı Şekil 2 de gösterilmiştir. Şekil 2. Veri Tabanı Karşılaştırılması [3]. Şekil 2 de görüldüğü çalışma fiziksel ve sanal olarak en çok kullanılan ücretsiz NoSQL veri tabanları olan Cassandra ve MongoDB üzerine ve ilişkisel veri tabanı olan PostgreSQL üzerine yapılmıştır. Bu çalışmada veri tabanları aynı anda birden fazla okuma ve yazma işlemine tabi tutulmuştur. Performansların değerlendirildiği bu çalışmada NoSQL veri tabanlarının çoklu işlemlerde başarılı olduğu tespit edilmiştir. Bu çalışma M2M sistemlerindeki çoklu işlemler için veri tabanı seçimine ışık tutmaktadır. Banka işlemlerinde veya önemli kişisel bilgilerin tutulduğu veri tabanlarında güvenliğin ön planda olması gerekmektedir. NoSQL veri tabanlarında ise güvenlik günümüzde tam olgunlaşmamıştır. Geliştirme aşamasında farklı yazılım senaryoları ile güvenlik arttırılmaya çalışılabilir fakat yetersiz kaldığı durumları göz ardı etmemek gerektiğinden bu tip veri tabanlarını üst düzey güvenlik gerektiren projelerde kullanmak en son tercih olmalıdır. Maliyet veri tabanları için önemlidir. Saklanılan veri boyutu ne kadar artarsa depolama gereksinimi de bir o kadar artmaktadır. İlişkisel veri tabanlarında kolonlar dikey ölçeklendiğinden veri tabanı için yeni donanımlar satın almak gerekebilir. İlişkisel veri tabanlarını yatay ölçeklemek zordur. NoSQL de ise bu durum farklıdır. Yatay ölçeklenebilen NoSQL veri tabanları maliyeti oldukça düşürmektedir ve benzersiz bir ağ yapısı ile performansı arttırmaktadır. 7. Sonuç ve Öneriler Son yıllarda teknolojideki gelişmeler veri tabanı sistemlerinde de değişikliklere yol açmıştır. Bu değişiklik NoSQL kavramını günümüz dünyasına yerleştirirken geliştirilecek projelere başlamadan önce veri tabanı seçiminde oldukça geniş bir 870

araştırma yapmaya zorlamaktadır. Bu çalışmada M2M sistem uygulaması geliştirilen bir projede kullanılacak olan veri tabanının hangi özelliklerde seçilmesi gerektiği üzerinde durulmuştur. Öncelikle SQL ve NoSQL veri tabanları incelenmiş ve CAP teoreminin veri tabanları üzerine etkisi araştırılmıştır daha sonra NoSQL çeşitleri incelenmiş ve belge tabanlı veri tabanı sistemlerinin önemi üzerine durulmuştur. Yatay ölçeklenebilirlik büyük veriler için önemli olduğundan ve yapılan karşılaştırmalar sonucu M2M sistemler için NoSQL veri tabanı tercih edilmelidir sonucuna varılmıştır. Ayrıca farklı durumlarda SQL ve NoSQL veri tabanı sistemleri karşılaştırılmıştır ve M2M sistemler için en uygun veri tabanının seçilmesi için bilgiler sunulmuştur. İlişkisel veri tabanı ve NoSQL veri tabanlarının kendine göre avantaj ve dezavantajları bulunmaktadır. M2M sistemlerinde algılayıcılardan veri tabanına ve sisteme sürekli veri akışı olacağından hız oldukça önemlidir. NoSQL veri tabanı yazılımı olarak MongoDB gibi birden fazla ücretsiz yazılımda mevcuttur. MongoDB belge veri modeli, zengin sorgu desteği, yatay ölçeklenebilirlik, yüksek kullanılabilirlik, esneklik ve dinamik şema gibi birçok özelliği geliştiricilere sunmaktadır. Veri saklama işleminde JSON yapısını kullanmaya izin veren NoSQL veri tabanı ile Temsili Durum Transferi (Representational State Transfer: RestFUL) web servislerinin kullanıldığı sistemler, daha dinamik bir yapı ve platformdan bağımsız uygulamalar geliştirilmesine olanak sağlayacaktır. Bu nedenlerden dolayı M2M projelerinde veri tabanı olarak NoSQL veri tabanlarını kullanmak uygulamalarda başarılı sonuçlar almayı kolaylaştıracaktır. [5] Ankaref, Gökhan F. Türkiye Bilişim Dergisi, Sayfa 106, Yıl 42, Sayı 171, Aralık (2014) [6] Donald D. C., Morton M. A., Michael W. B., and others., A History and Evaluation of System R IBM Research Laboratory San Jose, California, Oct. (1981) [7] Rick C., Scalable SQL and NoSQL Data Stores, SIGMOD Record, (Vol.39, No.4), December (2010) [8] NoSQL Nedir, http://devveri.com/nosqlnedir (Erişim Tarihi: 03.12.2014) [9] Mohamed A. M., Obay G. A., Mohammed O.I., Relational vs. NoSQL Databases: A Survey, International Journal of Computer and Information Technology (ISSN: 2279 0764) Volume 03 Issue 03, May (2014) [10] White Paper BY DATASTAX CORPORATION October (2013) [11] Why NoSQL, http://www.couchbase.com/nosql-resources/ what-is-no-sql (Erişim Tarihi:03.12.2014) [12] IDC, Worldwide Internet of Things (IoT) 2013-2020 Forecast: Billions of Things trillions Of Dollars, Belge No. 243661, Ekim 2013 8. Kaynaklar [1] Yishan L., Sathiamoorthy M., A performance comparison of SQL and NoSQL databases, Communications, Computers and Signal Processing (PACRIM), 2013 IEEE Pacific Rim, Conference on, 27-29 Aug. (2013) [2] Lior O., Nurit G., Yaron G., Ehud G., Jenny A., Security Issues in NoSQL Databases, Trust, Security and Privacy in Computing and Communications (TrustCom), 2011 IEEE 10th International Conference on, 16-18 Nov. (2011) [3] Jan Sipke V., Bram W., Robert J. M., Sensor Data Storage Performance: SQL or NoSQL, Physical or Virtual, Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on, 24-29 June (2012) [4] Han J., Haihong E., Le G., Du J., Survey on NoSQL database, Pervasive Computing and Applications (ICPCA), 2011 6th International Conference on, 26-28 Oct. (2011) 871