Ana içeriğe geç

NoSQL

Not Only SQL (Yalnızca SQL Değil)

Okunuşu
no es-kyu-el ya da no sikuıl
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/nosql

Kısaca

NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer çifti, geniş sütun ya da çizge gibi başka modellerde saklayan veritabanı ailesidir.

NoSQL nedir?

NoSQL, tabloların anahtarlarla bağlandığı geleneksel ilişkisel modeli kullanmayan veritabanları için kullanılan şemsiye bir terimdir. Ad genellikle "not only SQL" (yalnızca SQL değil) diye okunur; çünkü bu veritabanlarının çoğu hâlâ bir sorgu dili sunar, hatta bazıları SQL benzeri sözdizimini bile destekler.

Dört ana tür vardır. MongoDB gibi doküman veritabanları JSON benzeri dokümanları saklar; Redis gibi anahtar-değer depoları her anahtarı bir değere eşler, tıpkı dev bir sözlük gibi; Apache Cassandra gibi geniş sütunlu depolar veriyi birçok makineye yayılmış esnek sütunlarda düzenler; Neo4j gibi çizge veritabanları ise düğümleri ve aralarındaki ilişkileri saklar.

NoSQL veritabanları büyük web uygulamaları için popüler oldu; çünkü çoğu yatay ölçeklenecek biçimde, yani veriyi birçok sunucuya yayacak şekilde tasarlanmıştır ve sıklıkla esnek bir şemaya izin verir; böylece aynı koleksiyondaki kayıtların farklı alanları olabilir. Önbellekleme, kullanıcı oturumları, gerçek zamanlı analitik, ürün katalogları ve sosyal ağlarda yaygındırlar.

SQL ve NoSQL karşılaştırması bir yarış değil, bir ödünleşimdir. İlişkisel veritabanları katı bir şema uygular ve karmaşık sorgularda ile çok satırlı işlemlerde (transaction) üstündür; NoSQL veritabanları ise bu güçlerin bir kısmını belirli erişim örüntülerinde esneklik, ölçek ya da hız karşılığında feda eder. Bugün sınır daha bulanık: birçok NoSQL veritabanı işlemleri destekliyor, PostgreSQL gibi ilişkisel veritabanları da JSON saklayıp sorgulayabiliyor.

Bir bakışta

Aynı müşteri ve siparişleri iki şekilde saklanmış: ilişkisel bir veritabanında user_id ile bağlanan users ve orders tablolarında satırlar olarak, doküman veritabanında ise siparişleri içine yerleştirilmiş tek bir doküman olarak.ilişkisel: tablolar + anahtarlaridname7Adaiduser_iditem17book27penuser_id → iddoküman: tek kayıt, iç içe{ "name": "Ada","orders": [{ "item": "book" },{ "item": "pen" } ] }dokümananahtar-değergeniş sütunçizge
Doküman veritabanları NoSQL'in bir türüdür; anahtar-değer, geniş sütunlu ve çizge veritabanları diğerleridir. Hangisinin uyduğu verinin nasıl okunduğuna bağlıdır.

Önemli noktalar

  • NoSQL, "hiç SQL yok" değil, "yalnızca SQL değil" anlamına gelir.
  • Ana türler doküman, anahtar-değer, geniş sütun ve çizge veritabanlarıdır.
  • Birçok NoSQL veritabanı, çok sayıda sunucuya yatay olarak ölçeklenir.
  • Şemalar genellikle esnektir; kayıtların farklı alanları olabilir.
  • SQL ya da NoSQL seçimi, verinize ve onu nasıl sorguladığınıza bağlıdır.

Örnek

MongoDB'de doküman saklamak ve sorgulamakjavascript
// Using the MongoDB Node.js driver
const users = db.collection("users");

// Documents in the same collection can have different fields
await users.insertOne({ name: "Ada", skills: ["math", "code"] });
await users.insertOne({ name: "Linus", country: "Finland" });

// Find users whose skills array contains "code"
const coders = await users.find({ skills: "code" }).toArray();

Sık sorulan sorular

SQL ile NoSQL arasındaki fark nedir?

SQL veritabanları veriyi sabit şemalı tablolarda saklar ve sorgular için SQL kullanır; NoSQL veritabanları ise doküman ya da anahtar-değer çifti gibi başka modelleri, genellikle esnek bir şemayla kullanır. SQL veritabanları karmaşık sorgularda ve tutarlılıkta güçlüdür; NoSQL veritabanları çoğunlukla esneklik ve yatay ölçek için seçilir.

MongoDB bir NoSQL veritabanı mıdır?

Evet. MongoDB, en yaygın kullanılan NoSQL türlerinden biri olan bir doküman veritabanıdır ve veriyi JSON benzeri dokümanlar olarak saklar.

NoSQL veritabanları işlemleri (transaction) destekler mi?

MongoDB dahil birçok modern NoSQL veritabanı çok dokümanlı işlemleri destekler, ancak sağlanan garantiler ürüne göre değişir. Geçmişte birçok NoSQL sistemi yalnızca tek bir kayıtta atomik değişiklik garanti ediyordu.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar