R2D2 > XML 2 RDB: een nieuw algoritme > Algoritme

5.1 Algoritme

In dit zelf samengestelde algoritme zitten elementen van de eerder besproken algoritmes en een aantal 'nieuwe' elementen. Deze laatste elementen zijn door mij bedacht en toegevoegd om het algoritme zo goed mogelijk overeen te laten komen met het doel dat ik gesteld heb voor de applicatie.

Mijn algoritme heeft, net als de andere besproken algoritmes, vier stappen. Deze stappen zijn echter wel iets anders ingedeeld:

  1. Versimpelen van de DTD - Een DTD kan behoorlijk ingewikkeld in elkaar steken. Om het geheel begrijpelijker en overzichtelijker te maken, is het wenselijk om de DTD te versimpelen. Natuurlijk moet er hierbij min mogelijk afbreuk gedaan worden aan de oorspronkelijke bedoelingen van de DTD.
  2. Ontwerpen van de prototype boomstructuur en relationele schema's - Om een overzicht te krijgen van de samenhang tussen de verschillende elementen en attributen in de DTD, is het handig om deze relaties 'uit te tekenen' in een boomstructuur. Vanuit een dergelijk boomstructuur is het vervolgens makkelijker om een relationeel schema te maken. Aan de hand van ontstane boomstructu(u)r(en) is het mogelijk om een voorlopig relationeel schema te fabriceren. Dit schema dient als basis voor de te ontwerpen tabellen in een RDB. Deze tabellen zijn genormaliseerd. De stappen voor het ontwerpen van een boomstructuur en het relationele schema zijn samengevoegd. Beide stappen doen namelijk in zekere zin hetzelfde en in een geautomatiseerde omgeving heeft de stap van het ontwerpen van de boomstructuur ook niet echt betekenis.
  3. Vinden van sleutels - Als het prototype van het relationele schema af is, wordt het tijd om te bepalen wat de primaire sleutels van de tabellen in de database worden.
  4. Positionering - In deze stap wordt een veld toegevoegd om de originele positie van een element vast te houden in het XML document. Daarnaast worden er enkele zaken afgehandeld op het gebied van naamgeving.

In het volgende gedeelte worden de onderscheiden stappen verder besproken.