Opis XML w programie SQL Server

W tym temacie opisano przyczyny, dlaczego należy używać XML w SQL Server.Ponadto zawiera wskazówki dotyczące wybór między macierzystym magazynu XML i technologii Widok XML i podaje sugestie modelowania danych.

Relacyjnej lub modelu 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 struktury półstrukturalnych lub niestrukturalnych lub nieznany należy rozważyć modelowania takich danych.

XML jest dobrym rozwiązaniem, jeśli w celu zapewnienia przenośności danych za pomocą znaczników strukturalnych i semantycznych modelu niezależne od platformy.Ponadto jest odpowiednią opcję, jeśli spełnione są niektóre z następujących właściwości:

  • Danych jest rozrzedzony lub nie znasz struktury danych lub struktury danych może zmienić znacząco w przyszłości.

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

  • Zamówienie jest w danych.

  • Chcesz kwerendy do danych lub aktualizacji części, na podstawie jej struktury.

Jeśli żaden z tych warunków jest spełniony, należy użyć modelu w relacyjnej bazie danych.Na przykład, jeśli dane są w formacie XML, ale tylko aplikacja używa bazy danych do przechowywania i pobierania danych [n]varchar(max) kolumna są wszystkie wymagane.Przechowywanie danych kolumna XML ma dodatkowe korzyści.Obejmuje to posiadające silnik określają jest dobrze sformułowany lub nieprawidłowe dane i obejmuje również obsługę aktualizacji i szczegółowymi kwerendy do danych XML.

Powody do przechowywania danych XML w programie SQL Server

Oto niektóre z powodów używania naturalne funkcje XML w SQL Server zamiast na zarządzaniu danych XML w systemie plików:

  • Chcesz udostępniać kwerendy i modyfikować dane XML w sposób skuteczny i transakcyjnych.Dostęp do danych szczegółowymi ważne jest, aby aplikacja.Na przykład można wyodrębnić niektóre sekcje w dokumencie XML lub może chcesz wstawić nową sekcję bez zastępowania całego dokumentu.

  • W relacyjnej bazie danych i dane XML i chcesz współdziałania między obie relacyjnych i dane XML w aplikacji.

  • Obsługa języka potrzebę modyfikacji kwerendy i dane dla cross -domena aplikacji.

  • Chcesz, aby serwer do zagwarantowania, że dane został dobrze uformowany i również opcjonalnie Sprawdź poprawność danych według schematów XML.

  • Chcesz indeksowania danych XML przetwarzania kwerend efektywne i dobra skalowalność i stosowania optymalizator kwerendy strzał.

  • Chcesz SOAP ADO.NET i OLE DB dostępu do danych XML.

  • Chcesz użyć funkcji administracyjnych serwera bazy danych do zarządzania danymi XML.Na przykład, byłoby to kopia zapasowa, odzyskiwanie i replikacja.

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

Opcje magazynu XML

Opcje magazynowania XML w SQL Server następujące:

  • Magazyn macierzystego jako xml Typ danych

    Dane są przechowywane w reprezentacji wewnętrznej, który zachowuje zawartość XML danych.Wewnętrzna reprezentacja ta zawiera informacje o hierarchii zamknięcia, kolejności dokumentu i wartości elementów i atrybut.W szczególności zawartości typu infoset sprawdzonych danych XML jest zachowywany.Aby uzyskać więcej informacji na temat typu infoset sprawdzonych odwiedź http://www.w3.org/TR/xml-infoset.Zawartość obiektu typu InfoSet nie może być identycznych kopii tekstu XML, ponieważ nie jest zachowywane następujące informacje: nieznaczna spacji, kolejność atrybutów, prefiksy obszarów nazw i deklaracja XML.

    Dla wpisane xml typu danych, xml Typ danych związany z schematów XML, post-schema sprawdzania poprawności typu infoset sprawdzonych (PSVI) dodaje typ informacji typu infoset sprawdzonych i zakodowane w reprezentacji wewnętrznej.To znacznie zwiększa szybkość przetwarzania.Aby uzyskać więcej informacji, zobacz specyfikacje W3C schematu XML przy http://www.w3.org/TR/xmlschema-1 i http://www.w3.org/TR/xmlschema-2.

  • Mapowanie między XML i składowania relacyjne

    Korzystając z adnotacjami schematu (AXSD), XML jest rozłożony na kolumn w jednej lub kilku tabel.Zachowuje wierności danych poziom relacyjnej.W wyniku hierarchicznej struktury jest zachowywany, ale ignorowane kolejność elementów.Schemat nie może być cykliczne.

  • Magazyn dużego obiektu [n]varchar(max) i varbinary(max)

    Identycznych kopii danych jest przechowywany.Jest to przydatne do zastosowań specjalnych, takich jak dokumenty prawne.Większość aplikacji nie jest wymagana dokładna kopia i zadowalający zawartości XML (Content wierność).

Ogólnie rzecz biorąc trzeba użyć kombinacji tych rozwiązań.Na przykład chcesz przechowywać danych XML w xml Typ kolumna danych i wspierania właściwości z niego do kolumna relacyjnej.Lub możesz używać technologii mapowania do przechowywania części nierekursywne w kolumnach XML programu i tylko części cyklicznych w xml Typ danych kolumny.

Wybór technologii XML

Wybór technologii XML macierzystym XML i Widok XML w ogólnie zależy od następujących czynników:

  • Opcje pamięci masowej

    Dane XML mogą być bardziej odpowiednie do przechowywania dużych obiektów (na przykład podręcznik), lub więcej podlegających składowania w kolumnach relacyjnej (na przykład w wierszu element konwertowane do formatu XML).Każdej opcji składowania zachowuje wierność dokument z innym fragment.

  • Możliwości kwerendy

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

  • Indeksowanie danych XML

    Chcesz indeksować dane XML, aby przyspieszyć wydajność kwerendy XML.Opcje indeksowania różne opcje magazynowania; należy wybrać odpowiednie optymalizować obciążenie sieci.

  • Możliwości modyfikacji danych

    Niektóre obciążeń obejmować szczegółowymi modyfikacji danych XML.Na przykład może to dotyczyć dodanie nowej sekcji w dokumencie, podczas gdy inne obciążeń, takich jak zawartość sieci Web nie.Obsługa języka modyfikacji danych mogą być ważne dla aplikacji.

  • Obsługa schematów

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

Różnych opcji również mają inną charakterystykę.

Macierzysty magazynu XML

Można przechowywać danych XML w xml Typ danych kolumna na serwerze.Jest właściwym wyborem, jeśli stosuje się następujące czynności:

  • Prosty sposób przechowywania danych XML na serwerze i jednocześnie czas, zachować kolejność dokumentu i struktury dokumentu.

  • Może lub nie może być schemat danych XML.

  • Należy zbadać i modyfikować dane XML.

  • Chcesz indeksować dane XML, aby przyspieszyć przetwarzanie kwerendy.

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

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

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

Należy rozważyć ręczne produktu w formacie XML, który składa się z oddzielnym rozdziale dla każdego tematu i który posiada wiele sekcji, w ramach każdego rozdziału.Sekcja może zawierać podsekcje.W wyniku <sekcji> jest elementem cykliczne.Podręczniki zawiera dużą ilość zawartości mieszanej, diagramy i materiały techniczne; dane są półstrukturalnych.Użytkownicy chcą kontekstowych wyszukać tematy zainteresowania, takich jak wyszukiwanie w części "indeks klastrowany" w ramach rozdziału "indeksowania" i ilości techniczne kwerendy.

Model magazynu właściwe dla dokumentów XML jest xml Typ danych kolumna.Zachowuje zawartości typu infoset sprawdzonych danych XML.Kolumna korzyści indeksowania XML kwerendy wydajności.

Przykład: Zachowywanie dokładne chwilowe kopie danych XML

Ilustracja założono, że regulacje rządu wymagają zachowuje dokładnego tekstowy kopie dokumentów XML.Na przykład te mogą obejmować podpisanych dokumentów, dokumenty prawne lub zamówień giełdowym.Możesz przechowywać swoje dokumenty [n]varchar(max) kolumna.

Dla kwerend, należy przekonwertować dane do xml typu danych przy uruchomieniu czas i wykonywanie Xquery na goUruchom -czas konwersji może być kosztowne, szczególnie w przypadku, gdy dokument jest duży.Jeżeli kwerenda w często nadmiarowo można przechowywać dokumenty w xml Typ kolumna danych i indeksu go podczas zwrotu dokumentu dokładnej kopii z [n]varchar(max) kolumna.

Kolumna XML może być kolumna obliczana na podstawie [n]varchar(max) kolumny.Jednak nie można utworzyć indeksu XML dla kolumna obliczanej, XML, ani można budować indeks XML na [n]varchar(max) lub varbinary(max) kolumna.

Technologia Widok XML

Definiując mapowanie między schematów XML i tabel w bazie danych, tworzenie "Widok XML" trwałe danych.XML ładowanie zbiorcze mogą być używane do wypełniania tabel przy użyciu widoku XML.Widok XML można kwerendy przy użyciu XPath w wersja 1.0; Kwerenda jest tłumaczony na kwerendy SQL w tabelach.Podobnie aktualizacje również są propagowane do tych tabel.

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

  • Ma być wyśrodkowany na XML model programowania, przy użyciu widoków XML przez istniejących danych relacyjnych.

  • Masz schematu (XSD, XDR) dla danych XML, który mógł dostarczyć partner zewnętrznych.

  • Kolejność nie jest ważna w danych, dane tabela kwerendy nie jest cykliczne lub głębia maksymalna rekursja jest znane z wyprzedzeniem.

  • Chcesz kwerendy i modyfikować dane za pośrednictwem Widok XML przy użyciu XPath w wersja 1.0.

  • Aby ładowanie zbiorcze danych XML i rozkładać je do odpowiednich tabel za pomocą widoku XML.

Przykładami udostępniany jako XML dla wymiany danych, usług sieci Web i dane XML ze schematem stałych relacyjnej bazie danych.Aby uzyskać więcej informacji, zobacz msdn Online Library.

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

Na ilustracji przyjęto mają istniejących danych relacyjnych, takich jak klienci, zamówienia i pozycje, które mają być obsługiwane w formacie XML.Zdefiniować Widok XML przy użyciu AXSD przez relacyjnymi bazami danych.Widok XML umożliwia ładowanie zbiorcze danych XML do tabel i kwerend i aktualizacji danych relacyjnych przy użyciu widoku XML.Ten model jest przydatne w przypadku wymiany danych zawierającego tagi XML z innymi aplikacjami, podczas gdy nieprzerwaną pracę aplikacji SQL.

Model hybrydowy

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

Wartości przechowywane w kolumnach relacyjnej zależy od obciążenia sieci.Na przykład, jeśli pobieranie wartości XML oparte na wyrażenie ścieżka, /Customer/@CustId, promowanie wartości IDklienta atrybut kolumna relacyjnych i indeksowana przynoszą szybsze kwerendy.Z drugiej strony, jeśli dane XML jest szeroko i nonredundantly cenowego relacyjnej kolumny re -wirtualny plik dziennika koszt może być znaczne.

Skomplikowanej strukturze danych XML na przykład zawartość tabela został przekształcony na XML; można mapować wszystkie wartości do kolumn relacyjnych i prawdopodobnie używają technologii Widok XML.

Rozdrobnienie 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 do zablokowania.Stopień szczegółowości jest duża, blokowanie dużych wystąpienia XML dla aktualizacji powoduje spadek przepustowość wielu użytkowników scenariusza.Z drugiej strony poważne dekompozycji utraci Hermetyzacja obiektów i zwiększa koszt ponownego asemblowania.

Równowagi między wymaganiami modelowania danych oraz cechy blokowania i aktualizacji jest istotne dla dobrego projektowania.Jednakże w SQL Server, rozmiaru rzeczywistego wystąpienia XML przechowywanych nie jest jako krytyczny.

Na przykład aktualizacje na instancję XML są wykonywane za pomocą nowej obsłudze częściowe duży obiekt binarny (BLOB) i aktualizacji częściowej indeksu, w których istniejące wystąpienie XML przechowywanych 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ć zmieniane w indeksie XML.

W tej sekcji

Temat

Opis

Ładowanie danych XML

Opisuje sposób przenoszenia danych XML do SQL Server.

Dodawanie logiki biznesowej

Opisuje sposób dodawania logika biznesowa do danych XML.

Zobacz także

Inne zasoby