Baza danych XML

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Baza danych XML jest to taki programowy system trwałych struktur danych, który pozwala na zapisanie tych danych w formacie XML. Dane te mogą być potem pobierane, wysyłane i serializowane w dowolnym formacie.

Dwie ważne klasy baz danych XML to:

  1. Bazy danych umożliwiające przechowanie danych w formacie XML – są one tradycyjnymi bazami danych (np. relacyjnymi), które na wejściu i na wyjściu akceptują i generują dane w postaci XML. Przy czym ta konwersja jest wykonywana przez samą bazę danych, a nie przez dodatkowe oprogramowanie,
  2. Natywne bazy danych XML – używają dokumentów XML jako podstawowe jednostki przechowujące.

Powody użycia XML w bazach danych[edytuj | edytuj kod]

Jedną z najważniejszych przyczyn jest to, za O'Connellem[1], że coraz powszechniejsze użycie technologii XML do przesyłania danych sprawia, że w przypadku istniejących baz danych, dane są pobierane z tych baz a potem konwertowane do dokumentów XML i na odwrót. Jeśli by przechowywać te dane (będące już w formacie XML) od razu w formacie XML, to takie postępowanie może być wtedy bardziej efektywne i łatwiejsze ze względu na brak konwersji.

Natywne bazy danych XML[edytuj | edytuj kod]

Termin "Natywne bazy danych XML" może prowadzić do pomyłek, ponieważ wiele z nich nie jest samodzielnymi bazami danych i nie przechowuje danych w formacie XML.

Formalna definicja od Konsorcjum XML:DB stanowi że natywna baza danych XML:

  • Definiuje logiczny model dla dokumentu XML, a nie dla danych zawartych w tym dokumencie. Ponadto przechowuje i pobiera dokumenty zgodnie z danym modelem. Jako minimum przyjmuje się, że model musi zawierać elementy, atrybuty, elementy typu dowolny tekst (PCDATA) i kolejność w dokumencie.
  • Przechowuje dane w dokumentach XML jako podstawowych jednostkach przechowujących. Przykładowo, dla relacyjnych baz danych podstawową jednostką przechowującą jest wiersz tabeli,
  • Nie potrzebuje posiadać jakiegoś szczególnego fizycznego modelu przechowywania danych. Przykładowo, bazy danych XML mogą używać relacyjnych, hierarchicznych lub obiektowych struktur bazodanowych, a także zastrzeżonych formatów przechowujących, np. plików skompresowanych.

Dodatkowo, wiele baz danych XML posiada logiczny model grupowania dokumentów, zwanych kolekcjami. Bazy danych mogą zarządzać wieloma kolekcjami jednocześnie. W części implementacji istnieje także hierarchia kolekcji, analogicznie jak w przypadku struktur katalogowych w systemach operacyjnych.

Wszystkie bazy danych XML (od 2006 roku) obsługują co najmniej jedną formę składni zapytania. Prawie wszystkie z nich obsługują w stopniu co najmniej minimalnym XPath do przeprowadzania zapytań dla dokumentów lub kolekcji dokumentów. XPath jest prostym systemem wybierającym, pozwalającym użytkownikom na wyszczególnienie interesujących ich węzłów dokumentów XML spełniających określone przez nich kryteria.

Oprócz XPatha wiele baz danych XML obsłguguje XSLT jako metodę przetworzenia dokumentów lub wyników zapytań do tych baz. XSLT posiada deklaratywny język napisany w gramatyce XML. Jego celem jest definiowanie zbioru filtrów XPath, które posłużą do przetwarzania części lub całości dokumentów do innych formatów, np. czysty tekst, XML, HTML lub PDF.

Nie wszystkie bazy danych XML obsługują XQuery do wykonywania zapytań. XQuery zawiera XPath jako metodę wyboru węzłów ale jednocześnie rozszerza ten XPath tak, aby posiadał pewne własności transformujące. Znaczy to, że składnia zawiera takie słowa kluczowe jak: 'For', 'Let', 'Where', 'Order' i 'Return', które mogą zmienić (transformować) odpowiedź na pierwotne zapytanie XPath. Swoją drogą, anglojęzyczni użytkownicy odnoszą się czasami do składni XQuery jako FLWOR (wymowa angielska: flower) ze względu na pierwsze litery powyższych słów kluczowych.

Część baz danych XML obsługuje interfejs programistyczny API zwany XML:DB API (albo XAPI) jako formę niezależnej od implementacji dostępu do składnicy danych XML. W bazach danych XML, XAPI przypomina ODBC i JDBC używane w relacyjnych bazach danych.

Bazy danych obsługujące XML:DB API (XAPI)[edytuj | edytuj kod]

Poniższe bazy danych XML implementują XML:DB API w postaci zdefiniowanej przez XML:DB Initiative.

Baza danych XML Licencja Wsparcie Uwagi
Apache XIndice Open source, free Tak XIndice wersja 1.1 wydane 9 maja 2007
BaseX Open source, free Tak
Gemfire Enterprise Komercyjna Tak
DOMSafeXML Komercyjna Tak
eXisteXist-db Open source, free Tak Transakcje ACID nie są obsługiwane
MonetDB/XQuery Open source, free Tak
myXMLDB Open source, free Tak Działa jako warstwa wierzchnia dla MySQL, wydaje się być od dawna nierozwijane.
OZONE Open source, free Tak 100% wsparcia, włącznie z ACID.
Sedna Open source, free Tak 100% wsparcia, włącznie z ACID.
Software AG's Tamino Komercyjna Częściowo Brak wsparcia dla aktualizacji, XUpdateQueryService albo inny język Update nie są zaimplementowane

Implementacje[edytuj | edytuj kod]

  • Apache Xindice,
  • BaseX natywna, otwarta baza danych XML rozwijana na University of Konstanz,
  • Berkeley DB XML, do systemów wbudowanych; przemianowana na Oracle Berkeley DB XML, wbrew swojej nazwie nie obsługuje XML:DB API,
  • BSn/NONMONOTONIC Lab: IB Search Engine, do systemów wbudowanych; Silnik wyszukujący XML++ używający model ogólny/abstrakcyjny i mieszanki polimorficznych typów obiektów. Wywodzi się od projektu Isearch,
  • DB2 9 Express-C, Bezpłatny, hybrydowy serwer danych pureXML,
  • DOMSafeXML, otwarta, komercyjna i natywna baza danych XML, napisana w C/C++,
  • eXist-dbeXist-db, otwarta i natywna baza danych XML, napisana w Javie,
  • Gemstone System's GemFire Enterprise komercyjna baza danych XML,
  • MarkLogic Server, natywna baza danych XML ze wsparciem dla XQuery,
  • MonetDB/XQuery – otwarty procesor XQuery dla relacyjnej bazy danych MonetDB. Także obsługuje aktualizacje W3C XQUF,
  • Oracle XML DB (od wydania Oracle 10g znana jako Oracle XDB) pomimo swojej nazwy nie obsługuje XML:DB API,
  • Sedna XML DBMS, wysokowydajna natywna baza danych XML. Zapewnia niezawodne przechowywanie danych, przetwarzanie dużych zestawów danych, dostęp XQuery, wyzwalacze XQuery, aktualizacje, transakcje i odzyskiwanie danych,
  • SQL Server 2005, darmowa wersja Express Edition z pełnym zestawem technologii XML,
  • Tamino XML Server, pierwsza wysokodostępna natywna baza danych XML klasy Enterprise. Obsługuje XQuery, WebDAV, wersjonowanie, indeksowanie nie-XML i wiele API,
  • TEXTML Server, wysokoskalowalna, natywna baza danych XML połączona z zaawansowanym silnikiem wyszukującym,
  • TigerLogic XDMS natywna baza danych XML,
  • Timber, natywna baza danych XML rozwijana na University of Michigan,
  • X-Hive/DB, komercyjna natywna baza danych XML; zawiera implementację XQuery,
  • Qizx/db 2.0 natywny silnik bazodanowy XQuery, napisany w Javie (dostępna jest wersja wolna i open-source),
  • XStreamDB, natywna baza danych XML.

Przypisy

  1. O'Connell, S. Advanced Databases Course Notes, Southampton, University of Southampton, 2005

Linki zewnętrzne[edytuj | edytuj kod]