Turkcell | Geleceği Yazanlar

402: MongoDBBaşlangıç seviyesi derslerde Web Programlama uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Tablo ve Veri Tipleri

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 12.09.2019 tarihinde güncellendi
Eğitmen : mckare
Etiketler : web-programlama

Doküman, MongoDB’de veri depolama birimidir. Döküman, veriyi depolamak için JSON stilinde bir yapı kullanır. (JavaScript Object Notation).

JSON dokümanları için basit bir örnek

site : http://gelecegiyazanlar.turkcell.com.tr

şeklinde olabilir. Genellikle nesne (object) dokümana referans verilir. Dokümanlar ilişkisel veritabanı yönetim sistemindeki (Relational Data Base System-RDBS) kayıtlara (records) karşı gelir. Aşağıdaki tablo MongoDB ile ilişkisel veritabanı tablo yapısını karşılaştırmaktadır:

İlişkisel Veri Tabanı Sistemi

MongoDB

Table (Tablo)

Collection (Koleksiyon)

Column (Sütun)

Key (Anahtar)

Value (Değer)

Value (Değer)

Records / Rows (Kayıtlar / Satırlar)

Document / Object (Döküman / Nesne)

Aşağıdaki tablo ise MongoDB’de kullanılabilecek veri tiplerini listelemektedir:

Veri Tipi

Tanım

String

UTF-8 karakter dizisi

İnteger

Tamsayı

Boolean

Mantıksal true / false değer

Null

Boş

Array

Veriler dizisi

Object

Nesne

Timestamp

Zamana referans veren 64 bitlik değer

ObjectID

Her dokümana özgü eşsiz (unique) anahtar

KOLEKSİYONLAR (Collections)

Koleksiyon çok sayıda doküman içerebilir ve bunları saklamak için kullanılır. Koleksiyonu ilişkisel veritabanı sistemindeki tabloya benzetebiliriz. Koleksiyonun içerdiği dokümanların her biri farklı bir yapıda olabilir. Çünkü MongoDB, şemadan bağımsız (schema-free) bir veritabanı sistemidir.

İlişkisel veritabanı sistemlerinde bilindiği gibi, şema, veri tabanında saklanacak verilerin genel formatını belirlemektedir. MongoDB’de ise bu tür bir yapı formatına ihtiyaç yoktur. Aşağıdaki farklı yapıda iki doküman aynı koleksiyon içinde saklanabilir:

{"kitap" : "SQL"} {"dersnotu" : 129}

ÖLÇEKLENEBİLİRLİK (SCALABILITY)

Yazılım geliştiricilerin en önemli problemlerinden biri ölçekleme problemidir. Bunun anlamı, depolanması gereken veri miktarı büyüdükçe nasıl hareket edileceğidir.

Bu konuda iki yaklaşım mevcuttur:

Yukarıya doğru genişleme (scale up): Bu yaklaşımda veri miktarı büyüdükçe daha büyük bilgisayar kullanmak söz konusudur. Önemli sakıncalar,

a) Bilgisayar gücü arttıkça maliyet çok hızlı artmaktadır.

b) Bilgisayarı büyütmek için de bir üst sınır mevcuttur.

Yatay genişleme (scale out or horizontally): Bu yaklaşımda veri miktarı arttıkça, yeni bir makul boyutta sunucu (server) alınarak mevcut kümeye (cluster) eklenir. Çok daha kolay ve esnek bir ölçekleme yöntemidir, ancak en büyük sakıncası, bilgisayar kümesinin boyutu büyümüşse (yüzlerce, binlerce) bu kümenin nasıl yönetileceğidir.

MongoDB ikinci yaklaşıma göre (yatay genişleme) tasarlanmıştır. Belgeye dayalı model yaklaşımı sayesinde, veritabanının sunucular arasında dağıtılması daha kolay olmaktadır. MongoDB, verinin dengeli dağıtılması konusuna özel önem vermekte, belgeleri bilgisayarlar arasında dengeli dağıtmakta ve belli bir dokümanı talep eden kullanıcının, doğru sunucuya yönelmesini de sağlamaktadır. Böylece yazılım geliştiriciler, ölçekleme problemi ile uğraşmak yerine, kendi esas işleri olan yazılım geliştirmeye konsantre olabilmektedirler. Bilgisayar kümesinin yeni bilgisayarlara ihtiyacı olduğunda, bunlar kümeye kolayca eklenmekte ve Mongo DB, veriyi yeniden bilgisayarlar arasında en uygun biçimde dağıtmaktadır.

MongoDB’nin Temel Özellikleri

MongoDB, genel maksatlı bir veritabanı sistemidir; veri oluşturma, okuma, güncelleme ve silme işlemlerinin dışında, ölçekleme problemini de yukarda anlatıldığı biçimde kolayca çözmektedir.

MongoDB, ikincil indekslerin (secondary indexes) oluşturulmasını desteklemektedir. Böylece çok daha hızlı sorgular düzenlenebilir. Ayrıca, unique (tek) ya da bileşik (compound), mekansal (geospatial) ve full-metin indeksleri oluşturma yeteneklerine de sahiptir. Ayrıca basit parçalardan karmaşık veri yapıları oluşturma yetenekleri de mevcuttur (aggregation). MongoDB’de ayrıca belirli bir süre için saklanan veri koleksiyonları oluşturma özelliği de mevcuttur. MongoDB, kolay kullanımlı protokollerle, büyük veri dosyalarını saklama imkanı da sağlar.

İlişkisel modelde yaygın işlemler olan birleştirme (join) ya da çoklu satır hareketleri (multirow transactions) MongoDB’de mevcut değildir. Çünkü bu özelliklerle ölçeklenebilirlik problemini kolayca çözmek olası değildir. MongoDB’nin her özelliği, büyük miktarda veri ile çalışırken yüksek performans sağlama, hızdan taviz vermeme üzerine kurulmuştur. O nedenle de ilişkisel modeldeki bazı işlemleri kolayca yapamayabilir.

MongoDB: İlk Kullanım

Bu bölümde MongoDB ile ilişkili temel kavramları vereceğiz.

BELGE (DOCUMENT)

MongoDB’de belge, temel veri birimidir. Kabaca ilişkisel modeldeki satır (row) yapısına benzetilebilir, ancak ondan çok daha zengin içeriklidir.

KOLEKSİYON (COLLECTION)

Benzer şekilde, koleksiyon da ilişkisel modelin dinamik şemasındaki bir tabloya (table) benzetilebilir.