Azure SQL Veritabanı ve SQL Yönetilen Örneği çoklu model özellikleri
Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği
Çok modelli veritabanları, verileri ilişkisel veriler, grafik, JSON veya XML belgeleri, uzamsal veriler ve anahtar-değer çiftleri gibi birden çok biçimde depolamanıza ve bunlarla çalışmanıza olanak tanır.
Azure SQL ürün ailesi, çeşitli genel amaçlı uygulamalar için en iyi performansı sağlayan ilişkisel bir model kullanır. Ancak Azure SQL Veritabanı ve SQL Yönetilen Örneği gibi Azure SQL ürünleri ilişkisel verilerle sınırlı değildir. İlişkisel modelle sıkı bir şekilde tümleştirilmiş ilişkisel olmayan biçimler kullanmanızı sağlar.
Aşağıdaki durumlarda Azure SQL'in çok modelli özelliklerini kullanmayı göz önünde bulundurun:
- NoSQL modelleri için daha uygun olan bazı bilgilere veya yapılara sahipsiniz ve ayrı bir NoSQL veritabanı kullanmak istemiyorsunuz.
- Verilerinizin çoğu ilişkisel modele uygundur ve verilerinizin bazı bölümlerini NoSQL stilinde modellemeniz gerekir.
- Transact-SQL dilini kullanarak hem ilişkisel hem de NoSQL verilerini sorgulayıp analiz etmek ve ardından bu verileri SQL dilini kullanabilen araçlar ve uygulamalarla tümleştirmek istiyorsunuz.
- Analizlerinizin performansını veya NoSQL veri yapılarınızın işlenmesini geliştirmek için bellek içi teknolojiler gibi veritabanı özelliklerini uygulamak istiyorsunuz. verilerinizin kopyalarını oluşturmak ve bazı analitik iş yüklerini birincil veritabanından boşaltmak için işlem çoğaltması veya okunabilir çoğaltmalar kullanabilirsiniz.
Aşağıdaki bölümlerde Azure SQL'in en önemli çok modelli özellikleri açıklanmaktadır.
Not
Veritabanında depoladığınız tüm verilere erişmek için aynı Transact-SQL sorgusunda JSONPath ifadelerini, XQuery/XPath ifadelerini, uzamsal işlevleri ve graf sorgu ifadelerini kullanabilirsiniz. Transact-SQL sorguları yürütebilen herhangi bir araç veya programlama dili, çok modelli verilere erişmek için bu sorgu arabirimini de kullanabilir. Bu, veri modelleri için özel API'ler sağlayan Azure Cosmos DB gibi çok modelli veritabanlarından önemli farktır.
Grafik özellikleri
Azure SQL ürünleri, bir veritabanında çoka çok ilişkileri modellemek için graf veritabanı özellikleri sunar. Grafik, düğümlerden (veya köşelerden) ve kenarlardan (veya ilişkilerden) oluşan bir koleksiyondur. Düğüm bir varlığı (örneğin, bir kişiyi veya kuruluşu) temsil eder. Kenar, bağlandığını iki düğüm arasındaki bir ilişkiyi temsil eder (örneğin, beğeniler veya arkadaşlar).
Graf veritabanını benzersiz hale getiren bazı özellikler şunlardır:
- Kenarlar, grafik veritabanındaki birinci sınıf varlıklardır. Kendileriyle ilişkilendirilmiş öznitelikleri veya özellikleri olabilir.
- Tek bir kenar, grafik veritabanındaki birden çok düğümü esnek bir şekilde bağlayabilir.
- Desen eşleştirme ve çok atlamalı gezinti sorgularını kolayca ifade edebilirsiniz.
- Geçişli kapanışı ve çok biçimli sorguları kolayca ifade edebilirsiniz.
Graf ilişkileri ve graf sorgusu özellikleri Transact-SQL ile tümleştirilir ve temel veritabanı yönetim sistemi olarak SQL Server veritabanı altyapısını kullanmanın avantajlarından yararlanır. Graf özellikleri, graf verilerini sorgulamak için grafik MATCH
işleciyle geliştirilmiş standart Transact-SQL sorgularını kullanır.
İlişkisel veritabanı, graf veritabanının başarabileceği her şeyi elde edebilir. Ancak, grafik veritabanı belirli sorguların ifadesini kolaylaştırabilir. Birini diğerinin yerine seçme kararınız aşağıdaki faktörlere bağlı olabilir:
- Hiyerarşik verileri modellemeniz gerekir; burada bir düğüm birden çok ana düğüme sahip olabilir, böylece hierarchyId veri türünü kullanamazsınız.
- Uygulamanızın karmaşık çoka çok ilişkileri var. Uygulama geliştikçe yeni ilişkiler eklenir.
- Birbirine bağlı verileri ve ilişkileri analiz etmeniz gerekir.
- SHORTEST_PATH gibi grafiğe özgü T-SQL arama koşullarını kullanmak istiyorsunuz.
JSON özellikleri
Azure SQL ürünlerinde JavaScript Nesne Gösterimi (JSON) biçiminde gösterilen verileri ayrıştırabilir ve sorgulayabilir ve ilişkisel verilerinizi JSON metni olarak dışarı aktarabilirsiniz. JSON , SQL Server veritabanı altyapısının temel bir özelliğidir.
JSON özellikleri, JSON belgelerini tablolara yerleştirmenize, ilişkisel verileri JSON belgelerine dönüştürmenize ve JSON belgelerini ilişkisel verilere dönüştürmenize olanak tanır. Belgeleri ayrıştırma için JSON işlevleriyle geliştirilmiş standart Transact-SQL dilini kullanabilirsiniz. Sorgularınızı iyileştirmek için kümelenmemiş dizinleri, columnstore dizinlerini veya bellek için iyileştirilmiş tabloları da kullanabilirsiniz.
JSON, modern web ve mobil uygulamalarda veri alışverişi için popüler bir veri biçimidir. JSON, yarı yapılandırılmış verileri günlük dosyalarında veya NoSQL veritabanlarında depolamak için de kullanılır. Birçok REST web hizmeti JSON metni olarak biçimlendirilmiş sonuçlar döndürür veya JSON olarak biçimlendirilmiş verileri kabul edin.
Çoğu Azure hizmeti JSON döndüren veya kullanan REST uç noktalarına sahiptir. Bu hizmetler Azure Bilişsel Arama, Azure Depolama ve Azure Cosmos DB'yi içerir.
JSON metniniz varsa JSON'dan veri ayıklayabilir veya JSON_VALUE, JSON_QUERY ve ISJSON yerleşik işlevlerini kullanarak JSON'un düzgün biçimlendirildiğini doğrulayabilirsiniz. Diğer işlevler şunlardır:
- JSON_MODIFY: JSON metninin içindeki değerleri güncelleştirmenizi sağlar.
- OPENJSON: Daha gelişmiş sorgulama ve analiz için bir JSON nesneleri dizisini bir satır kümesine dönüştürebilir. Döndürülen sonuç kümesinde herhangi bir SQL sorgusu yürütülebilir.
- FOR JSON: İlişkisel tablolarınızda depolanan verileri JSON metni olarak biçimlendirmenizi sağlar.
Daha fazla bilgi için bkz . JSON verileriyle çalışma.
Bazı senaryolarda ilişkisel modeller yerine belge modellerini kullanabilirsiniz:
- Şemanın yüksek normalleştirilmesi, nesnelerin tüm alanlarına aynı anda eriştikten veya nesnelerin normalleştirilmiş bölümlerini hiçbir zaman güncelleştirmediğinizden önemli avantajlar getirmez. Ancak verileri almak için çok sayıda tabloyu birleştirmeniz gerektiğinden, normalleştirilmiş model sorgularınızın karmaşıklığını artırır.
- İletişim veya veri modelleri için JSON belgelerini yerel olarak kullanan uygulamalarla çalışıyorsunuz ve ilişkisel verileri JSON'a dönüştüren daha fazla katman eklemek istemiyorsunuz.
- Alt tabloları veya Entity-Object-Value desenlerini normalleştirerek veri modelinizi basitleştirmeniz gerekir.
- Verileri ayrıştıran ek bir araç olmadan JSON biçiminde depolanan verileri yüklemeniz veya dışarı aktarmanız gerekir.
XML özellikleri
XML özellikleri, XML verilerini veritabanınızda depolayıp dizine eklemenizi ve XML verileriyle çalışmak için yerel XQuery/XPath işlemlerini kullanmanızı sağlar. Azure SQL ürünleri, XML verilerini işleyen özelleştirilmiş, yerleşik bir XML veri türüne ve sorgu işlevlerine sahiptir.
SQL Server veritabanı altyapısı, yarı yapılandırılmış verileri yönetmek için uygulama geliştirmeye yönelik güçlü bir platform sağlar. XML desteği, veritabanı altyapısının tüm bileşenleriyle tümleşiktir ve şunları içerir:
- XML değerlerini xml şemaları koleksiyonuna göre yazılabilir veya yazılmamış bırakılabilir xml veri türü sütununda yerel olarak depolama olanağı. XML sütununu dizine alabilirsiniz.
- XML türündeki sütun ve değişkenlerde depolanan XML verilerine karşı bir XQuery sorgusu belirtebilme özelliği. XQuery işlevlerini, veritabanınızda kullandığınız bir veri modeline erişen herhangi bir Transact-SQL sorgusunda kullanabilirsiniz.
- Birincil XML dizinini kullanarak XML belgelerindeki tüm öğelerin otomatik dizini. Alternatif olarak, ikincil XML dizini kullanılarak dizine alınması gereken tam yolları belirtebilirsiniz.
OPENROWSET
, XML verilerinin toplu yüklenmesine izin verir.- İlişkisel verileri XML biçimine dönüştürme olanağı.
Bazı senaryolarda ilişkisel modeller yerine belge modellerini kullanabilirsiniz:
- Şemanın yüksek normalleştirilmesi, nesnelerin tüm alanlarına aynı anda eriştikten veya nesnelerin normalleştirilmiş bölümlerini hiçbir zaman güncelleştirmediğinizden önemli avantajlar getirmez. Ancak verileri almak için çok sayıda tabloyu birleştirmeniz gerektiğinden, normalleştirilmiş model sorgularınızın karmaşıklığını artırır.
- İletişim veya veri modelleri için xml belgelerini yerel olarak kullanan uygulamalarla çalışıyorsunuz ve ilişkisel verileri JSON'a dönüştüren daha fazla katman eklemek istemiyorsunuz.
- Alt tabloları veya Entity-Object-Value desenlerini normalleştirerek veri modelinizi basitleştirmeniz gerekir.
- Xml biçiminde depolanan verileri ayrıştıran ek bir araç olmadan yüklemeniz veya dışarı aktarmanız gerekir.
Uzamsal özellikler
Uzamsal veriler, nesnelerin fiziksel konumu ve şekli hakkındaki bilgileri temsil eder. Bu nesneler nokta konumları veya ülkeler/bölgeler, yollar veya göller gibi daha karmaşık nesneler olabilir.
Azure SQL iki uzamsal veri türünü destekler:
- Geometri türü, verileri Öklid (düz) koordinat sisteminde gösterir.
- Coğrafya türü, yuvarlak dünya koordinat sistemindeki verileri temsil eder.
Azure SQL'deki uzamsal özellikler geometrik ve coğrafi verileri depolamanıza olanak tanır. JSON biçiminde temsil edilen verileri ayrıştırmak ve sorgulamak ve ilişkisel verilerinizi JSON metni olarak dışarı aktarmak için Azure SQL'deki uzamsal nesneleri kullanabilirsiniz. Bu uzamsal nesneler Point, LineString ve Polygon'dır. Azure SQL ayrıca uzamsal sorgularınızın performansını artırmak için kullanabileceğiniz özelleştirilmiş uzamsal dizinler de sağlar.
Uzamsal destek , SQL Server veritabanı altyapısının temel bir özelliğidir.
Anahtar değer çiftleri
Anahtar-değer yapıları standart ilişkisel tablolar olarak yerel olarak temsil edilebileceğinden Azure SQL ürünlerinin anahtar-değer çiftlerini destekleyen özel türleri veya yapıları yoktur:
CREATE TABLE Collection (
Id int identity primary key,
Data nvarchar(max)
)
Bu anahtar-değer yapısını herhangi bir kısıtlama olmadan gereksinimlerinize uyacak şekilde özelleştirebilirsiniz. Örneğin, değer türü yerine nvarchar(max)
bir XML belgesi olabilir. Değer bir JSON belgesiyse, JSON içeriğinin geçerliliğini doğrulayan bir CHECK
kısıtlama kullanabilirsiniz. Ek sütunlara bir anahtarla ilgili herhangi bir sayıda değer koyabilirsiniz. Örneğin:
- Veri erişimini basitleştirmek ve iyileştirmek için hesaplanan sütunlar ve dizinler ekleyin.
- Daha iyi performans elde etmek için tabloyu bellek için iyileştirilmiş, yalnızca şema tablosu olarak tanımlayın.
uygulamada bir ilişkisel modelin anahtar-değer çifti çözümü olarak nasıl etkili bir şekilde kullanılabileceğini gösteren bir örnek için bkz . Bwin, daha önce görülmemiş bir performans ve ölçek elde etmek için SQL Server 2016 Bellek İçi OLTP'yi nasıl kullanıyor? Bu örnek olay incelemesinde bwin, saniyede 1,2 milyon toplu iş elde etmek için ASP.NET önbelleğe alma çözümü için ilişkisel bir model kullandı.
Sonraki adımlar
Çok modelli özellikler, Azure SQL ürünleri arasında paylaşılan temel SQL Server veritabanı altyapısı özellikleridir. Bu özellikler hakkında daha fazla bilgi edinmek için şu makalelere bakın: