Bazy danych XML
Z Wikipedii
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:
- 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,
- Natywne bazy danych XML – używają dokumentów XML jako podstawowe jednostki przechowujące.
Spis treści |
[edytuj] Powody użycia XML w bazach danych
Jedna 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.
[edytuj] Natywne bazy danych XML
Termin "Natywne bazy danych XML" może prowadzić do pomyłek, ponieważ wiele z nich nie są samodzielnymi bazami danych i nie przechowują 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), wspierają co najmniej jedną formę składni zapytania. Prawie wszystkie z nich wspierają w stopniu co najmniej minimalnym XPath do przeprowadzania zapytań dla dokumentów lub kolekcji dokumentów. XPath jest prostym systemem wybierającym pozwalający użytkownikom na wyszczególnieniu interesujących ich węzłów dokumentów XML spełniających określone przez nich kryteria.
Oprócz XPath, wiele baz danych XML wspiera 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 wspierają 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 wspiera 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.
[edytuj] Bazy danych wspierające XML:DB API (XAPI)
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 |
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 |
[edytuj] Implementacje
- 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 wspiera aktualizacje W3C XQUF,
- Oracle XML DB (od wydania Oracle 10g znana jako Oracle XDB) pomimo swojej nazwy nie wspiera 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
- ↑ O'Connell, S. Advanced Databases Course Notes, Southampton, University of Southampton, 2005
[edytuj] Linki zewnętrzne
- An XML-based Database of Molecular Pathways Porównanie szybkości i wydajności eXist, X-Hive, Sedna i Qizx/open,
- XML Native Database Systems: Review of Sedna, Ozone, NeoCoreXMS 2006
- XML Data Stores: Emerging Practices
- Bhargava, P.; Rajamani, H.; Thaker, S.; Agarwal, A. (2005) XML Enabled Relational Databases, Texas, The University of Texas at Austin.
- Initiative for XML Databases
- The State of Native XML Databases, Elliotte Rusty Harold, August 13th, 2007