Sobes.tech
Junior

NoSQL veritabanları nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

NoSQL (Not Only SQL), geleneksel tablolarla sabit şemaya sahip olmayan yapıları kullanan bir sınıf veritabanı yönetim sistemidir. Büyük miktarda yapılandırılmamış, yarı yapılandırılmış ve çok yapılandırılmış verilerle çalışmak üzere tasarlanmışlardır ve esnek ölçeklenebilirlik ile yüksek kullanılabilirlik sağlarlar.

NoSQL veritabanlarının ana kategorileri:

  • "Anahtar-değer" (Key-Value Stores): Verileri anahtar-değer çiftleri olarak saklarlar, burada anahtar değeri benzersiz şekilde tanımlar.
    # Bir anahtar-değer deposunda veri gösterimi örneği
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Sütunlu" (Columnar Databases): Verileri satır yerine sütunlar halinde saklarlar. Analitik sorgular ve büyük veri işleme için optimize edilmiştir.
  • "Belge" (Document Databases): Verileri belgeler (örneğin, JSON, BSON, XML) biçiminde saklarlar. Veri şeması esnektir.
    // Belge veritabanında bir belge örneği
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["elektronik", "mobil"]
    }
    
  • "Graf" (Graph Databases): Düğümler (noktalar) ve kenarlar (ilişkiler) biçiminde temsil edilen verilerin saklanması ve işlenmesi için tasarlanmıştır. İlişkilerin analizinde kullanılır.

SQL tabanlı ilişkisel veritabanlarından farkları:

Özellik İlişkisel (SQL) NoSQL
Veri şeması Sabit, katı Esnek, dinamik
Ölçeklenebilirlik Dikey (sunucu gücünü artırma) Yatay (sunucu ekleme)
Normalizasyon Yüksek (fazlalığı azaltma) Düşük (performans için veri çoğaltma)
ACID işlemleri Genellikle tam destek Değişken destek (bazen BASE)
Sorgu dili SQL Çeşitli (genellikle API, özgü diller)

NoSQL veritabanları, yüksek ölçeklenebilirlik, şema esnekliği, büyük veri işleme hızı (Big Data), yarı yapılandırılmış veya yapılandırılmamış verilerle çalışma veya belirli veri modelleri (örneğin, grafikler) gerektiren senaryolar için tercih edilir.