Opis języka XML w programie SQL Server

W tym temacie omówiono przyczyny, dlaczego należy używać języka XML w SQL Server. Także wskazówki dotyczące wybierania między macierzystym magazynu XML i technologii Widok XML i podaje sugestie modelowania danych.

Relacyjnej lub model danych XML

If your data is highly structured with known schema, the relational model is likely to work best for data storage.SQL Server provides the required functionality and tools you may need.Z drugiej strony w przypadku półstrukturalnych niestrukturalne lub nieznany struktury należy rozważyć modelowania tych danych.

XML jest użyteczna, jeśli w celu zapewnienia przenoszenia danych za pomocą znaczników strukturalnych i semantyki modelu niezależną od platformy.Ponadto jest odpowiednią opcję, jeśli spełnione są następujące właściwości:

  • Dane są rozrzedzone struktury danych nie jest znany lub struktura danych może się zmieniać znacznie w przyszłości.

  • Dane reprezentuje hierarchii zamknięcia, zamiast odwołań wśród podmiotów i może być cyklicznych.

  • Kolejność jest w danych.

  • Chcesz wysyłać kwerendy do danych i aktualizowanie go na podstawie struktury jego części.

Jeśli żaden z tych warunków jest spełniony, należy użyć modelu danych relacyjnych.Na przykład, jeżeli dane znajdują się w formacie XML, ale tylko aplikacja używa bazy danych do przechowywania i pobierania danych [n]varchar(max) kolumna są wszystkie wymagane. Zapisując dane w kolumna XML ma dodatkowe korzyści.Dotyczy to także o aparat ustalić, że jest dobrze sformułowany lub nieprawidłowe dane i obejmuje również obsługę aktualizacji i szczegółowymi kwerendy do danych XML.

Ze względu na przechowywanie danych XML w programie SQL Server

Poniżej przedstawiono niektóre z powodów używania trybu macierzystego funkcje języka XML w SQL Server zamiast zarządzanie danych XML w systemie plików:

  • Chcesz udostępnić, kwerendy i modyfikowania danych XML w sposób efektywny i transakcyjnego.Dostęp do danych szczegółowymi jest ważne dla aplikacji.Na przykład można wyodrębnić część sekcji w dokumencie XML lub można go wstawić nową sekcję bez zamiany całego dokumentu.

  • Masz danych relacyjnych i dane XML i chcesz, aby obie relacyjnej współdziałanie i dane XML w aplikacji.

  • Niezbędna jest obsługa języka do modyfikacji danych i kwerendy dla aplikacji między domenami.

  • Chcesz, aby serwer do zagwarantowania, że dane został dobrze uformowany i też dodatkowo sprawdzić poprawność danych zgodnie ze schematów XML.

  • Chcesz indeksowania danych XML kwerendy wydajne przetwarzanie i skalowalność dobrych i stosowania Optymalizator renomowanej kwerendy.

  • Chcesz, aby protokołu SOAP, ADO.NET, i OLE DB dostęp do danych XML.

  • Chcesz używać funkcji administracyjnych serwera bazy danych związanych z zarządzaniem danych XML.Może to być na przykład, kopia zapasowa i odzyskiwanie replikacja.

Jeśli żaden z tych warunków jest spełniony, mogą być lepiej do przechowywania danych jako-XML inny niż, dużego obiektu typu, takich jak [n]varchar(max) lub varbinary(max).

Opcje magazynu XML

Opcje magazynowania dla języka XML w SQL Server między innymi następujące:

  • Przechowywanie macierzystego jako xml Typ danych

    Dane są przechowywane w reprezentacji wewnętrznej, który zachowuje zawartość XML danych.To reprezentacji wewnętrznej zawiera informacje o hierarchii dotyczące zamknięcia zamówienia dokumentu i wartości elementów i atrybut.W szczególności zawartości InfoSet danych XML jest zachowywany.Aby uzyskać więcej informacji na temat InfoSet odwiedź witrynę http://www.w3.org/TR/XML-infoset.Zawartość InfoSet nie może być identyczna kopię tekstu XML, ponieważ nie jest zachowywane następujące informacje: nieznaczna spacji, atrybuty, prefiksów obszaru nazw i deklaracja XML.

    Aby wpisać xml Typ danych, xml Typ danych związany ze schematów XML, sprawdzanie poprawności post-schema InfoSet (PSVI) dodaje informacje o typie InfoSet i jest zakodowana w reprezentacji wewnętrznej. To znacząco zwiększa szybkość przetwarzania.Aby uzyskać więcej informacji zobacz specyfikacje schematu XML z konsorcjum W3C w http://www.w3.org/TR/XMLSchema-1 and http://www.w3.org/TR/XMLSchema-2.

  • Mapowanie między XML i przechowywania relacyjne

    Korzystając z adnotacjami schematu (AXSD), plik XML jest rozłożony do kolumn w jednej lub kilku tabel.Pozwala to zachować dokładność danych poziom relacyjnej.W rezultacie strukturę hierarchiczną jest zachowywany, chociaż kolejności elementów jest ignorowana.Schemat nie może być cyklicznych.

  • Przechowywanie dużych obiektów [n]varchar(max) i varbinary(max)

    Identyczne kopię danych jest przechowywany.Jest to przydatne do zastosowań specjalnych, takich jak dokumenty prawne.Większość aplikacji nie wymagają dokładna kopia i są zadowalające zawartości XML (InfoSet wierność odtwarzania).

Ogólnie rzecz biorąc być może trzeba użyć kombinacji tych metod.Na przykład, może zajść potrzeba przechowywania danych XML w xml dane wpisz kolumna i wspierania właściwości z niego w relacyjnych kolumna. Lub możesz używać technologii mapowania do przechowywania części nonrecursive w kolumnach-XML i tylko części cyklicznych w xml Typ danych kolumny.

Wybór technologii XML

Zazwyczaj wybór technologii XML, macierzysta XML i Widok XML, zależy od następujących czynników:

  • Opcje magazynowania

    Dane XML mogą być bardziej odpowiednie do przechowywania dużych obiektów (na przykład ręcznie produktu), lub bardziej podlegających magazynu w relacyjnych kolumny (na przykład element wiersza konwertowane do formatu XML).Każda opcja magazynowania zachowuje wierności dokumentu w innym zakresie.

  • Funkcje kwerendy

    Może się okazać jedną opcję przechowywania bardziej odpowiednie niż inne, oparte na charakter kwerendy i fragment, do którego kwerendy danych XML.Szczegółowymi kwerendy danych XML, na przykład predykatu oceny węzłów XML jest obsługiwany w różnym stopniu w dwie opcje przechowywania.

  • Indeksowanie danych XML

    Może zajść potrzeba indeksowania danych XML, aby przyspieszyć działanie kwerendy XML.Indeksowanie opcje zmieniają się w zależności od opcji przechowywania; musisz wybrać odpowiednią opcję w celu zoptymalizowania operacje są przeprowadzane.

  • Możliwości modyfikacji danych

    Niektóre obciążenia pracą obejmują szczegółowymi modyfikacji danych XML.Na przykład może to dotyczyć dodawania nowych sekcji w dokumencie, podczas gdy pozostałe obciążenie pracą, takich jak zawartość sieci Web, nie.Obsługa języka modyfikacji danych mogą być ważne dla danej aplikacji.

  • Obsługa schematu

    Dane XML mogą być opisane schematu, które mogą lub nie może być dokument schematu XML.Obsługa związanych ze schematem XML zależy od technologii XML.

Wybrać różne opcje mają także charakterystyki wydajności różne.

Macierzysta magazyn XML

Można zapisać danych XML w xml Typ danych kolumna na serwerze. Jest to właściwym wyborem, jeśli dotyczy następujących czynności:

  • Ma prosty sposób przechowywania danych XML na serwerze, a w tym samym czas, zachować dokument kolejność i struktura dokumentu.

  • Może lub nie mogą mieć schematu dla danych XML.

  • Należy zbadać i modyfikowania danych XML.

  • Mają być indeksowane danych XML dla szybsze przetwarzanie kwerendy.

  • Aplikacja wymaga systemu widoki wykazu do administrowania schematów XML i danych XML.

Macierzysty magazynu XML jest przydatne, gdy masz dokumentów XML, które mają zakres struktur lub mieć dokumentów XML, które są zgodne z różnych lub złożone schematów, które są zbyt trudne do mapowania do struktur relacyjnej.

Przykład: Modelowanie XML przy użyciu danych xml, typ danych

Należy wziąć pod uwagę w formacie XML, który składa się z oddzielnych działu dla każdego tematu i który posiada kilka sekcji, w każdym rozdziale podręcznika produktu.Sekcja może zawierać podsekcje.W wyniku <sekcja> jest to element cyklicznych. Podręczników zawiera dużą ilość zawartości mieszanej, diagramów i materiały techniczne, dane są półstrukturalnych.Użytkownikom może być wyszukiwania kontekstowych tematów zainteresowania, takich jak wyszukiwanie w części "indeks klastrowany" w rozdziale "indeksowanie" i ilości technicznych kwerendy.

Model magazynu odpowiednie dla dokumentów XML jest xml Typ danych kolumna. Pozwala to zachować zawartość InfoSet danych XML.Indeksowanie XML korzyści kolumna kwerendy wydajności.

Przykład: Zachowywanie kopii dokładne dane XML

Na ilustracji założono, że regulacje rządu trzeba zachować dokładną tekstowy kopie dokumentów XML.Na przykład te mogą obejmować podpisanych dokumentów, dokumentach o charakterze prawnym lub zamówień transakcji towarowej.Możesz przechowywać swoje dokumenty w [n]varchar(max) Kolumna.

Dla kwerendy, konwertowanie danych xml Typ danych przy uruchomieniu czas i wykonywania na niej Xquery. Konwersja wykonywania może być kosztowne, zwłaszcza w przypadku, gdy dokument jest duży.Jeżeli kwerenda w często nadmiarowo można przechowywać dokumenty w xml Wpisz kolumny danych, a go indeksu, mimo że zwraca kopii dokumentu dokładny od [n]varchar(max) Kolumna.

W kolumnie XML może być to kolumna obliczana na podstawie [n]varchar(max) Kolumna. Jednak indeks XML nie można utworzyć dla kolumna obliczanej, XML, ani nie mogą indeks XML jest oparty na [n]varchar(max) lub varbinary(max) kolumna.

Technologia Widok XML

Definiując mapowania między swoją schematów XML i tabel w bazie danych, tworzenia "analitycznego XML" trwała danych.XML ładowanie zbiorcze może służyć do wypełniania tabel, korzystając z widoku XML.Widok XML mogą wysyłać kwerendy za pomocą wyrażenie XPath w wersja 1.0, kwerenda jest tłumaczona na kwerendy SQL w tabelach.Podobnie aktualizacje również są propagowane do tych tabel.

Technologia ta jest przydatna w następujących sytuacjach:

  • Które mają zorientowany XML model programowania, za pomocą widoków XML na istniejące dane relacyjnej.

  • Dane XML podane partner zewnętrznych zastosowano schemat (XSD, XDR).

  • Kolejność nie ma znaczenia w danych, dane tabela kwerendy nie jest cykliczne lub głębia maksymalna rekursja jest znany z góry.

  • Należy zbadać i modyfikować dane za pomocą widoku XML przy użyciu wyrażenie XPath w wersja 1.0.

  • Użytkownik chce zbiorczej ładowania danych XML i rozkładać je do odpowiednich tabel za pomocą widoku XML.

Przykładami danych relacyjnych udostępniany jako XML wymiany danych i usług sieci Web i danych XML ze schematem stałych.Aby uzyskać więcej informacji, zobacz temat Biblioteka online MSDN.

Przykład: Modelowanie danych za pomocą schematu XML adnotacjami (AXSD)

Na ilustracji założono, że istniejących danych relacyjnych, takich jak klienci, zamówienia i pozycje, które mają być obsługiwane w formacie XML.Definiowanie widoku programu XML przy użyciu AXSD relacyjnymi bazami danych.Widok XML umożliwia ładowanie zbiorcze danych XML do tabel, a następnie kwerendę i aktualizowanie danych relacyjnych przy użyciu widoku XML.Ten model jest przydatne w przypadku wymiany danych, które zawierają oznakowania XML z innymi aplikacjami, natomiast nieprzerwaną pracę aplikacji SQL.

Model hybrydowego

Często w połączeniu z relacyjnych i xml kolumny Typ danych jest odpowiednia dla danych modelowania. Niektóre z wartości z danych XML mogą być przechowywane w relacyjnych kolumn, a pozostałe lub cała wartość XML przechowywane w kolumna XML.Może to dać lepszą wydajność, tym, że użytkownik ma większą kontrolę nad indeksy utworzone na relacyjnych kolumny i właściwości blokowania.

Wartości, które są przechowywane w relacyjnych kolumn zależą od obciążenia sieci.Na przykład, jeśli pobrać wartości XML oparte na wyrażenie ścieżka, /Customer/@CustId, promowaniu wartość CustId atrybut kolumna relacyjnych i indeksowanie go może dać zwiększa wydajność kwerendy. Z drugiej strony jeśli dane XML jest szeroko i nonredundantly rozłożony na relacyjnych kolumny, koszt złożenie może być znaczny.

Dla bardzo strukturze danych XML, na przykład zawartość tabela została przekonwertowana w formacie XML, można mapować wszystkie wartości do kolumn relacyjnej i prawdopodobnie używają technologii Widok XML.

ziarnistość danych XML

The granularity of the XML data stored in an XML column is very important for locking and, to a lesser degree, it is also important for updates.SQL Server uses the same locking mechanism for both XML and non-XML data.Dlatego blokowania poziom wiersza powoduje wszystkich wystąpień XML w wierszu mają być zablokowane.Po ziarnistość jest duża, blokowanie dużych wystąpień XML w przypadku aktualizacji powoduje przepustowości odrzucić w scenariuszu obsługi wielu użytkowników.Z drugiej strony poważne rozkładu traci Hermetyzacja obiektów i zwiększa koszt ponownego asemblowania.

Balans wymagania dotyczące modelowania danych i właściwości blokady i aktualizacji jest ważne dla dobrego projektowania.Jednak w SQL Server, rozmiar rzeczywisty przechowywanych wystąpień XML nie są tak ważne.

Na przykład aktualizacje do wystąpienia XML są wykonywane przy użyciu nowej obsłudze częściowe duży obiekt binarny (BLOB) i aktualizacji częściowej indeksu, w którym istniejące wystąpienie XML przechowywane jest porównywany z jego zaktualizowaną wersja.Aktualizacja częściowe duży obiekt binarny (BLOB) wykonuje porównanie różnicy między dwoma wystąpieniami XML i aktualizuje tylko różnice.Aktualizacje częściowe indeksu zmodyfikować tylko te wiersze, które muszą być zmienione w indeksie XML.

W tej sekcji

Temat

Description

Ładowanie danych XML

W tym artykule opisano sposób transferu danych XML do SQL Server.

Dodawanie logika biznesowa

W tym artykule opisano sposób dodawania logika biznesowa do danych XML.

See Also

Other Resources