Compito di BDD2 - 11/9/2006

Esercizio 1

Si scriva un possibile DTD che modelli una base di dati di un supermercato, una cui istanza corrisponde al seguente XML:

<supermarket xmlns:i="http://www.instore.com">
<prodotto codice="312345">
<descrizione>Ravioli Schnitzel </descrizione>
<i:prezzo>4.30</i:prezzo>
<quantita>135</quantita>
</prodotto>
<prodotto codice="287183" offerta="si">
<descrizione>Detergente Lucidex </descrizione>
<i:prezzo>8.50</i:prezzo>
<quantita>74</quantita>
</prodotto>
<prodotto offerta="si" codice="543213">
<descrizione>Biscotti Ciokkoli' </descrizione>
<quantita>161</quantita>
<i:prezzo>6.70</i:prezzo>
</prodotto>
</supermarket>


Esercizio 2

Si scriva una trasformazione XSLT che trasformi la classe dei documenti definiti dal DTD dell'esercizio precedente, in modo tale che il precedente documento XML sia tradotto nel seguente documento XML:

<Situazione xmlns="http://www.marketing.com/rapporto">
<ProdottiNonInOfferta> Ravioli Schnitzel
</ProdottiNonInOfferta>
<o:Offerte xmlns:o="htp://www.scontati.com/"> Detergente Lucidex Biscotti Ciokkoli'
</o:Offerte>
<ProdottiOrdinatiPerCosto> Ravioli Schnitzel Biscotti Ciokkoli' Detergente Lucidex
</ProdottiOrdinatiPerCosto>
<ProdottiOrdinatiPerQuantita> Detergente Lucidex Ravioli Schnitzel Biscotti Ciokkoli'
</ProdottiOrdinatiPerQuantita>
</Situazione>


Esercizio 3

Si scriva una query in XQuery che data una base di dati definita dal DTD del primo esercizio, estragga la descrizione del prodotto meno costoso (nell'esempio del primo esercizio, ad esempio, i Ravioli Schnitzel ).


Esercizio 4

Si risponda alle seguenti domande: