Semistructured data, XML en querytalen > XML Querytalen > Samenvatting
In de vorige paragraaf zijn een aantal voorbeeld queries de revue gepasseerd om een indruk te geven van de verschillende query talen en hun mogelijkheden. Bij elk van die queries is er gekeken naar drie verschillende querytalen. Twee daarvan komen uit de database gemeenschap (XML-QL en Lorel) en een uit de document gemeenschap (XQL).
De querytalen die voortkomen uit de databasegemeenschap hebben een aantal belangrijke en nuttige functies:23
pattern clausule, een filter clausule en een constructor clausule. De informatie die tussen deze clausules wordt uitgewisseld, kan vormgegeven worden als een relatie met een platte en ongeordende structuur.Hoewel XQL niet aan al deze punten voldoet, blijkt dat op deze querytaal het resultaat op andere manieren tot stand weet te brengen. Dat dit niet altijd wil heeft vooral te maken met het feit dat XQL gebruik maakt van projectie bij het weergeven van het resultaat, in plaats van herstructurering. Dit wil zeggen dat XQL de originele tags gebruikt om resultaat tot stand te brengen en niet, zoals de andere querytalen doen, een nieuwe structuur maken. Dit verschil is ook weer te verklaren vanuit de verschillen tussen documenten en databases. Bij documenten is het vaak interessant om de originele structuur te behouden terwijl bij het bevragen van databases vaak het resultaat belangrijker is dan de structuur.
De conclusie van de vergelijking laat zien dat zowel XML-QL als Lorel goed uit de test komen. Lorel presteert op alle vlakken goed, maar is alleen wat minder intuïtief dan XML-QL. Dit heeft er voornamelijk mee te maken dat XML-QL ontworpen is voor XML, terwijl Lorel een voortvloeisel is uit een algemeen semistructured data querytaal. XQL heeft meer moeite met de gestelde queries; de mogelijkheid tot flattening, grouping en sorting ontbreekt, hoewel aan dit laatste gewerkt wordt. Daartegen is het juist weer sterker dan de andere twee query talen op het gebied van het behouden van de originele structuur van een document en het gebruik van indexen op het document, twee gebieden waar XML-QL minder sterk in is. Een belangrijke reden hiervoor is de oorsprong van de taal. Omdat XQL ontstaan is vanuit de documentgemeenschap is het ook sterker in functies die hier veelal worden toegepast. Daarbij laat het steekjes vallen bij meer typische database functies, iets waar XML-QL wel goed in is. XML-QL op zijn beurt stamt uit de database gemeenschap en is dan ook beter in functies die binnen die gemeenschap als belangrijk worden beschouwd en minder in meer typische document operaties. Dit verklaart mede het relatief grote succes van XML-QL: de meeste voorbeeld queries hadden meer te maken met database operaties dan met document operaties.
Naast de voorbeeldqueries was er ook nog een algemene checklist voor functionaliteit die tenminste aanwezig zou moeten zijn in een querytaal. De tabel met de resultaten van die checklist zijn terug te vinden in paragraaf 3.2. Het gedeelte voor de drie besproken querytalen wordt hieronder nog eens herhaald:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
| XML-QL | j | j | j | j | j | j | n | j | j | n | j | j | j | n |
| Lorel | j | j | j | n | n | j | n | j | j | n | j | j | j | n |
| XQL | j | n | n | j | j | j | n | j | j | n | j | j | j | n |
Ook uit deze vergelijking komt XML-QL als de betere tevoorschijn. De enige punten waar deze querytaal slecht op scoort zijn meteen ook funest voor alle drie de talen. Alledrie zijn ze niet in staat om een eventueel meegeleverde DTD te gebruiken voor een efficiëntere query verwerking. Ook hebben alledrie niet de mogelijkheid om nieuwe datatypes te ondersteunen en ook de query syntax voor alle drie is niet direct om te zetten naar XML. Lorel is daarnaast ook niet in staat om XML output te genereren en voldoet ook niet aan de eisen op het gebied van compositional semantics. Dit heeft als belangrijkste oorzaak dat Lorel oorspronkelijk ontworpen is voor semistructured data in het algemeen en niet voor XML in het bijzonder. XQL, dat speciaal voor XML is ontworpen kan dit wel doen, maar heeft twee andere zwakke plekken. Op de eerste plaats kan XQL niet geoptimaliseerd worden of herschreven worden tot andere querytalen. En het tweede zwakke punt is de ondersteuning van de basis query operaties. Dit zagen we ook al bij de voorbeeldqueries en heeft er mee te maken dat XQL geschreven is binnen de document gemeenschap en de meeste query operaties vinden hun oorsprong binnen de database gemeenschap.
23) 'XML Query Languages: Experiences and Exemplars', Mary Fernandez, e.a., blz. 2.
| << vorige | volgende >> | Robert Bouma, 19-04-2002 |