Doküman Tabanlı NoSQL Veritabanları: MongoDB ve CouchDB yatay ölçeklenebilirlik karşılaştırması
|
|
- Engin Çağlayan
- 7 yıl önce
- İzleme sayısı:
Transkript
1 Doküman Tabanlı NoSQL Veritabanları: MongoDB ve CouchDB yatay ölçeklenebilirlik karşılaştırması Süleyman Eken, Fidan Kaya, Ahmet Sayar, Adnan Kavak Bilgisayar Mühendisliği Kocaeli Üniversitesi Umuttepe Kampüsü,41380, Kocaeli-Türkiye {suleyman.eken, fidan.kaya, ahmet.sayar, Öz MySQL, Oracle ve Microsoft SQL Server gibi klasik ilişkisel veritabanı yönetim sistemleri (VTYS) uzun zamandır birçok uygulamada veri depolamak ve işlemek için kullanılmaktadır. Bunlar ACID (Atomicity, Consistency, Isolation, Durability) garantisi vermesine rağmen yatay olarak ölçeklemek (çoklu sunucuya dağıtmak) çok zordur. Ayrıca internetin hızla büyümesiyle Facebook ve Twitter gibi içeriğini kullanıcıların oluşturduğu web sitelerinin büyük miktardaki verilerinin üstesinden de gelememektedirler. NoSQL (Not Only SQL) VTYS ise büyük verileri depolayabilmekte, yüksek trafiğe sahip sistemlerin ihtiyacını karşılayabilmekte ve yatay olarak ölçeklenebilmektedirler. Bu çalışmada, doküman tabanlı NoSQL veritabanlarından olan MongoDB ve CouchDB nin veri okuma ve yazma hızlarının yatay olarak ölçeklemeye karşı davranışları farklı miktardaki dokümanlar üzerinden karşılaştırılmaktadır. Anahtar Kelimeler NoSQL veritabanları, MongoDB, CouchDB, yatay ölçeklenebilirlik, dokuman tabanlı, JSON. I. GİRİŞ Verileri kalıcı olarak depolayan daha sonra gerektiğinde etkin bir biçimde geri getiren birçok VTYS mevcuttur. Bu sistemler sahip oldukları özellikler ve verileri depolamak için kullandıkları modeller sebebi ile birbirlerinden yarılabilmektedirler. Standart ilişkisel model, verileri tutmak için her satırı eşsiz olarak adreslenebilen tablolar kullanmaktadır. Bu sistemler verileri depolamak, değiştirmek ve geri döndürmek için yapısal sorgulama dilinden (SQL) yararlanmaktadır. Nesneye dayalı programlama paradigmasının yaygın olarak kullanılması ile ilişkisel veritabanlarının nesne tabanlı veritabanlarına transferi popüler hale gelmiştir. Ayrıca Web 2.0 ın gelişimi ile veritabanlarının ölçeklenebilme ihtiyacı ortaya çıkmıştır. Bu ölçekleme işlemi ise iki şekilde: (i) dikey ölçekleme denilen veritabanı içeren sunucunun donanımsal kaynaklarının artırılması ile ki bu çok maliyetlidir, (ii) yatay ölçeklenebilirlik denilen veritabanını birçok sunucuya dağıtmak yolu ile yapılabilmektedir. Yatay ölçeklenebilirliği gerçekleştirmek için ilişkisel olmayan veritabanları geliştiriliştir. Bunlar SQL i ve ilişkisel modeli kullanmayan NoSQL VTYS dir. Makalenin düzeni şu şekilde olacaktır: II. bölümde NoSQL veritabanlarının geleneksel olanlarla karşılaştırılması yapılacak ve NoSQL veritabanlarının çeşitleri üzerinde durulacaktır. III. bölümde önce ölçeklenebilirlik kavramından bahsedilecek daha sonra doküman tabanlı veritabanlarından MongoDB ve CouchDB nin yatay ölçeklemeyi nasıl gerçekleştirdiği anlatılacaktır. IV. bölümde ise tek sunucu kullanıldığında ve yatay ölçekleme yapıldığında veri okuma ve yazma hızlarının bu iki VTYS ye göre nasıl değiştiği irdelenmiştir. Son bölümde ise sonuçlar tartışılmıştır. II. NOSQL VERİTABANLARI NoSQL kavramı 2009 sonları 2010 başlarında ortaya çıkmıştır. Bu sistemler klasik veritabanlarından büyük verileri kontrol edebilme, ölçeklenebilme, veri formatları, yönetebilme, sorgulara daha hızlı cevap alabilme, eş zamanlı insert ve update işlemlerini gerçekleyebilme, açık kaynak kodlu geliştirme sağlayabilme gibi yönlerden farklılıklar arz etmektedir. Bu bölümde kısaca bu farklılıklar üzerinde durulacaktır. İlişkisel VTYS leri işlem (transaction) tabanlı çalışan sistemler olup bu işlemlerin düzgün çalışması ve veri bütünlüğü için ACID kurallarını garantilerler. NoSQL sistemleri bu kuralların tamamına uymaz. NoSQL sistemler ACID alternatifi olan BASE (Basically Available, Soft state, Eventually consistent) kurallarını garantiler. Yani dağıtık sistemin düğümlerinden birinde sorun olsa bile sistem çalışmaya devam eder. Sistemin durumu ve veri sürekli olarak değişebilir. Yeterli zaman olması durumunda dağıtık sistemin her düğümünde yer alan veri tutarlı olacaktır, her düğüm aynı veriyi görecektir. BASE in temelinde CAP Teoremi vardır. CAP teoremine göre herhangi dağıtık bir sistem aynı anda Tutarlılık (Consistency), Erişebilirlik (Availability) ve Parçalanma toleransı (Partition tolerance) kavramlarının hepsini aynı anda sağlayamaz [1]. Bunlardan mutlaka birinde problem çıkmaktadır. NoSQL sistemlerde ise bu kavramlar esnetilerek yatay ölçeklenebilirlik ile performans kazancı amaçlanmıştır. Örneğin veriyi bölerek belirli sayıdaki kopyalarını da dağıtık sistemin farklı parçalarına göndererek tutarlılık sağlanabilir. Bu sayede paket kaybı yaşansa da verinin tamamı kaybedilmez, aynı zamanda veri bölündüğü için her bir parçaya düşen yük dengelenmiş olur. İlişkisel VTYS lerinde veriler tablolarda bulunurken, NoSQL sistemler sabit tablo tanımlarına bağımlı değillerdir. İlişkisel VTYS lerde veriler ilişkilerine göre ayrı tablolara düzenli bir şekilde yerleştirilerek normalize edilirken verilere erişim için birleştirme (join) kullanılır. Birleştirilmek istenen veriler farklı parçalarda (partitions) bulunabildiğinden dağıtık sistemlerde birleştirme operasyonu sıkıntılara sebep olur. Bu birleştirme işlemi şu şekilde yapılmaktadır: örneğin a verisi bir parçadan çekilir, sonra bununla ilişkili bir başka parçada bulunan b verisi çekilip program düzeyinde birleştirme
2 yapılır. Normal sistemlerde bu işlem performans kaybına sebep olurken dağıtık sistemlerde bu kayıp sistemin genel performansı yanında önemsizdir. İşte bu sebeple dağıtık sistemlerde birleştirme operasyonu yapmak yerine veri denormalize tutularak verilere erişim kolaylaştırılır. NoSQL sistemler bu sebeple sabit tablo tanımı içermeyip verilerin denormalize tutulmasını kolaylaştırır. İlişkisel VTYS lerde verilerin tekil birer anahtar (primary key) ile birbirlerinden ayrılması zorunlu değildir. Ancak NoSQL sistemler temel olarak verilere tekil anahtarlar üzerinden erişir. Her NoSQL sisteminde ikincil indeks (secondary index) yeteneği de bulunmayabilir. Bu yüzden verilere erişim SQL sorguları ile yapıldığı gibi kolay yapılamaz. Uygulamanın özelliğine göre birincil anahtarlar belirli bir mantığa göre verilir ve bu sayede veriye erişmeden önce zaten bu anahtar biliniyor ya da oluşturulabiliyor olur. Örneğin zamana göre artan ön ek (prefix), kaydın anahtarı ile birleştirilerek tek seferde ilgili kaydın belirli bir zaman aralığındaki kayıtlarına erişmek mümkündür. Bu sayede herhangi bir sorguya gerek olmaksızın tamamen anahtarlar üzerinden verilere hızlıca erişim sağlanmış olur. NoSQL sistemlerin bazılarında map-reduce (büyük veri kümeleri üzerinde dağıtılmış programlamayı destekleyen bir yazılım kütüphanesi) yeteneği bulunmaktadır. Bu sayede RDBMS üzerinde SQL ile gerçekleştirilmesi çok karmaşık olan analizler map-reduce ile kolay bir şekilde gerçekleştirilebilir [2]. NoSQL veritabanlarının pek çok farklı çeşidi bulunmaktadır. Bunlardan en temel olanları: (i) sütunlar şeklinde tutulanlar, (ii) anahtar-değer şeklinde depolama yapanlar, (iii) doküman tabanlılar, (iv) graf tabanlılar. Verileri sütun şeklinde tutan sistemlerde her veri saklama bloğu bir kolona ait verileri içerir, bilinen SQL veritabanlarına çok benzemektedir; fakat onlar gibi istenilen sorgular yapılamıyor. Sütun tabanlı kayıt yapan sistemler genelde birçok farklı makine üzerine dağıtılmış oldukça büyük veriler için kullanılır. Böylelikle çok trafik gören sitelerde okuma/yazma işlemleri hızlandırılmış olur. Tablo 1, bu sistemleri özetlemektedir. Tablo 1. Verileri sütun şeklinde tutan sistemler Örnekleri Cassandra [3], HBase [4], BigTable [5], HyperTable [6] Dağıtık dosya sistemleri Sütunlar, sütun aileleri Hızlı arama, verinin dağıtık olarak depolanması iyi Çok düşük seviye API Anahtar-değer şeklinde depolama yapanlar sistemlerde ana mantık bir hash tablosu kullanarak her anahtar bir değer ile eşleştirilir. Böylece daha küçük verilere daha hızlı erişim sağlanır. Modeli gerçeklemek ve implemente etmek oldukça basittir. Tablo 2 bu sistemleri özetlemektedir. Tablo 2. Anahtar-değer şeklinde depolama yapanlar Örnekleri Riak [7], Tokyo Cabinet/Tyrant [8], Redis [9], Voldemort [10], [11] İçerik ön belleğe alma (özellikle büyük verileri idare etmek için), loglama, arşivleme, vb. Anahtar-değer çiftleri Hızlı arama, verinin dağıtık olarak depolanması iyi Veri karmaşıklığında problem çıkar Doküman tabanlı sistemler Lotus Notes tan esinlenmişler ve anahtar-değer depolamaya oldukça benzerlik göstermektedirler. Veri tutma modeli, anahtar-değer çiftlerinin toplanmasından oluşan versiyonlanmış haldeki dokümanlardır. Yarı yapılandırılmış dokümanlar JSON (JavaScript Object Notation) formatında tutulur. Sorgulama işlemini verimli bir şekilde sağlarlar. Bu kısımla ilgili detaylı bilgi bölüm 3 te verilecektir. Tablo 3 bu sistemleri özetlemektedir. Tablo 3. Doküman tabanlı sistemler Örnekleri CouchDB [12], [13], MongoDb[14], [15] Web ı (anahtar-değer benzeri ; fakat veritabanı değeri bilir) Anahtar-değer koleksiyonlarının koleksiyonu Tam olmayan verilere karşı dayanıklı Standart sorgulama sentaksının olmaması Graf tabanlı sistemler graf teorisini temel alıp düğümlerden oluşur. Düğümler arası ilişkiler saklanır. Graf algoritmaları kolaylıkla kullanılabilir. Tablo 4 bu sistemleri özetlemektedir. Tablo 4. Graf tabanlı sistemler Örnekleri Neo4J [16], InfoGrid [17], Infinite Graph [18] Forum veya bloglar yoluyla sosyal hesaplama, öneri içeren sistemler Düğümler Graf algoritmalarının kullanılabilmesi Bir sorgu için cevap araştırılırken tüm grafın taranması ve cluster yapısına uygun olmaması Sonuç olarak yukarıda da anlatıldığı gibi birçok NoSQL VTYS mevcuttur. Uygulamanın içeriğine, yapılması istenen işlere, hız, işlevsellik ve ölçeklemeye göre daha uygun olan VTYS seçilmelidir. Daha önceki çalışmamızda [19] Fatih projesi için geliştirilmekte olan yerel bulut sunucu tabanlı veri saklama ve içerik dağıtımı gerçeklemesinde verilerin senkronizasyonu için kullandığımız CouchDB yi bu makalede, yine doküman tabanlı olan MongoDB ile yatay ölçeklenebilirlik açısından karşılaştırmaktayız.
3 III. NOSQL VERİTABANLARINDA ÖLÇEKLENEBİRLİK Ölçeklenebilirlikle performans arasındaki farkı bilmek ölçeklenebilirliği daha iyi anlamamızı sağlar. Performans genel olarak bir sistemin yanıt süresi (reponse time) ve tamamlanan işlem sayısı (throughput) gibi özelliklerine refer eder. Dikey ölçekleme ise sistemdeki bir bileşene ekstra donanım ekleyerek hesaplama kapasitesinin artırılmasıdır. Bu işlem daha fazla bellek, daha hızlı CPU veya daha büyük sabit disk ekleme yolu ile yapılır. Yüksek kapasiteli bileşenler elde etmek maliyetli bir iştir. Aslında ölçekleme diye kastedilen şey genelde yatay ölçeklemedir. Yatay ölçekleme denilen şey ise bir sistemin hesaplama kapasitesinin yeni bileşenler devreye sokularak artırılmasıdır. Yatay ölçeklemede her bir bileşenin birbiri ile haberleşmesi sonucunda meydana gelen network aşırı yükü, sistemin toplam hesaplama kapasitesini azaltmaktadır. Ama bu yük ölçekleme yapıldıktan sonra kazanılan performans artışı yanında göz ardı edilebilir. Ölçeklenebilirlikle beraber çoğaltma (replication) ve bölümleme (sharding) işlemleri mümkün hale gelmiştir. Bu kavramları bazı senaryolar üzerinden açıklayabiliriz: İlk senaryo şöyle olsun. Bir kimsenin kitaplarını koyduğu bir kütüphanesi olsun. Bu kimse kitaplarını yok etmek isteyen bir düşmana sahip. Düşmanından kitaplarını korumak için bu kimse farklı lokasyonlarda yeni kütüphane kurar. Her ne zaman bir kitap alsa aynı kitabın bir kopyasını diğer kütüphanelere koyar. Böylelikle düşmanı kütüphanelerden birini yağmalasa diğerlerinde de aynı kitaplar olduğu için kitaplarını korumuş olur. Yani verinin kopyasını farklı sunucularda saklama işi çoğaltmayı ifade eder. Her bir sunucuya replika denir. Şimdi farklı bir senaryo düşünelim. Yine aynı kişi birçok kitaba sahip olsun; fakat düşmanı olmasın. Ama artık tek kütüphane yeterli olmamakta yeni kütüphanelere ihtiyacı vardır. Kitaplarını yazar isimlerine göre A-H ile başlayanları bir kütüphaneye, I-P arasını bir kütüphaneye, R-Z arasını bir kütüphaneye yerleştirmiştir. Yani verileri belirli bölümleme kuralına göre sunuculara dağıtma işi bölümlemeyi ifade eder. Bir başka senaryoda şöyle olsun. Son senaryoda ise aynı kişi hem düşmana sahip olsun hem de kitaplarını tek kütüphaneye sığdıramasın. Bu kimse hem düşmandan kitaplarını korumak hem de kitaplarını kütüphaneye yerleştirmek için artık ilk iki senaryodan çok kütüphaneye ihtiyacı vardır. Yine kitaplarını yazar adlarına göre üçe ayıracak ve düşmandan korumak için her kitaptan üç kopya yapacaksa dokuz sunucuya ihtiyaç vardır (çoğaltma ve bölümleme bir arada). Bu bölümde doküman tabanlı NoSQL VTYS lerden CouchDB ve MongoDB de ölçeklenebilirliğin nasıl yapıldığı anlatılmaktadır. A. CouchDB nin Ölçeklenmesi CouchDB yalnız başına ölçekleme işini destekleyemiyor. CouchDB düğümlerinden (sunucu vs.) bir küme oluşturabilmek için üçüncü parti araçlara ihtiyaç vardır. Bu araçlar BigCouch [20], Lounge [21] ve Pillow dur [22]. Bu çalışmada BigCouch tan yararlanılmıştır. BigCouch açık kaynak kodlu, hataya dayanıklı ve Apache CouchDB API ye uyumludur. BigCouch, Massachusetts merkezli bir şirket olan Cloudant şirketi tarafından piyasaya sürülmüştür. CouchDB yüklü bir sunucu ile nasıl irtibata geçiliyorsa aynı yolla BigCouch yüklü sunucu ile haberleşilir. BigCouch, CouchDB için otomatik olarak bölümleme işini yapmaktadır. Her BigCouch düğümü kümenin parçası olan düğümlerin bir listesini tutar. Her düğüm istekleri eşit olarak değerlendirir. Dokümanlar BigCouch tarafından sunucular (shards) arasında deterministik hash algoritması [23] kullanılarak dağıtılır. Okuma ve yazma işlemleri quorum protokolü [24] kullanılarak gerçeklenir. Bir BigCouch cluster ını kontrol etmek için dört parametre vardır. Bunlar Tablo 5 te özetlenmiştir [25]. Parametre Q N W R Tablo 5. BigCouch cluster parametreleri Tanımı Dokümanın kaç shard a bölüneceğini gösterir. Default olarak sekize setlenmiştir. Her shard ın kaç kez kopyalanacağını gösterir. Default olarak üçe setlenmiştir. Yazma (write) quorum sabiti. W, N ye eşit veya küçük olmalı. Default olarak ikiye setlenmiştir. Okuma (read) quorum sabiti. R, N ye eşit veya küçük olmalı. Default olarak ikiye setlenmiştir. B. MongoDB nin Ölçeklenmesi MongoDB ölçeklenebilir, doküman tabanlı, C++ ile geliştirilmiş açık kaynak kodlu NoSQL bir veritabanıdır. Özellikle hız gerektiren ve klasik VTYS nin çok yavaş kaldığı yerlerde kullanılmaktadır. Kullanım alanları arasında; yüksek hacim/içerikli problemler, analiz için veri saklanması, caching sistemleri, web içerik yönetim sistemleri, web yorum/etiket saklama ve yönetme yer almaktadır. 10gen şirketi (yeni adı ile MongoDB, Inc.), Google Uygulama Motoru na benzer bir servis oluşturduğu sırada, MongoDB geliştirmesi de 2007 yılında başlamıştı. Ocak 2014 itibari ile de en son versiyonu u yayınlamışlardır. Bir MongoDB temel olarak üç tip prosesten oluşmaktadır: (i) verileri depolamak için gerekli olan shard lar, (ii) doğru Configservers Data shards Mongos Clients Şekil 1. Bir cluster ın üç bileşeni veriye ulaşmak için yönlendirme yapan mongos birimi ve (iii) cluster ın durumunu takip etmek için config server lar (Şekil 1 e bakınız).
4 İstemciden gelen isteğin tipine göre mongos lar isteği ilgili shard lara gönderir ve onlardan gelen cevapları birleştirerek tekrar istemciye döner. MongoDB kümesinde dokümanlar kullanıcının belirlediği bölümleme anahtarına (shard key) göre bölümlenmektedir. Bu anahtar indeks yapısına benzemekte ve birden fazla veri alanı içerebilmektedir. Her shard bu bölümleme anahtarına göre dokümanları tutmaktadır. Shard içindeki dokümanlar yığınlar (chunks) şeklinde organize edilmektedir. Config sunucularda her yığının başlangıç ve bitiş anahtarı ve hangi shard ta tutulduğu bilgisi vardır. Bu bilgiler mongos lar tarafından istek olduğunda hangi shard a gidileceğini bulmak için kullanılır. MongoDB de iyi bir bölümleme anahtarı seçilmesi gerekmektedir. Üç türlü seçme yaklaşımı vardır: a- düşük eleman sayılı anahtar (low-cardinality shard key), b- artan sırada anahtar (ascending shard key) ve c- rasgele anahtar (random shard key). Kötü seçilen bölümleme anahtarı yoğun bir yüke veya uygulamanın beklenmeyen bir zamanda çalışmamasına neden olmaktadır. Bunu bir senaryo üzerinden şu şekilde anlatabiliriz. Kullanıcıların bilgilerini tutan bir uygulamamız var. Her doküman kullanıcının hangi kıtada bulunduğunu gösteren bir alana sahip olsun. Şekil 2 deki gibi bölümleme işlemi kullanıcıların bulundukları kıtalara göre yapılabilir. Bir kıtada veri arttığı zaman tek shard yeterli olmayacak ve yeni bir shard eklenmesi gerecek; ama tek anahtar olduğundan yeni shard a veri taşımak mümkün olmayacak. Bunun yerine tek anahtar yerine birden fazla anahtar kullanmak gerekiyor (ülke, kıta). Şekil 2. Kıta başına bir shard [26] RAM den veri okumak diskten veri okumaktan daha hızlıdır. Bundan dolayı veriye mümkün olduğunca RAM den erişmek isteriz. Aynı mantıkla sık kullanılan veriyi tutan zaman damgası (timestamp) gibi bir shard anahtarı tasarlanabilir. Örneğin Twitter benzeri bir servisin gönderilen bir mesajı, kimin gönderdiği, ne zaman gönderildiği gibi bilgileri içeren dokümanları tuttuğunu varsayalım. Bu belgeleri ne zaman gönderildi bilgisine göre (artan sıra shard anahtarı olarak) dağıttığımızı düşünelim. Bu zaman bilgisi sonsuza doğru gittikçe problem oluşturmaktadır. Bir diğer anahtar seçme yöntemi ise rastgele olandır. Bu ise sorgulama hızını düşürmektedir. Bütün anahtar seçimlerinin bir yerde tıkandığı görülmektedir. En iyi anahtar seçimi hibrit olanlardır (artan sıra shard anahtarı ve arama anahtarı). Örneğin kullanıcıların veriye erişim analitiğini tutan bir uygulama düşünelim. Burada yukarıda bahsedilen anahtarlara göre bölümleme yaptığımızda sıkıntılar meydana gelmektedir. Bunu önlemek için kullanıcıların veriye erişimlerini (ay, kullanıcı) anahtarına göre küme oluşturmak daha uygundur. Bu anahtar yapısı görüldüğü gibi ikilidir. İkinci kısmı (search key) sorgulama yapıldığı zaman yararlı olacak şekilde kullanıcı id, dosya adı gibi alanlar seçilmelidir. Uygun anahtar seçiminden sonra veri dağıtıma hazırdır. IV. COUCHDB-MONGODB ÖLÇEKLEME KARŞILAŞTIRMASI Henricsson lisans tezinde Phthon kütüphaneleri yardımıyla MongoDB ve CouchDB nin ekleme (insert) ve bazı sorgulamalara göre hangisinin daha hızlı olduğunu araştırmıştır. Ayrıca farklı boyutlardaki dokümanların tek bir sunucu kullanıldığında bu VYTS lerde ne kadar disk alanı kullandığını incelemiştir. Yaptıkları araştırma sonucunda CouchDB nin MongoDB den daha yavaş olduğu ve daha fazla disk alanı işgal ettiğini saptamışlardır [27]. Bu makalede ise veriler sunuculara dağıtıldığında MongoDB ve CouchDB nin farklı doküman boyutlarına göre okuma ve yazma hızları test edilmiştir. Test işlemi için gerekli olan dokümanların ne olduğundan önce bu iki veritabanının kullandığı veri modeli yapılarını bilmekte fayda vardır. CouchDB de dokümanlar JSON objeleri olarak tutulurlar. JSON [28]; JavaScript tarafından desteklenen sayı, katar, Boole değeri, dizi ve obje gibi veri türlerini desteklemektedir. Her doküman kendisine özgü tekil bir tanımlayıcıya ve revizyon numarasına sahiptir. Doküman revize edildikçe bu numara güncellenmektedir. Örnek bir okul verilerinin JSON formatında tutulması Şekil 3 te gösterilmiştir. { isim : İzmit Lisesi, şehir : Kocaeli, ilçe : İzmit, lokasyon (lat, long) : , , başarıları : [ { ÖSYM : Türkiye 2., yıl : 2012 }, { ÖSYM : Türkiye 3., yıl : 2013 }, ] } Şekil 3. Örnek bir JSON verisi MongoDB ise dokümanları ikili olarak kodlanmış BSON (Binary JSON) [29] objeleri olarak tutmaktadır. Kullanıcı veritabanına veri girişini JSON formatında yapar ve herhangi bir sorgusuna da JSON formatında cevap alır. Diğer bir deyişle kullanıcı hiçbir zaman BSON formatı ile ilgilenmez, ilgili dönüşümler veritabanının kendi içinde halledilir. Javascript sitilinde yazılmış bir dokümanın BSON karşılığı Tablo 6 da verilmiştir. Tablo 6. Javascript ve BSON gösterimi Javascript BSON gösterimi gösterimi { hello : World } \x16\x00\x00\x00\x02hello\x00 \x06\x00\x00\x00world\x00\x00 MongoDB ve CouchDB nin okuma ve yazma performansını test etmek için kişi bilgilerini temsil eden adedi 5-500,000 arasında değişen dokümanlar oluşturulmuştur. Bir
5 kişi Tablo 7 de verilen bilgilere sahiptir. Oluşturulan dokümanların örneği Şekil 4 te verilmiştir. Tablo 7. Test verisindeki anahtar-değerler Anahtar Değer Değerler aralığı İsim Katar 5-15 karakter Maaş Tam sayı Yaş Tam sayı Telefon numarası Katar 10 karakter Evcil hayvan Önceden tanımlanmış katarlar Kedi, köpek, kuş, hamster, balık Şekil 6 Ölçekleme yapılmadan CouchDB-MongoDB okuma performansları karşılaştırılması Şekil 4. Örnek veri seti Karşılaştırma yapılırken kullanılan yazılım ve donanımların özellikleri aşağıdaki gibidir: Centos GNU/Linux 6.4, kernel Apache CouchDB v1.0.4 MongoDB, Inc. MongoDB v2.4.9 Cloudant BigCouch 3 sunucu: Intel Celeron 1,8 GHz, 2 MB önbellek, 2 çekirdekli; 4 GB DDR3; 320 GB SATA (5400 Rpm) HDD Ölçekleme yapmadan (tek sunucu kullanıldığında) CouchDB ve MongoDB yazma (Şekil 5) ve okuma (Şekil 6) hızları farklı boyuttaki dokümanlar üzerinde karşılaştırılmıştır. BigCouch ile ölçekleme yapabilmek için bazı parametrelerin ayarlanması gerekmektedir. BigCouch sunuculara kurulabilmesi içinse bazı ön yüklemelerin (Erlang, OpenSSL, libcurl vb.) yapılmış olması gerekmektedir [30]. Bu yüklemelerden sonra kümedeki her bir düğüme BigCouch yüklenir ve birbirlerinden haberdar edilir. Bu ayarlamalardan sonra düğümlerin port ve admin portları Tablo 8 de verildiği gibi olmaktadır. Tablo 8. Cluster daki düğümlerin port ve admin port numaraları Düğüm Port Admin port Quorum protokolündeki parametrelerden Q (kaç shard) üçe, N (kaç kopya) bire, R (okuma) bire ve W (yazma) bire setlenmiştir. MongoDB de shard işlemi için bölümleme anahtarı olarak kişilere ait yaş değeri ele alınmıştır. Kümede toplamda üç düğüm olduğundan shard lar Şekil 5 te gösterildiği ayarlanmıştır. [18-52) [52, 76) [76-91) Şekil 7. MongoDB shard dizaynı Ölçeklemeden sonra (üç sunucu kullanıldığında) CouchDB ve MongoDB yazma (Şekil 8) ve okuma (Şekil 9) hızları farklı boyuttaki dokümanlar üzerinde karşılaştırılmıştır Şekil 5. Ölçekleme yapılmadan CouchDB-MongoDB yazma performansları karşılaştırılması
6 DrowsyDromedary REST arayüzüne sahiptir. Bunların birbirlerine karşı üstünlükleri araştırılabilir. Şekil 8. Yatay ölçeklemeden sonra CouchDB-MongoDB yazma performansları karşılaştırılması Şekil 9. Yatay ölçeklemeden sonra CouchDB-MongoDB yazma performansları karşılaştırılması V. SONUÇLAR Verilen şartlar altında tek sunucu üzerinde farklı boyuttaki dokümanları yazma/okuma hızı açısından MongoDB, CouchDB den daha hızlıdır. Aynı şekilde yatay olarak ölçekleme yapıldığında da MongoDB daha iyi sonuç vermektedir. Her iki durumda da dokümanların boyutlarının doğrusal bir şekilde artması ile okuma/yazma süreleri de artmaktadır. Yatay ölçekleme yapıldığındaki okuma/yazma performansı ise tek sunucu üzerindeki performanstan yaklaşık iki kat daha iyidir. MongoDB nin daha hızlı olmasının sebebi, veriyi önce RAM de gruplamakta sonra disk e topluca yazmaktadır (lazy writes). CouchDB ise her dokümanı tek tek diske yazmaktadır. CouchDB de dokümanlar her değişiklikte ayrıca versiyonlandığı için hataya dayanıklı ve güçlü için tercih edilebilir. MongoDB için bölümleme anahtarını hibrit oluşturarak ve CouchDB nin quorum parametrelerini daha verimli çalışmasını sağlayacak şekilde seçerek yeni karşılaştırmalar yapılabilir. CouchDB, HTTP REST üzerinden POST, GET, PUT ve DELETE metotlarını dört temel CRUD (create, read, update, delete) için kullanırlar. MongoDB ise Ruby tabanlı TEŞEKKÜR Bu çalışma, TÜBİTAK tarafından 1003 Fatih Projesi Çağrısı kapsamında EEEAG 113E033 nolu proje ile desteklenmektedir. Desteğinden dolayı TÜBİTAK a teşekkür ederiz. KAYNAKLAR [1] N. Lynch, S. Gilbert, Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services, ACM SIGACT News, vol. 33, no. 2, pp , [2] L. Yishan, S. Manoharan, A performance comparison of SQL and NoSQL databases, In: IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM), Aug. 2013, Victoria, BC, pp [3] A. Lakshman, M. Avinash, Cassandra: A Decentralized Structured Storage System, ACM SIGOPS Operating Systems Review, vol. 44, no. 2, pp , [4] Erişim Tarihi: 20 Şubat [5] F. Chang; J. Dean, S. Ghemawat, W.C. Hsieh, D.A. Wallach, M. Burrows, T. Chandra, A. Fikes, R.E. Gruber, Bigtable: A Distributed Storage System for Structured Data, ACM Transactions on Computer Systems (TOCS), vol. 26, no. 2, [6] [Erişim Tarihi: 20 Şubat 2014]. [7] [Erişim Tarihi: 20 Şubat 2014]. [8] [Erişim Tarihi: 20 Şubat 2014]. [9] J.L. Carlson, Redis in Action. Manning Publication, 1st edition, NY:U.S.A, [10] R. Sumbaly, J. Kreps, L. Gao, A. Feinberg, C. Soman, S. Shah, Serving Large-scale Batch Computed Data with Project Voldemort, Proceedings of the 10th USENIX conference on File and Storage Technologies, pp , [11] [Erişim Tarihi: 20 Şubat 2014]. [12] J. Lennon, Beginning CouchDB. Apress Publisher, 1st edition, NY:U.S.A., 2009, [13] S. Unge, Implementing a eventual consistency job distribution with CouchDB, Department of Information Technology, Uppsala University, [14] K. Chodorow, M. Dirolf, MongoDB: The Definitive Guide. O'Reilly Media Publisher; 1st edition, [15] K. Banker, MongoDB in Action. Manning Publication, 1st edition, NY: U.S.A, [16] H. Huang, Z. Dong, Research on architecture and query performance based on distributed graph database Neo4j, 3rd International Conference on Consumer Electronics, Communications and Networks (CECNet), Nov. 2013, Xianning, pp [17] [Erişim Tarihi: 22 Şubat 2014]. [18] [Erişim Tarihi: 22 Şubat 2014]. [19] S. Eken, F. Kaya, Z.İlhan, A. Sayar, A. Kavak, U. Kocasaraç, S. Şahin, Analyzing distributed file synchronization techniques for educational data, International Conference on Electronics, Computer and Computation (ICECCO), 7-9 Nov. 2013, Ankara, Turkey, pp [20] [Erişim Tarihi: 22 Şubat 2014]. [21] [Erişim Tarihi: 22 Şubat 2014]. [22] [Erişim Tarihi: 22 Şubat 2014]. [23] T. Icart. How to hash into elliptic curves, In Shai Halevi, editor, CRYPTO, vol. 5677, Lecture Notes in Computer Science, pp Springer, [24] D. Agrawal, A.J. Bernstein, A nonblocking quorum consensus protocol for replicated data, IEEE Transactions on Parallel and Distributed Systems, vol. 2, no. 2, pp , [25] B. Holt, Scaling CouchDB. O Reilly Publisher, 1st edition, 2011.
7 [26] K. Chodorow, Scaling MongoDB. O Reilly Media Publisher; 1st edition, [27] R. Henricsson, Document Oriented NoSQL Databases: A comparison of performance in MongoDB and CouchDB using a Python interface, Blekinge Institute of Technology, Bachelor thesis, computer science, [28] D. Crockford, RFC 4627-The application/json Media Type for JavaScript Object Notation (JSON) [Erişim Tarihi 5 Mart 2014]. [29] [Erişim Tarihi 5 Mart 2014]. [30] [Erişim Tarihi 7 Mart 2014].
NoSql ve MongoDB. Saygın Topatan
NoSql ve MongoDB Saygın Topatan NoSql ve MongoDB NoSql nedir Neden ihtiyaç duyuldu Tipleri MongoDb Kavramlar Sharding Şema Tasarımı NoSql in geleceği NoSql Nedir? Nedir 2009 başlarında ortaya çıkmış bir
DetaylıÖlçeklenebilir, Yüksek Erişilebilir ve Performanslı Bir Takip ve İzleme Sistemi Mimarisi: Karşılaştırmalı Bir Çalışma
Ölçeklenebilir, Yüksek Erişilebilir ve Performanslı Bir Takip ve İzleme Sistemi Mimarisi: Karşılaştırmalı Bir Çalışma Burak İbrahim Sevindi, Ethem Cem Özkan, Turan Bahattin Özen TÜBİTAK BİLGEM Yazılım
DetaylıSemantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL. R. Orçun Madran Atılım Üniversitesi. www.madran.
Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL R. Orçun Madran Atılım Üniversitesi www.madran.net İçerik NoSQL Ne Değildir? Neden NoSQL? Ne Zaman NoSQL? NoSQL'in Tarihçesi.
DetaylıNoSQL. SQL ve Daha Fazlası (Not Only SQL) Hazırlayan: Ahmet Cevahir ÇINAR
NoSQL SQL ve Daha Fazlası (Not Only SQL) Hazırlayan: Ahmet Cevahir ÇINAR Halkımızın Bilgisine: Bu sunum, en sondaki kaynaklar sayfasında belirtilen içerikler öncülüğünde, tek tek kaynakları belirtilememiş
DetaylıVeritabanı. Ders 2 VERİTABANI
Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın
DetaylıMongoDB ve Diğer Veritabanlarında Sharding
MongoDB ve Diğer Veritabanlarında Sharding Who the f**k is talking? Emir Karaburçak emir.karaburcak@spp42.com @kinchil SPP42 de Yazılım Geliştirme Uzmanı Python, Django, Java, JBoss Seam, Play MongoDB,
DetaylıMobil Cihazlarda Gömülü Veritabanlarının Karşılaştırılması: SqLite ve CouchBase Lite
Mobil Cihazlarda Gömülü Veritabanlarının Karşılaştırılması: SqLite ve CouchBase Lite Erkan Güler 1, Taner Arabacıoğlu 2, Özel Sebetci 3 1 Adnan Menderes Üniversitesi, Bilgisayar Teknolojileri ve Programlama
DetaylıMongoDB. Doğan Aydın. Eylül, 2011
MongoDB Doğan Aydın Eylül, 2011 İçindekiler 1 Giriş.................................................... 2 2 Geleneksel Veri Tabanları Ve MongoDB................................. 3 3 Doküman Odaklı.............................................
Detaylı1 Temel Kavramlar. Veritabanı 1
1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel
DetaylıVERİ TABANI ve YÖNETİMİ
VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -12- TETİKLEYİCİ (TRIGGER) 3 Giriş Trigger lar Trigger lar Ne Zaman Kullanılmalıdır? Klasik Trigger ların Özellikleri
DetaylıVERİ TABANI YÖNETİM SİSTEMLERİ
VERİ TABANI YÖNETİM SİSTEMLERİ ÖĞR.GÖR.VOLKAN ALTINTAŞ 26.9.2016 Veri Tabanı Nedir? Birbiriyle ilişkisi olan verilerin tutulduğu, Kullanım amacına uygun olarak düzenlenmiş veriler topluluğunun, Mantıksal
DetaylıBölüm 1: Veritabanı Yönetim Sistemlerine Giriş
Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş -1- Dr. Serkan DİŞLİTAŞ 1.1. Veri ve Bilgi (Data & Information) Hesaplama, saklama gibi çeşitli işlemler amacıyla bilgisayara verilen sayı, yazı, resim, ses,
Detaylı1 Temel Kavramlar. Veritabanı 1
1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel
DetaylıVeritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri
Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri
DetaylıBüyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan
Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan ARGEDOR Bilişim Teknolojileri ARGEDOR ARGEDOR, şirketlere ve son kullanıcılara yenilikçi bilgiyi işleme çözümleriyle dünya çapında mevcut olan
DetaylıVERİ TABANI YÖNETİM SİSTEMLERİ
VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa
DetaylıUZAKTAN EĞİTİM MERKEZİ
ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını
DetaylıELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI
ELIF KIOTZEOGLOU 0510130077 RESUL MURAD 0510120082 MERT PACOLARI 0510120083 SQL SQL,(İngilizce "Structured Query Language", Türkçe: Yapılandırılmış Sorgu Dili) verileri yönetmek ve tasarlamak için kullanılan
DetaylıVeritabanı Uygulamaları Tasarımı
Veritabanı Uygulamaları Tasarımı Veri Tabanı Veritabanı yada ingilizce database kavramı, verilerin belirli bir düzene göre depolandığı sistemlere verilen genel bir isimdir. Günümüzde özel veya kamu kuruluşların
DetaylıCoğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri
Coğrafi Bilgi Sistemlerine Giriş Ünite 5 - Veri Tabanı Yönetim Sistemleri İçerik Temel kavramlar Veri tabanı modelleri Normalizasyon Coğrafi Bilgi Sistemlerinde veri tabanı yönetimi Temel kavramlar Veri
Detaylı16 Ekim 2010 Özgür Web Günleri Yeditepe Üniversitesi. Nosql Veritabanları
16 Ekim 2010 Özgür Web Günleri Yeditepe Üniversitesi Nosql Veritabanları CAP Theorem Aynı anda aşağıdaki üçü bir arada olamaz! Consistency (Aynı anda tüm birimlerde aynı veri) Availability (Bazı birimlerde
DetaylıVERİ TABANI UYGULAMALARI
VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;
DetaylıVeri Tabanı-I 1.Hafta
Veri Tabanı-I 1.Hafta 2010-2011 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2011 Muhammer İLKUÇAR 1 Veri ve Veri Tabanı Nedir? Veri Bir anlamı olan ve kaydedilebilen
DetaylıBilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN
Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN İçerik Dosya Organizasyonu (File Organization) Veritabanı Sistemleri (Database Systems) BM307 Dosya Organizasyonu (File Organization) İçerik Dosya
DetaylıM2m Sistemlerde Sql Veya Nosql Kullanimi. Using Sql Or Nosql In M2m Systems
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,
DetaylıInternational Conference on Computer Science and Engineering Tekirdağ, Turkey, October 2016
NoSQL veritabanlarında kullanılan veri sıkıştırma yöntemlerinin performans analizi The performance analysis of data compression algorithms used in NoSQL databases Emir ÖZTÜRK 1, Altan MESUT 1, Banu DİRİ
DetaylıMOBİL UYGULAMA GELİŞTİRME
MOBİL UYGULAMA GELİŞTİRME PELİN YILDIRIM FATMA BOZYİĞİT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Veri Saklama 2 Veri Saklama Veri Saklama her appnin ihtiyaci
DetaylıLicense. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları
License c 2002-2016 T. Uyar, Ş. Öğüdücü Veri Tabanı Sistemleri Giriş You are free to: Share copy and redistribute the material in any medium or format Adapt remix, transform, and build upon the material
DetaylıBüyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları
Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları Güven Fidan AGMLAB Bilişim Teknolojileri 18/10/11 GRID ÇALIŞTAYI 2007 1 MapReduce Nedir? Büyük data kümelerini işlemek ve oluşturmak
DetaylıVeri Tabanı Yönetim Sistemleri Bölüm - 3
Veri Tabanı Yönetim Sistemleri Bölüm - 3 İçerik Web Tabanlı Veri Tabanı Sistemleri.! MySQL.! PhpMyAdmin.! Web tabanlı bir veritabanı tasarımı. R. Orçun Madran!2 Web Tabanlı Veritabanı Yönetim Sistemleri
DetaylıBilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı
Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki
DetaylıAlgoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun
DetaylıBilgi Servisleri (IS)
Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN Konu Başlığı Neden ihtiyaç duyulur? Kullanıcılar kimlerdir? Bilgi Servisi türleri MDS ve BDII LDAP Bilgi
DetaylıSQL e Giriş. Uzm. Murat YAZICI
SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile
Detaylıİngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.
İlişkisel Veritabanı Yaklaşımı: İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir. İlişkisel veri tabanı yönetim sistemi verilerin tablolarda satır ve sutunlar halinde tutulduğu
DetaylıFiziksel Veritabanı Modelleme
Fiziksel Veritabanı Modelleme Fiziksel Veritabanı VTYS, verileri yan bellekte tutar. Bu yüzden VTYS lerde sıklıkla READ (yan bellekten okuma) ve WRITE (yan belleğe yazma) işlemi meydana gelir. READ ve
DetaylıKepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış
Kepware Veritabanı Ürünleri Teknolojiye Genel Bir Bakış Gündem Veritabanı Client API teknolojisinin gözden geçirilmesi ODBC istemci sürücüsü- bir KEPServerEX Plug-In Haberleşme Sürücüsüdür. DataLogger-
Detaylı2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar
2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar Öğr. Gör. Saliha Kevser KAVUNCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı
DetaylıVERİ TABANI SİSTEMLERİ
VERİ TABANI SİSTEMLERİ 1- Günümüzde bilgi sistemleri Teknoloji ve bilgi. 2- Bilgi sistemlerinin Geliştirilmesi İşlevsel Gereksinimleri 1.AŞAMA Gereksinim Belirleme ve Analiz Veri Gereksinimleri Gereksinimler
DetaylıVeri Tabanı Hafta Dersi
Veri Tabanı - 1 2. Hafta Dersi Dersin Hedefleri Geleneksel Dosya Sistemleri Veri Tabanı Kavramları Veri Tabanı Yönetim Sistemleri Veri Modelleri Veri nedir? Bilgisayarlarda veri nasıl saklanır? Bilgisayarlardaki
DetaylıVeritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme
Veritabanı Tasarımı Sütun Değerlerini Güncelleme ve Satırları Silme Konular UPDATE komutunu oluşturmak ve çalıştırmak DELETE komutunu oluşturmak ve çalıştırmak Tabloda güncelleme yapmak ya da veri silmek
DetaylıVERİTABANI ORGANİZASYONU
VERİTABANI ORGANİZASYONU Veri nedir? Olgu, kavram ya da komutların, iletişim, yorum ve işlem için elverişli biçimsel gösterimidir. Veriler ölçüm, sayım, deney, gözlem ya da araştırma yolu ile elde edilmektedir.
Detaylıbitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ
bitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ - 150110046 İÇERİK Uygulama ve uygulamaya ilişkin temel kavramların tanıtımı Uygulamanın yapısı Ön yüz Veritabanı Web Servisler K-Means Algoritması ile kategori
DetaylıOracle Database 11g: Introduction to SQL
Oracle Database 11g: Introduction to SQL Mehmet Salih DEVECI GTECH-Kıdemli Veritabanı Yöneticisi Mehmetsalih.deveci@gtech.com.tr BÖLÜM- 1: SQL E GİRİŞ SELECT ifadesinin kabiliyetlerinin ortaya çıkarılması
DetaylıSunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme
Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme Emrah Ayanoğlu, Onur Özcan, Alperen Eraslan Inet-TR 12 8 Kasım 2012 İÇERİK 1 Node.js nedir? Google tarafından Chrome un JavaScript
DetaylıBULUT BİLİŞİM VE BÜYÜK VERİ ARAŞTIRMA LABORATUVARI. Ekim 2017
BULUT BİLİŞİM VE BÜYÜK VERİ ARAŞTIRMA LABORATUVARI Ekim 2017 Bulut Bilişim ve Büyük Veri Araştırma Laboratuvarı (B3LAB) Kamunun ihtiyaçları doğrultusunda, açık kaynak kodlu ve güvenli çözümler için Ar-Ge
DetaylıBIM 312 Database Management Systems. Veritabanı Kavramına Giriş
BIM 312 Database Management Systems Veritabanı Kavramına Giriş Veritabanı Nedir? Veritabanı, birbirleriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasına olanak verecek biçimde saklanmasıyla
DetaylıKüme Bilgisayarlarda PBS Kuyruk Sistemi
Küme Bilgisayarlarda PBS Kuyruk Sistemi Aslı Zengin asli@ulakbim.gov.tr Ankara, Ekim 2007 www.grid.org.tr İÇERİK Küme Bilgisayar Bileşenleri Küme Bilgisayar Kuyruk Sistemi PBS Kuyruk Sistemi Özellikleri
DetaylıState Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;
State Yönetimi State Yönetimi Web Page sınıflarının nesneleri, sayfa sunucu tarafına her defasında gönderildiğinde oluşturulur. Böyle bir durum sayfada kullanıcının girmiş olduğu ve sayfa ile ilişkili
DetaylıPAPERWORK TEKNİK MİMARİ
PAPERWORK ECM TEKNİK MİMARİ 1. Şekilde (1) numara ile gösterilen Content Server adı verilen Uygulama Sunucusudur. Content Server tüm iş mantığını içerir. Veri Tabanına ve arşivlenen belgelere erişim yetkisi
DetaylıİLİŞKİSEL VERİTABANLARI
İLİŞKİSEL VERİTABANLARI Veritabanı Nedir? Veritabanı (database) en basit şekliyle verilerin belirli bir düzene göre tutulduğu, depolandığı bir sistemdir. İlişkisel Veritabanı Nedir? İlişkisel veritabanlarındaki
DetaylıVeritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi
Hedefler Veritabanı Yönetimi Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Veritabanı terimini tanımlamak ve bir veritabanının veri ve bilgi ile
DetaylıVeritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veritabanı Sistemleri
Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veritabanı Sistemleri Konular Büyük Resim Ders Tanıtımı Niçin Veritabanı? Veri ve Bilgi Kavramları Klasik Dosya Yapıları Klasik Dosya Sistemlerinin Zayıflıkarı
DetaylıMongoDB. NoSQL Database
Şirketimizin en çok mücadele ettiği konu olan Big Data problemini çözmekte önemli bir araç olacağına inandığım NoSQL sistemler içerisinde en yaygın kullanılan MongoDB veritabanını sizler için inceleyip
DetaylıBİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS VERİ TABANI BG-313 3/1 3+1+0 3+0,5 5 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS
DetaylıBüyük Veri Analitiği (Big Data Analytics)
Büyük Veri Analitiği (Big Data Analytics) M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Mining of Massive Datasets, Jure Leskovec, Anand Rajaraman, Jeffrey David
DetaylıAsp.Net Veritabanı İşlemleri
Asp.Net Veritabanı İşlemleri Asp.Net Veritabanı İşlemleri Birçok uygulamada bilgiler geçici olarak tutulur ve oturum sonlandırıldığında bu bilgiler bellekten silinir. Ancak etkileşimli web sitelerinde
DetaylıKISITLAMALAR (CONSTRAINT)
KISITLAMALAR (CONSTRAINT) Tablo alanlarına veri girişini kontrol etmeyi amaçlayan düzenlemelerdir. Bir alana girilen değerleri sınırlayan bu düzenlemeler kullanıcı hataları açısından önemlidir. Verilerin
DetaylıVERİTABANI Veritabanı Yönetimi
VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini
DetaylıDENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ
DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Veri Tabanı Yönetimi BİM-324 3/II 3+0+0 3 4,5 Dersin Dili Dersin
DetaylıNFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr
NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr NFS içerik: NFS nedir? Tarihçe NFS sunucu yapılandırma NFS istemci yapılandırma Genel problemler ve
DetaylıHASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI
VERİ TABANI YÖNETİM SİSTEMLERİ HASTANE OTOMASYONU Öğr. Gör. Handan ÇETİNKAYA İstanbul Gelişim Üniversitesi Günümüzde en basitinden en karmaşığına kadar pek çok veritabanı mevcuttur. En basiti Microsoft
DetaylıDosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.
2 Dosya Nedir? Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir. Birincisi, bir sistem görevi yerine getirirken yada bir uygulama
DetaylıÖrnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti
Bu sayfaları okuduğunuza göre bir şekilde bilgisayarlar ve bilgisayar ağlarıyla ilişkiniz olduğunu biliyorum. Ancak yine de en başta niçin bilgisayar ağı kullanıyoruz sorusunun cevabını vermekle işe başlayabiliriz.
DetaylıPostgreSQL'de Ölçekleme
Devrim Gündüz Principal Systems Engineer @ EnterpriseDB devrim.gunduz@enterprisedb.com Twitter : @DevrimGunduz / @DevrimGunduzTR Linkedin: http://www.linkedin.com/in/devrimgunduz Web : http://www.gunduz.org
DetaylıVeritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri
Celal Çeken Veysel Harun Şahin Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri Konular Veritabanı Tasarımı Yaşam Döngüsü Veri Modeli Nedir? Veri Modeli Temel Bileşenleri
Detaylıİnternet Programcılığı
1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı
Detaylıİleri Düzey Bilgisayar Ağları
İleri Düzey Bilgisayar Ağları Ders 5 İnternet te Ses ve Görüntü Transferi İçerik Dağıtım Ağları ve Eşler Arası Ağlar Mehmet Demirci 1 Bugün Multimedia Streaming İçerik Dağıtım Ağları (CDN) Eşler arası
DetaylıVeri Tabanı Sistemleri
Veri Tabanı Sistemleri H. Turgut Uyar Şule Öğüdücü 2005-2016 License You are free to: c 2005-2016 T. Uyar, Ş. Öğüdücü Share copy and redistribute the material in any medium or format Adapt remix, transform,
DetaylıBilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-I Veri Nedir? Bilgisayarların yaygınlaşması ile birlikte bir çok verinin saklanması gerekli hale
Detaylı10-Veri Tabanları. www.cengizcetin.net
10-Veri Tabanları 1 VERİ TABANI VERİTABANI (DATABASE) Birbiri ile ilişkili bir veya daha fazla tablodan oluşan bilgi topluluğudur. Veri tabanındaki tablolara ulaşılarak sorgulama yapılır ve istenilen bilgiler
DetaylıYBS Ansiklopedi. Büyük Veri, TUB Teoremi, ACID ve BASE Yaklaşımları. (Big Data, CAP Theorem, ACID and BASE Approaches) Şadi Evren ŞEKER. 1.
YBS Ansiklopedi www.ybsansiklopedi.com Cilt 4, Sayı 4, Aralık 2017 Büyük Veri, TUB Teoremi, ACID ve BASE Yaklaşımları (Big Data, CAP Theorem, ACID and BASE Approaches) Şadi Evren ŞEKER 1. İstanbul Şehir
DetaylıMobil Cihazlardan Web Servis Sunumu
Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine
Detaylı-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.
T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak
DetaylıİZMİR EKONOMİ ÜNİVERSİTESİ. Central Disc System Merkezi Disk Sistemi
İZMİR EKONOMİ ÜNİVERSİTESİ Central Disc System Merkezi Disk Sistemi AMAÇ Bu sunumda İzmir Ekonomi Üniversitesi Merkezi Disk Sistemi tanıtımı ve teknik detaylarının sunulması amaçlanmıştır. KONULAR Tanımlar
Detaylıİlişkisel Veri Tabanları I
İlişkisel Veri Tabanları I Erdem Alparslan Bahçeşehir Üniversitesi 1 Veri Tabanı Modelleri Veri Tabanları tasarımında kullanılan modeller: Tablolar : Veriler tek bir tabloda veya tablo dizisinde tutulur
DetaylıTarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan
BİLGİ TEKNOLOJİLERİ YÖNETİMİ EĞİTİM MODÜLLERİ Tarih Saat Modül Adı Öğretim Üyesi 01/05/2018 Salı Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan Bu dersin amacı, bilgisayar bilimlerinin temel kavramlarını
DetaylıVeritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş
Veritabanı Tasarımı İlişkisel Veritabanı Kavramlarına Giriş Amaç Bu ders aşağıdaki hedefleri kapsamaktadır: Birincil anahtar tanımlama İkincil anahtar tanımlama Sütun bütünlüğü kuralı tanımlama Satır,
DetaylıGenel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler
Genel Kavramlar Veri Nedir? Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar Veri Tabanı Nedir? Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Veritabanı Yönetim Sistemi (DBMS)Nedir?
DetaylıVERİ TABANI YÖNETİMİ. Yrd.Doç.Dr. Füsun BALIK ŞANLI 2013-2014 YTÜ
VERİ TABANI YÖNETİMİ Yrd.Doç.Dr. Füsun BALIK ŞANLI 2013-2014 YTÜ Ders Düzeni Ders Uygulama Ödev Sınavlar 1. Ara Sınav 2. Ara Sınav Yıl Sonu Sınavı Sınavlar 2 Başarı Kriterleri Yıliçi başarı notu: (2 Yıliçi
DetaylıDers Kodu Yarıyıl T+U Saat Kredi AKTS. Programlama Dilleri
DERS BİLGİLERİ Ders Kodu Yarıyıl T+U Saat Kredi AKTS Programlama Dilleri 356 6 2+2 4 5 Ön Koşul Dersin Dili Dersin Seviyesi Dersin Türü Dersi Veren Öğretim Elemanı Türkçe Lisans Zorunlu Arş. Grv. İlyas
DetaylıTESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi
1. 2. 3. 4. 5. 6. Görünüm (view) için özellikle aşağıdakilerden hangisi söylenebilir?? a) Veritabanındaki kayıtlı verileri düzenlemek, yönetmek ve elde etmek için kullanılan bir dildir b) Bir ilişkinin
DetaylıSOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma
SOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma Çiğdem İNAN, M. Fatih AKAY Çukurova Üniversitesi Bilgisayar Mühendisliği Bölümü Balcalı-ADANA İçerik Çalışmanın
DetaylıPostgreSQL ile NoSQL. Gereksinimlerinizi Karşılamak
PostgreSQL ile NoSQL Presentation Title Gereksinimlerinizi Karşılamak Presentation Sub-Title Devrim GÜNDÜZ @DevrimGunduz @DevrimGunduzTR Principal Systems Engineer EnterpriseDB devrim.gunduz@enterprisedb.com
DetaylıVERİ TABANI YÖNETİM SİSTEMLERİ. Öğr. Gör. Selçuk Özkan
VERİ TABANI YÖNETİM SİSTEMLERİ Öğr. Gör. Selçuk Özkan Giriş Veritabanı kavramı ilk olarak 1980 li yıllarda ortaya atılmış olmasına rağmen; günümüzde hemen hemen tüm veri kullanılan alanlarda Veritabanı
DetaylıAdvanced Oracle SQL Tuning
Advanced Oracle SQL Tuning Eğitim Takvimi Tarih Eğitim Süresi Lokasyon 30 Ekim 2018 2 Gün Bilginç IT Academy Eğitim Detayları Eğitim Süresi : 2 Gün Kontenjan : 16 Ön Koşullar : Herhangi bir ön koşul yoktur.
DetaylıVeritabanı Yönetim Sistemleri, 2. basım Zehra ALAKOÇ BURMA, 2009, Seçkin Yayıncılık
Veri Kaynaklar Veri Tabanı Sistemleri, 2. basım Prof. Dr. Ünal YARIMAĞAN, 2010, Akademi Yayınevi Veritabanı Yönetim Sistemleri, 2. basım Zehra ALAKOÇ BURMA, 2009, Seçkin Yayıncılık Veritabanı ve Uygulamaları
DetaylıİNFOSET İNFOSET Ses Kayıt Sistemi v2.0. Sistem Kataloğu
İNFOSET İNFOSET Ses Kayıt Sistemi v2.0 Sistem Kataloğu İ N F O S E T S E S K A Y I T S İ S T E M İ V 2. 0 Sistem Kataloğu İnfoset Yazılım Marmara Cad.Yüksel Sok. 6/7 Pendik-İstanbul Telefon 216 379 81
DetaylıDüşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?
Başlangıç Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir? Bilgisayar Bilgisayar, kendisine verilen bilgiler
Detaylı1-20 Kullanıcı. 2*Xeon 2.4 GHZ 4 GB 2*146 GB 15k (Raid 1) c: 30 GB, d: 110. 21-40 Kullanıcı. 21-40 Kullanıcı. 41-80 Kullanıcı.
OPERA 1-20 Kullanıcı SINGLE SERVER 2*Xeon 2.4 GHZ 4 GB 2*146 GB 15k (Raid 1) c: 30 GB, d: 110 SINGLE SERVER 21-40 Kullanıcı 4*Xeon 2 GHZ 6GB 8*146 GB 15k (Raid 1+0) c:=40 GB, d:>=540 APPLICATION SERVER
DetaylıBil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi
Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,
DetaylıİNTERNET PROGRAMCILIĞI DERSİ
İNTERNET PROGRAMCILIĞI DERSİ Dersin Modülleri İnternet Programcılığı 1 İnternet Programcılığı 2 İnternet Programcılığı 3 İnternet Programcılığı 4 İnternet Programcılığı 5 Kazandırılan Yeterlikler Programlama
DetaylıSORGULAR VE ÇEŞİTLERİ II
Ünite 8 SORGULAR VE ÇEŞİTLERİ II Öğr. Gör. Kemal ÖZCAN Bu ünitede, Sorgular ve Çeşitleri konusu ele alınacaktır. Yapılacaklar Burada yazılan SQL ifadeleri MS SQL SERVER, ORACLE ve MySQL veritabanı sistemlerinin
DetaylıDNS Nedir? HİKMET TÜYSÜZ
DNS Nedir? 14545568 HİKMET TÜYSÜZ DNS DNS, Domain Name System in kısaltılmış şeklidir. Türkçe karşılığı ise Alan İsimlendirme Sistemi olarak bilinir. DNS, 256 karaktere kadar büyüyebilen host isimlerini
DetaylıSistem Gereksinimleri Opera v5
Opera v5 1-20 Kullanıcı SINGLE SERVER 2*Xeon 2.4 GHZ 4 GB 2*146 GB 15k (Raid 1) c: 30 GB, d: 110 SINGLE SERVER 21-40 Kullanıcı 4*Xeon 2 GHZ 6GB 8*146 GB 15k (Raid 1+0) c:=40 GB, d:>=540 21-40 Kullanıcı
DetaylıVeritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme
Veritabanı Tasarımı Kullanıcı Erişimini Kontrol Etme Konular Nesne ayrıcalıkları ve sistem ayrıcalıkları arasındaki farkı karşılaştırma Bir kullanıcının bir veritabanınaerişimini etkinleştirmek için gerekli
DetaylıVERİ TABANI YÖNETİM SİSTEMLERİ I
BÖLÜM 12 12. SQL de YÖNETİMSEL FONKSİYONLAR 12.1. VIEWS ( Tablo Görünümü) Tablo görünümleri veri tabanında tanımı olan tablolardan sorgulama sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar.
DetaylıDGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr.
DGridSim Gerçek Zamanlı Veri Grid Simülatörü Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Sistem Mimarisi DGridSim katmanlı bir yapı göz önünde bulundurularak
Detaylı