Baza danych XML – 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

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

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ługuje 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

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 wydana 9 maja 2007
BaseX Open source, free Tak
Gemfire Enterprise Komercyjna Tak
DOMSafeXML Komercyjna Tak
eXist-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

Przypisy edytuj

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

Linki zewnętrzne edytuj