R2D2 > XML 2 RDB: de theorie > Conversie XML-data naar RDB
Een simpele manier om XML-data om te zetten naar een RDB systeem is met behulp van zogenaamde ad-hoc schema's. Dit houdt in dat er geen gebruik gemaakt wordt van een eventueel aanwezige DTD en dat er geen analyse plaatsvindt van de XML-data. Het algoritme hiervoor heb ik het ND algoritme gedoopt en deze wordt beschreven in [FLO99].
Allereerst kan de XML-data opgeslagen worden in een database door voor alle edges in een boomstructuur om te zetten in een tabel. In zo'n tabel worden de oids van de parent en de child opgeslagen, het label van de edge en een vlaggetje om aan te geven of het om een attribuut gaat en of er een waarde bij hoort (een leaf of eind-node). Ook wordt er een volgnummer opgeslagen. Dit is omdat elementen geordend zijn in XML-data.
Een andere manier is de zogenaamde binary approach. Hierin worden schema's gemaakt voor alle verschillende labels van de edges. Dit betekent dat voor elk element of attribuut in de DTD er een tabel komt.
De laatste mogelijkheid is de universal table. Hierin worden de verschillende tabellen die je bij de binary approach gebruikt, samengevoegd.
Voor het opslaan van de daadwerkelijke (string)waarden van de elementen en attributen kunnen twee manieren gebruikt worden. De waarden kunnen opgeslagen worden in een aparte tabel. Hierin wordt dan een waarde aan een bepaald ID gekoppeld. De andere manier is door deze waarden rechtstreeks in de tabellen erbij te zetten.
Het grootste nadeel van dit algoritme is dat het te simpel is. Het databaseontwerp dat hieruit voortkomt is ternauwernood relationeel te noemen en bevat bovendien veel redundantie. Om deze reden is dit algoritme verder ook niet heel erg interessant voor mijn doelstelling, daar er hierin uitgegaan wordt van de aanwezigheid van een DTD.
De overige algoritmen besteden geen aandacht aan deze stap. De vier algoritmes zijn nu besproken en allen hebben zowel voor- als nadelen. In het volgende hoofdstuk wil ik zelf een algoritme ontwikkelen die de eerder genoemde nadelen niet heeft.
| << vorige | volgende >> | ©Robert Bouma, 02-01-2003 |