Możliwości wielomodelowe Azure SQL Database & wystąpienia zarządzane SQLMulti-model capabilities of Azure SQL Database & SQL Managed Instance

dotyczy:  tak Azure SQL Database  tak, wystąpienie zarządzane Azure SQLAPPLIES TO: yesAzure SQL Database yesAzure SQL Managed Instance

Wielomodelowe bazy danych umożliwiają przechowywanie danych i korzystanie z nich w wielu formatach danych, takich jak dane relacyjne, wykresy, dokumenty JSON/XML, pary klucz-wartość i tak dalej.Multi-model databases enable you to store and work with data represented in multiple data formats such as relational data, graphs, JSON/XML documents, key-value pairs, and so on.

Kiedy używać funkcji wielomodelowychWhen to use multi-model capabilities

Rodzina produktów SQL Azure została zaprojektowana tak, aby działała z modelem relacyjnym, który zapewnia najlepszą wydajność w większości przypadków w przypadku różnych aplikacji ogólnego przeznaczenia.The Azure SQL family of products are designed to work with the relational model that provides the best performance in the most of the cases for a variety of general-purpose applications. Jednak rodzina produktów SQL Azure nie jest ograniczona tylko do danych relacyjnych.However, the Azure SQL family of products are not limited to relational-data only. Rodzina produktów SQL platformy Azure umożliwia korzystanie z różnych formatów nierelacyjnych, które są ściśle zintegrowane z modelem relacyjnym.The Azure SQL family of products enable you to use a variety of non-relational formats that are tightly integrated into the relational model. Należy rozważyć użycie wielomodelowych możliwości rodziny produktów Azure SQL w następujących przypadkach:You should consider using multi-model capabilities of the Azure SQL family of products in the following cases:

  • Masz pewne informacje i struktury, które lepiej pasują do modeli NoSQL i nie chcesz używać oddzielnej bazy danych NoSQL.You have some information or structures that are better fit for NoSQL models and you don't want to use separate NoSQL database.
  • Większość danych jest odpowiednia dla modelu relacyjnego i należy modelować niektóre części danych w stylu NoSQL.A majority of your data is suitable for relational model, and you need to model some parts of your data in NoSQL style.
  • Chcesz korzystać z zaawansowanego języka Transact-SQL do wykonywania zapytań i analizowania danych relacyjnych i NoSQL oraz integrowania ich z różnymi narzędziami i aplikacjami, które mogą korzystać z języka SQL.You want to leverage rich Transact-SQL language to query and analyze both relational and NoSQL data, and integrate it with a variety of tools and applications that can use SQL language.
  • Aby zastosować funkcje bazy danych, takie jak technologie w pamięci , aby zwiększyć wydajność analizy lub przetwarzania struktur danych NoSQL, użyj replikacji transakcyjnej lub możliwych do odczytu replik , aby utworzyć kopię danych w innym miejscu i odciążyć niektóre obciążenia analityczne z podstawowej bazy danych.You want to apply database features such as in-memory technologies to improve performance of your analytic or processing of your NoSQL data structures, use transactional replication or readable replicas to create copy of your data on the other place and offload some analytic workloads from the primary database.

OmówienieOverview

Rodzina produktów SQL platformy Azure udostępnia następujące funkcje wielomodelowe:The Azure SQL family of products provide the following multi-model features:

  • Funkcje wykresu umożliwiają prezentowanie danych jako zestawu węzłów i krawędzi oraz używanie standardowych zapytań Transact-SQL ulepszonych z MATCH operatorem Graph w celu wykonywania zapytań dotyczących danych grafu.Graph features enable you to represent your data as set of nodes and edges, and use standard Transact-SQL queries enhanced with graph MATCH operator to query the graph data.

  • Funkcje JSON umożliwiają umieszczanie dokumentów JSON w tabelach, Przekształcanie danych relacyjnych z dokumentami JSON i na odwrót.JSON features enable you to put JSON documents in tables, transform relational data to JSON documents and vice versa. Aby zoptymalizować zapytania, można użyć standardowego języka Transact-SQL rozszerzonego z funkcjami JSON w celu analizowania dokumentów i używania indeksów nieklastrowanych, indeksów magazynu kolumn lub tabel zoptymalizowanych pod kątem pamięci.You can use the standard Transact-SQL language enhanced with JSON functions for parsing documents, and use non clustered indexes, columnstore indexes, or memory-optimized tables, to optimize your queries.

  • Funkcje przestrzenne umożliwiają przechowywanie danych geograficznych i geometrycznych, indeksowanie ich przy użyciu indeksów przestrzennych oraz pobieranie danych przy użyciu zapytań przestrzennych.Spatial features enables you to store geographical and geometrical data, index them using the spatial indexes, and retrieve the data using spatial queries.

  • Funkcje XML umożliwiają przechowywanie i indeksowanie danych XML w bazie danych i używanie natywnych operacji XQuery/XPath do pracy z danymi XML.XML features enable you to store and index XML data in your database and use native XQuery/XPath operations to work with XML data. Rodzina produktów SQL platformy Azure ma wyspecjalizowany wbudowany aparat zapytań XML, który przetwarza dane XML.The Azure SQL family of products have a specialized built-in XML query engine that process XML data.

  • Pary klucz-wartość nie są jawnie obsługiwane jako funkcje specjalne, ponieważ pary klucz-wartość mogą być natywnie modelowane jako tabele dwukolumnowe.Key-value pairs are not explicitly supported as special features since key-value pairs can be natively modeled as two-column tables.

    Uwaga

    Można użyć wyrażenia ścieżki JSON, wyrażeń XQuery/XPath, funkcji przestrzennych i wyrażeń kwerend grafu w tym samym zapytaniu języka Transact-SQL, aby uzyskać dostęp do wszystkich danych przechowywanych w bazie danych.You can use JSON Path expression, XQuery/XPath expressions, spatial functions, and graph-query expressions in the same Transact-SQL query to access any data that you stored in the database. Ponadto wszystkie narzędzia i języki programowania, które mogą wykonywać zapytania Transact-SQL, mogą również używać tego interfejsu zapytania do uzyskiwania dostępu do danych z wielu modeli.Also, any tool or programming language that can execute Transact-SQL queries, can also use that query interface to access multi-model data. Jest to kluczowa różnica w porównaniu z wielomodelowymi bazami danych, takimi jak Azure Cosmos DB , które udostępnia WYSPECJALIZOWANY interfejs API dla różnych modeli danych.This is the key difference compared to the multi-model databases such as Azure Cosmos DB that provides specialized API for different data models.

W poniższych sekcjach znajdują się informacje o najważniejszych funkcjach dla wielu modeli oferowanych przez usługę Azure SQL.In the following sections, you can learn about the most important multi-model capabilities of the Azure SQL family of products .

Funkcjonalności grafuGraph features

Rodzina produktów SQL platformy Azure oferuje możliwości bazy danych programu Graph do modelowania relacji wiele-do-wielu w bazie danych.The Azure SQL family of products offer graph database capabilities to model many-to-many relationships in database. Wykres jest kolekcją węzłów (lub wierzchołków) oraz krawędzi (lub relacji).A graph is a collection of nodes (or vertices) and edges (or relationships). Węzeł reprezentuje jednostkę (na przykład osobę lub organizację), a krawędź reprezentuje relację między dwoma węzłami, które nawiązuje połączenie (na przykład polubień lub znajomych).A node represents an entity (for example, a person or an organization) and an edge represents a relationship between the two nodes that it connects (for example, likes or friends). Poniżej przedstawiono niektóre funkcje, które sprawiają, że baza danych grafu jest unikatowa:Here are some features that make a graph database unique:

  • Krawędzie lub relacje są pierwszymi jednostkami klasy w bazie danych grafu i mogą mieć skojarzone z nimi atrybuty lub właściwości.Edges or relationships are first class entities in a Graph Database and can have attributes or properties associated with them.
  • Pojedyncze krawędzie mogą elastycznie łączyć wiele węzłów w bazie danych grafu.A single edge can flexibly connect multiple nodes in a Graph Database.
  • W łatwy sposób można wyznaczać zapytania nawigacji dotyczące dopasowywania wzorców i wieloskoków.You can express pattern matching and multi-hop navigation queries easily.
  • Można łatwo wyrazić przechodnie zapytania o zamknięciu i polimorficznym.You can express transitive closure and polymorphic queries easily.

Relacje grafu i możliwości zapytania grafu są zintegrowane z językiem Transact-SQL i korzystają z zalet aparatu bazy danych SQL Server jako systemu podstawowych zarządzania bazami danych.The graph relationships and graph query capabilities are integrated into Transact-SQL and receive the benefits of using the SQL Server database engine as the foundational database management system.

Kiedy używać funkcji grafuWhen to use a graph capability

Brak bazy danych grafu, której nie można osiągnąć, przy użyciu relacyjnej bazy danych.There is nothing a graph database can achieve, which cannot be achieved using a relational database. Jednak baza danych grafu może ułatwić wyrażanie niektórych zapytań.However, a graph database can make it easier to express certain queries. Decyzja o wyborze jednego z nich może opierać się na następujących czynnikach:Your decision to choose one over the other can be based on following factors:

  • Dane hierarchiczne modelu, w których jeden węzeł może mieć wiele elementów nadrzędnych, więc nie można użyć HierarchyIdModel hierarchical data where one node can have multiple parents, so HierarchyId cannot be used
  • Model ma swoją aplikację złożoną relację wiele-do-wielu; w miarę rozwoju aplikacji dodawane są nowe relacje.Model has Your application has complex many-to-many relationships; as application evolves, new relationships are added.
  • Należy analizować połączone dane i relacje.You need to analyze interconnected data and relationships.

Funkcje JSONJSON features

Rodzina produktów SQL platformy Azure umożliwia analizowanie i wykonywanie zapytań o dane reprezentowane w formacie JavaScript Object Notation (JSON) oraz eksportowanie danych relacyjnych jako tekstu JSON.The Azure SQL family of products let you parse and query data represented in JavaScript Object Notation (JSON) format, and export your relational data as JSON text.

JSON to popularny format danych używany do wymiany danych w nowoczesnych aplikacjach sieci Web i mobilnych.JSON is a popular data format used for exchanging data in modern web and mobile applications. KOD JSON jest również używany do przechowywania danych z częściową strukturą w plikach dziennika lub w bazach danych NoSQL, takich jak Azure Cosmos DB.JSON is also used for storing semi-structured data in log files or in NoSQL databases like Azure Cosmos DB. Wiele usług sieci Web REST zwraca wyniki sformatowane jako tekst JSON lub Akceptuję dane sformatowane w formacie JSON.Many REST web services return results formatted as JSON text or accept data formatted as JSON. Większość usług platformy Azure, takich jak azure wyszukiwanie poznawcze, azure Storagei Azure Cosmos DB , mają punkty końcowe REST, które zwracają lub zużywają kod JSON.Most Azure services such as Azure Cognitive Search, Azure Storage, and Azure Cosmos DB have REST endpoints that return or consume JSON.

Rodzina produktów SQL platformy Azure umożliwia łatwe współdziałanie z danymi JSON i integrację bazy danych z nowoczesnymi usługami oraz udostępnia następujące funkcje do pracy z danymi JSON:The Azure SQL family of products let you work with JSON data easily and integrate your database with modern services, and provides the following functions for working with JSON data:

Funkcje JSON

W przypadku tekstu JSON można wyodrębnić dane z pliku JSON lub sprawdzić, czy format JSON jest prawidłowo sformatowany przy użyciu wbudowanych funkcji JSON_VALUE, JSON_QUERYi isjson.If you have JSON text, you can extract data from JSON or verify that JSON is properly formatted by using the built-in functions JSON_VALUE, JSON_QUERY, and ISJSON. Funkcja JSON_MODIFY umożliwia zaktualizowanie wartości wewnątrz tekstu JSON.The JSON_MODIFY function lets you update value inside JSON text. Aby uzyskać bardziej zaawansowane zapytania i analizę, funkcja OPENJSON może przekształcić tablicę obiektów JSON w zestaw wierszy.For more advanced querying and analysis, OPENJSON function can transform an array of JSON objects into a set of rows. Wszystkie zapytania SQL można wykonać na zwracanym zestawie wyników.Any SQL query can be executed on the returned result set. Na koniec istnieje klauzula for JSON , która umożliwia formatowanie danych przechowywanych w tabelach relacyjnych jako tekstu JSON.Finally, there is a FOR JSON clause that lets you format data stored in your relational tables as JSON text.

Aby uzyskać więcej informacji, zobacz jak korzystać z danych JSON.For more information, see How to work with JSON data. JSON to podstawowa funkcja aparatu bazy danych SQL Server.JSON is a core SQL Server database engine feature.

Kiedy używać funkcji JSONWhen to use a JSON capability

Modele dokumentów mogą być używane zamiast modeli relacyjnych w niektórych scenariuszach:Document models can be used instead of the relational models in some specific scenarios:

  • Wysoka normalizacja schematu nie przynosi znaczących korzyści, ponieważ uzyskuje się dostęp do wszystkich pól jednocześnie, lub nigdy nie aktualizuje się znormalizowanych części obiektów.High-normalization of schema doesn't bring significant benefits because you access the all fields of objects at once, or you never update normalized parts of the objects. Jednak znormalizowany model zwiększa złożoność zapytań ze względu na dużą liczbę tabel, które należy dołączyć, aby uzyskać dane.However, the normalized model increases the complexity of your queries due to the large number of tables that you need to join to get the data.
  • Pracujesz z aplikacjami, które natywnie wykorzystują Dokumenty JSON, są komunikacyjne lub modele danych i nie chcesz wprowadzać dodatkowych warstw, które przekształcają dane relacyjne na format JSON i odwrotnie.You are working with the applications that natively use JSON documents are communication or data models, and you don't want to introduce additional layers that transforms relational data to JSON and vice versa.
  • Należy uprościć model danych przez cofnięcie normalizacji tabel podrzędnych lub wzorców wartości obiektów jednostek.You need to simplify your data model by de-normalizing child tables or Entity-Object-Value patterns.
  • Należy załadować lub wyeksportować dane przechowywane w formacie JSON bez dodatkowego narzędzia, które analizuje dane.You need to load or export data stored in JSON format without some additional tool that parses the data.

Funkcje przestrzenneSpatial features

Dane przestrzenne reprezentują informacje o lokalizacji fizycznej i kształcie obiektów geometrycznych.Spatial data represents information about the physical location and shape of geometric objects. Te obiekty mogą wskazywać lokalizacje lub bardziej złożone obiekty, takie jak kraje/regiony, drogi lub jeziora.These objects can be point locations or more complex objects such as countries/regions, roads, or lakes.

Rodzina produktów SQL platformy Azure umożliwia analizowanie i wykonywanie zapytań o dane reprezentowane w formacie JavaScript Object Notation (JSON) oraz eksportowanie danych relacyjnych jako tekstu JSON.The Azure SQL family of products let you parse and query data represented in JavaScript Object Notation (JSON) format, and export your relational data as JSON text.

Dwa obsługiwane dwa typy danych przestrzennych:The two supported two spatial data types:

  • Typ geometrii reprezentuje dane w układzie współrzędnych Euclidean (płaskim).The geometry type represents data in a Euclidean (flat) coordinate system.
  • Typ geografii reprezentuje dane w układzie współrzędnych rundy-ziemi.The geography type represents data in a round-earth coordinate system.

Istnieje wiele obiektów przestrzennych, które mogą być używane w rodzinie produktów Azure SQL, umożliwiające analizowanie i wykonywanie zapytań o dane reprezentowane w formacie JavaScript Object Notation (JSON) i eksportowanie danych relacyjnych jako tekstu JSON.There are a number of Spatial objects that can be used in the Azure SQL family of products let you parse and query data represented in JavaScript Object Notation (JSON) format, and export your relational data as JSON text. takie jak Point, LineString, Wielokąti tak dalej.such as Point, LineString, Polygon, and so on.

Rodzina produktów SQL platformy Azure oferuje także wyspecjalizowane indeksy przestrzenne , których można użyć w celu poprawienia wydajności zapytań przestrzennych.The Azure SQL family of products also provide specialized Spatial indexes that can be used to improve performance of your spatial queries.

Obsługa przestrzenna to podstawowa funkcja aparatu bazy danych SQL Server.Spatial support is a core SQL Server database engine feature.

Funkcje XMLXML features

Aparat bazy danych SQL Server zapewnia zaawansowaną platformę do tworzenia rozbudowanych aplikacji do zarządzania danymi z częściową strukturą.The SQL Server database engine provides a powerful platform for developing rich applications for semi-structured data management. Obsługa języka XML jest zintegrowana ze wszystkimi składnikami aparatu bazy danych i obejmuje następujące elementy:Support for XML is integrated into all the components of the database engine and includes the following:

  • Typ danych XML.The xml data type. Wartości XML mogą być przechowywane natywnie w kolumnie typu danych XML, które można wpisywać przy użyciu kolekcji schematów XML lub z lewej strony.XML values can be stored natively in an xml data type column that can be typed according to a collection of XML schemas, or left untyped. Można indeksować kolumnę XML.You can index the XML column.
  • Możliwość określenia zapytania XQuery dla danych XML przechowywanych w kolumnach i zmiennych typu XML.The ability to specify an XQuery query against XML data stored in columns and variables of the xml type. Funkcji XQuery można używać w dowolnym zapytaniu języka Transact-SQL, który uzyskuje dostęp do dowolnego modelu danych używanego w bazie danych.XQuery functionalities can be used in any Transact-SQL query that access any data model that you use in your database.
  • Automatycznie Indeksuj wszystkie elementy w dokumentach XML przy użyciu podstawowego indeksu XML lub określ dokładne ścieżki, które powinny być indeksowane przy użyciu pomocniczego indeksu XML.Automatically index all elements in XML documents using primary XML index or specify the exact paths that should be indexed using secondary XML index.
  • OPENROWSET, która umożliwia ładowanie zbiorcze danych XML.OPENROWSET that allows bulk loading of XML data.
  • Przekształć dane relacyjne w formacie XML.Transform relational data to XML format.

Język XML jest podstawową funkcją aparatu bazy danych SQL Server.XML is a core SQL Server database engine feature.

Kiedy używać funkcji XMLWhen to use an XML capability

Modele dokumentów mogą być używane zamiast modeli relacyjnych w niektórych scenariuszach:Document models can be used instead of the relational models in some specific scenarios:

  • Wysoka normalizacja schematu nie przynosi znaczących korzyści, ponieważ uzyskuje się dostęp do wszystkich pól jednocześnie, lub nigdy nie aktualizuje się znormalizowanych części obiektów.High-normalization of schema doesn't bring significant benefits because you access the all fields of objects at once, or you never update normalized parts of the objects. Jednak znormalizowany model zwiększa złożoność zapytań ze względu na dużą liczbę tabel, które należy dołączyć, aby uzyskać dane.However, the normalized model increases the complexity of your queries due to the large number of tables that you need to join to get the data.
  • Pracujesz z aplikacjami, które natywnie wykorzystują dokumenty XML, są komunikacyjne lub modele danych i nie chcesz wprowadzać dodatkowych warstw, które przekształcają dane relacyjne na XML i odwrotnie.You are working with the applications that natively use XML documents are communication or data models, and you don't want to introduce additional layers that transforms relational data to XML and vice versa.
  • Należy uprościć model danych przez cofnięcie normalizacji tabel podrzędnych lub wzorców wartości obiektów jednostek.You need to simplify your data model by de-normalizing child tables or Entity-Object-Value patterns.
  • Należy załadować lub wyeksportować dane przechowywane w formacie XML bez dodatkowego narzędzia, które analizuje dane.You need to load or export data stored in XML format without some additional tool that parses the data.

Pary klucz-wartośćKey-value pairs

Rodzina produktów SQL platformy Azure nie ma wyspecjalizowanych typów lub struktur, które obsługują pary klucz-wartość, ponieważ struktury klucz-wartość mogą być natywnie reprezentowane jako standardowe tabele relacyjne:The Azure SQL family of products don't have specialized types or structures that support key-value pairs since key-value structures can be natively represented as standard relational tables:

CREATE TABLE Collection (
  Id int identity primary key,
  Data nvarchar(max)
)

Tę strukturę klucz-wartość można dostosować do własnych potrzeb bez ograniczeń.You can customize this key-value structure to fit your needs without any constraints. Przykładowo wartością może być dokument XML, a nie nvarchar(max) Typ, jeśli wartość jest dokumentu JSON, można umieścić CHECK ograniczenie, które weryfikuje ważność zawartości JSON.As an example, the value can be XML document instead of nvarchar(max) type, if the value is JSON document, you can put CHECK constraint that verifies the validity of JSON content. Można umieścić dowolną liczbę wartości związanych z jednym kluczem w dodatkowych kolumnach, dodać kolumny obliczane i indeksy, aby uprościć i zoptymalizować dostęp do danych, zdefiniować tabelę jako pamięć/zoptymalizowaną pod względem schematu tabelę, aby uzyskać lepszą wydajność itd.You can put any number of values related to one key in the additional columns, add computed columns and indexes to simplify and optimize data access, define the table as memory/optimized schema-only table to get better performance, etc.

Zobacz, w jaki sposób BWin korzysta z OLTP w pamięci, aby osiągnąć niespotykaną wydajność i skalę dla swojego rozwiązania pamięci podręcznej ASP.NET, które osiągnęło 1.200.000 partie w ciągu kilku sekund, jako przykład sposobu, w jaki model relacyjny może być efektywnie używany jako rozwiązanie par klucz-wartość w praktyce.See how BWin is using In-Memory OLTP to achieve unprecedented performance and scale for their ASP.NET caching solution that achieved 1.200.000 batches per seconds, as an example how relational model can be effectively used as key-value pair solution in practice.

Następne krokiNext steps

Możliwości wielu modeli w rodzinie produktów Azure SQL to również podstawowe funkcje aparatu bazy danych SQL Server, które są współużytkowane przez rodzinę produktów usługi Azure SQL.Multi-model capabilities in the Azure SQL family of products are also the core SQL Server database engine features that are shared among the Azure SQL family of products. Aby dowiedzieć się więcej o tych funkcjach, odwiedź stronę dokumentacji relacyjnej bazy danych SQL:To learn more details about these features, visit the SQL Relational database documentation pages: