29.Przedstaw technologię przetwarzania danych XML na serwerze

Transkrypt

29.Przedstaw technologię przetwarzania danych XML na serwerze
29.Przedstaw technologię przetwarzania danych XML na serwerze MS SQL 2005 (wykład 8)
Dobrze to przeczytać(ogolnie): http://www.codeguru.pl/article-526.aspx
Przechowywanie danych XML -Maksymalna wielkość danej – 2 GB – format binarny
O danych XML, chyba nie takie ważne,
Deklaracja danych bez walidacji XML Schema:
Rejestracja XML Schema:
Deklaracja danych z walidacją XML Schema:
Metody typu danych XML:
exists ( wyrażenie XQuery, [odwołanie do węzła]) - Metoda pozwala na sprawdzenie zawartości
dokumentu XML pod kątem istnienia elementów lub atrybutów korzystających z wyrażenia
Xquery.
modify ( XML DML) - Metoda pozwala na modyfikację przechowywanego dokumentu XML.
Przy użyciu tej metody można uaktualniać cały dokument XML lub tylko jego wybraną część.
query ( wyrażenie XQuery, [odwołanie do węzła]) - Metoda pozwala pobrać całą zawartość
dokumentu XML lub tylko jego wybraną część.
value ( wyrażenie XQuery, [odwołanie do węzła]) - Metoda pozwala na wyodrębnienie z typu
danych XML wartości skalarnych.
Ostatnią już metodą jest nodes, pozwalająca na przekształcenie obiektu danych typu XML na dane
relacyjne. Tworzymy przykładową strukturę XML:
DECLARE @daneXML xml
SET @daneXML='<Dane>
<rekord id="1"><imie>Piotr</imie><nazwisko>Kowalski</nazwisko> </rekord>
<rekord id="2"><imie>Jan</imie></rekord>
<rekord id="3"><nazwisko>Abacki</nazwisko></rekord>
<rekord id="4" />
</Dane>'
I teraz wykorzystujemy metodę nodes:
SELECT Tabela.Kolumna.query('.') AS result
FROM @daneXML.nodes('/Dane/rekord') Tabela(Kolumna)
Metoda nodes definiuje nam w tym przypadku docelową tabelę i docelową kolumnę dla ścieżki
‘/Dane/rekord’ w obiekcie typu XML, odpowiednio jako Tabela i Kolumna. Każdy element z węzła
Dane jest zwracany jako osobny rekord. W tym przypadku w wyniku otrzymujemy cztery rekordy.
30. Omów główne postulaty natywnego przetwarzania dokumentów XML w bazie danych
IBM DB2 (proponuje przeczytać co 1 grupa napisala na ten temat, bo nie jestem pewny)
•
•
•
Natywny XML oznacza, że dokumenty XML przechowywane są na dysku w drzewiastych
strukturach pasujących do modelu danych XML
•
zapobiega to mapowaniu miedzy XML a strukturą relacyjną i odpowiadającym tym
ograniczeniom
Natywne przechowywanie XML jest uzupełnione o indexy XML (rozwinięte w innych
pytaniach)
Pełne wsparcie dla XQuery, SQL/XML i XML Schema (rozwinięte w innych pytaniach)
Overview:
tabela z kolumną XML
typ danych XML jest typem pierwszej klasy, tak jak inne typy SQL