XML w bazach danych

XML do warstwy środkowej

Warto zastanowić się, czy obsługa XML w relacyjnych bazach danych w ogóle ma sens. Tego typu bazy mają architekturę dostosowaną przede wszystkim do operacji na zbiorach. Oczywiście mechanizmy obsługi zapytań XQL są wygodne i mogą upraszczać tworzenie aplikacji, ale z drugiej strony "nadużywanie" XML na pewno odbije się negatywnie na wydajności serwera.

XML doskonale się sprawdza jako format przechowywania tymczasowych informacji, np. w warstwie środkowej aplikacji. Serwer bazodanowy może przekazać kursor z danymi w postaci XML, ale obsługa i precyzowanie zapytań oraz formatowanie wyników nie musi być wykonywane na i tak silnie obciążonych serwerach. Również przekształcenie danych wejściowych można wykonać poza główną, relacyjną bazą danych. ADO.NET - nowa warstwa middleware Microsoftu - pozwala na jednoczesną obsługę danych w postaci relacyjnej i hierarchicznej. Podobną rolę mogą spełniać komponenty EJB, które wykorzystują jeden z dostępnych parserów XML, a z bazą danych komunikują się za pomocą protokołu JDBC.

Spora część dokumentów to różnego rodzaju metainformacje - począwszy od definicji struktury dokumentu, skończywszy na zwykle szczegółowym opisie pól. Wszystkie zalety XML jako formatu wymiany danych są tak naprawdę wadami, jeżeli traktuje się je jako metodę zapisu i przechowywania informacji. Większość motorów bazodanowych traktuje XML albo jak typ pola (Oracle), albo jako dodatkową postać danych, pochodzących z relacyjnego widoku (MS SQL, ASE itp.). Warto zwrócić uwagę, że praktycznie poza Tamino (i w pewnym sensie MS SQL) żaden z motorów bazodanowych nie obsługuje aktualizacji bazy za pośrednictwem XML.

Formułowanie zapytań do dokumentów XML czy opieranie się na tej strukturze przy projektowaniu aplikacji wymaga inwestycji w edukację programistów. W wielu przypadkach zdarza się, że nawet dane, które z korzyścią mogłyby być prezentowane w postaci hierarchicznej, są na siłę "upychane" w płaskich tabelach i łączone skomplikowanymi relacjami tylko dlatego że zespół programistów dobrze zna technologię relacyjną. w

Ultralekkie bazy

Software AG opracowała specjalny motor bazodanowy oparty na XML, przeznaczony dla urządzeń PocketPC. Tamino Mobile 3.0 jest wyspecjalizowanym parserem XML, który zachowuje się podobnie do "dużego" serwera Tamino. Z uwagi na ograniczenia platformy PocketPC, głównym przeznaczeniem produktu jest zapewnienie wygodnych mechanizmów replikacji palmtopa z centralnym serwerem. Warto dodać, że w przypadku replikacji danych XML znacznie prościej niż w tradycyjnych bazach rozwiązuje się konflikty np. gdy dwóch użytkowników będzie wprowadzać zmiany w tym samym poddrzewie.

Czy duet "XML + parser" zastąpi motory baz na platformach przenośnych? Co prawda wielkość parsera XML jest porównywalna z rozmiarem mikromotorów bazodanowych, ale dane zakodowane w XML zajmują zwykle znacznie więcej miejsca niż analogiczne pliki bazodanowe. Wydaje się, że obecnie na platformie PocketPC nadal bardziej opłaca się instalować SQL 2000 niż próbować zmieścić duże dokumenty XML. Chyba że podobnie jak w Tamino są zapisane w bardziej zwięzłej formie.


TOP 200