XStore - XML database, The Core

XStore je databázový systém navržený přímo pro ukládání XML dokumentů. XML dokumenty jsou ukládány do adresářové struktury a k dotazování nad těmito dokumenty jsou určeny jazyky jsou XPath a XQuery. Pro modifikace je určen jazyk XUpdate. Výsledný produkt je databázový systém, který kromě samotného ukládání dat a přístupu k těmto datům obsahuje také transakční mechanismy a žurnálování. Dále je podporována správa uživatelů a jejich přístupová práva k datům v databázi.

  1. Logická struktura dat a operace v XStore

    XStore ukládá XML dokumenty do stromové struktury. Existuje právě jeden kořen této stromové struktury. Každý takový uzel může obsahovat další uzly této stuktury, XML schémata a XML dokumenty s daty. Každý XML dokument v daném uzlu odpovídá alespoň jednomu XML schématu v tomto uzlu.

    Je možné měnit samotnou logickou stromovou strukturu (přidávání a odebírání uzlů), modifikovat XML schémata v uzlech (přidávání, odebírání a modifikace XML schémat) a samozřejmě modifikovat XML dokumenty v uzlech. Lze přidávat úplně nové XML dokumenty. Potom ale přidávaný XML dokument musí odpovídat jednomu z XML schémat v uzlu. Dále lze odstraňovat celé dokumenty nebo tyto dokumenty modifikovat. Po skončení modifikační operace dokumentu však musí být zajištěno, že výsledný XML dokument bude odpovídat alespoň jednomu XML schéma v daném uzlu. Modifikování logické stromové struktury, XML schémat a obsahu dokumentů bude uživateli prováděno prostřednictvím konstrukcí jazyka XUpdate. Bude však zajištěno, aby případné vydání standardu jazyka pro modifikaci XML dat bylo co nejjednodušší v systému implementovat.

    Přístup k datům bude uživatelům umožněn pomocí jazyka XQuery. Dotazovat se mohou jak na data z XML dokumentů, tak na logickou stromovou strukturu XStore, případně kombinovaně (dotaz obsahuje jak popisy míst, kde se dokument s potřebnými daty nachází tak specifikaci dat v daných dokumentech a operace s těmito daty). Vzhledem k tomu, že je možné chápat logickou stromovou strukturu a dokumenty v ní uložené jako jeden XML dokument, není potřeba nějakým způsobem jazyky XUpdate a XQuery rozšiřovat o dotazování nad logickou strukturou.

  2. Uživatelé, přístupová práva, role

    Každý uživatel může k databázi přistoupit pouze po úspěšné autorizaci (heslem a uživatelským jménem). Uživateli jsou poté nabízeny tzv. role, do kterých se může autorizovaný uživatel obsadit. Daná role potom uživateli určuje jeho přístupová práva k datům v XStore.
    Každá role je vytvořená v nějakém uzlu logické struktury XStore. Tento uzel se poté stává root uzlem této role a každý uživatel, který přistupuje k datům obsazený v této roli "vidí" pouze uzly a dokumenty pouze v podstromu tohoto root uzlu. Směrem nahoru se v logické struktuře pohybovat nemůže. Uživatel potom může přistupovat nejvýše k uzlům a dokumentům v podstromu root elementu role, ve které je obsažen.
    Pojem "nejvýše" znamená, že mohou existovat podstromy stromu s kořenem v root uzlu dané role, do kterých uživatelé v této roli nemají přístup. Je totiž možné, aby uživatel (který je obsazen v takové roli, která mu k tomu dává dostatečná práva) zakázal některým rolím definovaným ve vyšších uzlech hierarchie zakázal vstup do uzlu.

  3. Administrace

    Existují dva typy rolí dané implicitně systémem určené pro administraci systému.
    Prvním typem je hlavní administrátor systému, který nespravuje přímo obsah databáze, ale provádí udržbu a systémové zásahy. Existuje pouze jedna role tohoto typu v systému.
    Druhým typem role je administrátor obsahu. Rolí tohoto typu může být několik a každá je určená pro správu obsahu množiny uzlů logické stromové struktury. Administrátor uzlu logické struktury má právo na modifikování logické struktury (přidávání a odebírání uzlů v podstromě), na správu schémat a na správu dokumentů. Další kompetencí administrátora uzlu je správa rolí v uzlech. Pro každý svůj uzel vytváří, maže a modifikuje role lokalizované do tohoto uzlu a spravuje seznam zakázaných rolí.

  4. Architektura

    XStore je databázový server. Jeho součástí je komunikační protokol a API v jazyce Java, které umožní komunikaci se serverem. Server je lokální a předpokládá se, že koncoví uživatelé s ním budou komunikovat z Internetu prostřednictvím webového serveru a Javovského kódu v podobě servletů. Webový server není součástí XStore.

  5. Bezpečnost dat a paralelní přístup k datům

    XStore podporuje standardní databázová řešení určená pro ochranu dat a paralelismus. Jsou podporovány transakce a paralelní přístup k objektům databáze a metody pro zotavení z chyb.

  6. Projekt - XStore, the core

    Tématem našeho projektu bude implementace jádra databáze XStore. Tímto jádrem jsou myšleny následující součásti: