Beyza'nın Blogu

NoSQL

• İlişkisel Veri Tabanı Yönetim Sistemleri

• Oracle
• Sybase
• MSSQL Server
• PostgreSQL
• MySQL

– Scale Up : İlişkisel veri tabanlarında veri büyüdükçe veri tabanı da büyümelidir. Teorik olarak sınırlılardır. Sunucu ve yazılımsal limitleri vardır.
– Structured Data : Yapısal veri tutarlar. Tablolar, kolonlar, satırlar, primery key’ler, index’ler structured data üzerinde oluşturulabilirler.
– Atomic Transactions (ACID): Atomik işlemler yapılır. Bir işlem bitmeden diğer işleme başlanılmaz. İşlem yarıda kesilmez.Veritabanı uyumludur. Herhangi bir uyuşmazlığı çözebilecek teknolojileri vardır.Consistency ve atomitcy gibi problemlere çözümleri vardır. İşlemler birbirine karışmaz. Veriler diske yazıldığı için kalıcıdır.
– Schema on Write (Object Relational Impedance Mismatch): Nesne yönelimli programlada buna yönelik bazı uml şemaları ve veritabanı şeması vardır. Bunların birbiriyle uyumlu olmama ihtimali vardır.
– Ortak bir CRUD dili yani SQL vardır. Bu yüzden veritabanı sistemlerinin spesifik bir dili yoktur.
*CRUD (Create, Read, Update, Delete)

• NOSQL

– Scale Out: Veri büyüdükçe veritabanı büyümez yeni veritabanları eklenir. Teorik olarak sınırsızlardır.
– Semi Structured, UnStructured: Veriler yarı yapısal ya da tamamen yapısızdır. Meta data’sı olmayan veriler buna örnektir.
– Eventual Consistency (BASE): Temel olarak açıktır. Veri en son en güncel halinde olmayabilir. Veriler güncellenme ve değişim sürecinde olabilir. Verileri kaybolmaya müsaittir. Kalıcı değildir.
– Schema on Read (OOP): UML şemaları ve veritabanı şemaları birbiriyle uyumludur.
– İlişkisel Veri Tabanlarındaki gibi ortak bir CRUD dili yoktur.
*CRUD (Create, Read, Update, Delete)
– Sorgulamalar genellikle API (Application Programming Interface)’ler ve kütüphaneler aracılığıyla yapılır. API’lerin içinde komut paketleri vardır.
– Arayüz programlama dillerinden Java, C, C++, C#, PHP, Nodejs, Javascript, … kullanılabilir.
– Bazı NoSQL veritabanlarının kendine özel dilleri vardır:
MongoDB -> MQL (MongoDB Query Language)
CassandraDB -> CQL (Cassandra Query Language)

NoSQL Veri Tabanlarında CRUD işlemleri

*CRUD (Create, Read, Update, Delete)

Örnek olarak MongoDB‘yi ele alırsak:

Create Data: db.collection.insertOne(), db.collection.insertMany()

Read Date: db.collection.find()

UPDATE Data: db.collection.UpdateOne(), db.collectionUpdateMany()
db.collectionReplaceOne()

DELETE Data: db.collectionDeleteOne(),, db.collectionDeleteMany()

Scroll to Top