DocumentDB SQL - Genel Bakış

DocumentDB, Microsoft'un Azure üzerinde çalışan en yeni NoSQL belge veritabanı platformudur. Bu eğiticide, DocumentDB tarafından desteklenen özel SQL sürümünü kullanarak belgeleri sorgulama hakkında her şeyi öğreneceğiz.

NoSQL Belge Veritabanı

DocumentDB, Microsoft'un en yeni NoSQL belge veritabanıdır, ancak NoSQL belge veritabanı dediğimizde, NoSQL ve belge veritabanı ile tam olarak neyi kastediyoruz?

  • SQL, ilişkisel veritabanlarının geleneksel bir sorgu dili olan Yapılandırılmış Sorgu Dili anlamına gelir. SQL genellikle ilişkisel veritabanları ile eşitlenir.

  • Bir NoSQL veritabanını ilişkisel olmayan bir veritabanı olarak düşünmek gerçekten daha yararlıdır, bu nedenle NoSQL gerçekten ilişkisel olmayan anlamına gelir.

Aşağıdakiler gibi anahtar değer depolarını içeren farklı NoSQL veritabanı türleri vardır:

  • Azure Tablo Depolama
  • Cassandra gibi sütun tabanlı mağazalar
  • NEO4 gibi grafik veritabanları
  • MongoDB ve Azure DocumentDB gibi belge veritabanları

Neden SQL Sözdizimi?

Bu ilk başta garip gelebilir, ancak NoSQL veritabanı olan DocumentDB'de SQL kullanarak sorgulama yapıyoruz. Yukarıda belirtildiği gibi, bu, JSON ve JavaScript anlambilimine dayanan özel bir SQL sürümüdür.

  • SQL sadece bir dildir, ancak aynı zamanda zengin ve etkileyici olan çok popüler bir dildir. Bu nedenle, veritabanınızdan belge almak istiyorsanız öğrenmemiz gereken sorguları ifade etmenin yepyeni bir yolunu bulmak yerine, SQL'in bir lehçesini kullanmak kesinlikle iyi bir fikir gibi görünüyor.

  • SQL, ilişkisel veritabanları için tasarlanmıştır ve DocumentDB, ilişkisel olmayan bir belge veritabanıdır. DocumentDB ekibi aslında SQL sözdizimini belge veritabanlarının ilişkisel olmayan dünyasına uyarladı ve bu, JSON ve JavaScript'te SQL'in köklendirilmesinden kasıt budur.

  • Dil hala tanıdık SQL olarak okuyor, ancak anlambilimin tümü ilişkisel tablolardan ziyade şemasız JSON belgelerine dayanıyor. DocumentDB'de SQL veri türleri yerine JavaScript veri türleri ile çalışacağız. SELECT, FROM, WHERE ve benzerlerine aşina olacağız, ancak sayılar ve dizelerle sınırlı olan JavaScript türleri, nesneler, diziler, Boolean ve null, geniş kapsamlı SQL veri türlerinden çok daha azdır.

  • Benzer şekilde, ifadeler bir tür T-SQL yerine JavaScript ifadeleri olarak değerlendirilir. Örneğin, normal olmayan veriler dünyasında, satırlar ve sütunlarla değil, iç içe diziler ve nesneler içeren hiyerarşik yapılara sahip şema içermeyen belgeler ile ilgileniyoruz.

SQL nasıl çalışır?

DocumentDB ekibi bu soruyu çeşitli yenilikçi yollarla yanıtladı. Bunlardan birkaçı aşağıdaki gibi listelenmiştir -

  • İlk olarak, bir belgedeki her özelliği otomatik olarak indekslemek için varsayılan davranışı değiştirmediğinizi varsayarak, belge içinde ne kadar derinlemesine iç içe geçmiş olursa olsun, herhangi bir özelliğe giden yolda gezinmek için sorgularınızda noktalı gösterimi kullanabilirsiniz.

  • İlişkisel dünyadaki iki tablo arasında bir birleştirmenin gerçekleştirilmesine çok benzer bir şekilde, iç içe geçmiş dizi öğelerinin bir belge içindeki üst öğeleriyle birleştirildiği bir belge içi birleştirme de gerçekleştirebilirsiniz.

  • Sorgularınız, belgeleri olduğu gibi veritabanından döndürebilir veya istediğiniz kadar çok veya az belge verisine dayalı olarak istediğiniz herhangi bir özel JSON şeklini yansıtabilirsiniz.

  • DocumentDB'deki SQL, aşağıdakiler de dahil olmak üzere yaygın işleçlerin çoğunu destekler:

    • Aritmetik ve bitsel işlemler

    • VE ve VEYA mantığı

    • Eşitlik ve aralık karşılaştırmaları

    • Dize birleştirme

  • Sorgu dili ayrıca bir dizi yerleşik işlevi de destekler.