Compito di BDD2 - 18/6/2008 - Compito A

Esercizio 1

Si scriva un possibile DTD che modelli nel modo piu' accurato possibile una base di dati calcistica, una cui istanza corrisponde al seguente XML:

<campionato annata="2008" titolo="Europeo">
<gruppo nome="C">
<squadre>
<squadra nome="Francia" id="FR"/>
<squadra nome="Italia" id="IT"/>
<squadra nome="Romania" id="RO"/>
<squadra nome="Olanda" id="NL"/>
</squadre>
</gruppo>

<gruppo nome="D">
<squadre>
<squadra nome="Spagna" id="ES"/>
<squadra nome="Svezia" id="SE"/>
<squadra nome="Russia" id="RU"/>
<squadra nome="Grecia" id="GR"/>
</squadre>
</gruppo>

<partita squadre="FR IT">
<data>2008-06-17</data>
<marcatore squadra="IT" minuto="62">De Rossi</marcatore>
<marcatore squadra="IT" minuto="25">Pirlo</marcatore>
</partita>

<partita squadre="RO FR">
<data>2008-06-09</data>
</partita>

<partita squadre="GR SE">
<marcatore squadra="SE" minuto="66">Ibrahimovic</marcatore>
<marcatore squadra="SE" minuto="72">Hansson</marcatore>
</partita>

<partita squadre="ES RU">
<data>2008-06-10</data>
<marcatore squadra="ES" minuto="20">Villa</marcatore>
<marcatore squadra="ES" minuto="44">Villa</marcatore>
<marcatore squadra="ES" minuto="75">Villa</marcatore>
<marcatore squadra="ES" minuto="90">Fabregas</marcatore>
<marcatore squadra="RU" minuto="86">Pavluchenko</marcatore>
</partita>
</campionato>


Esercizio 2

Si scriva una query in XQuery che usando una base di dati calcistica espressa dal precedente DTD, che si trova all'indirizzo http://www.example.com/soccer.xml, generi un report dei risultati delle partite, tale che ad esempio la base di dati precedente venga resa nel seguente modo:

I risultati del Campionato Europeo 2008

Gruppo C
Romania - Francia: 0 - 0
Francia - Italia: 0 -2

Gruppo D
Grecia - Svezia: 0 - 2
Spagna - Russia: 4 - 1


Esercizio 3

Si scriva una query in XQuery che usando una base di dati calcistica espressa dal precedente DTD, che si trova all'indirizzo http://www.example.com/soccer.xml, generi la classifica marcatori, tale che ad esempio la base di dati precedente venga resa nel seguente modo:

La classifica Marcatori Europeo 2008
(dal 2008-06-09 al 2008-06-17)

Villa (Spagna) con 3 goals, De Rossi (Italia) con 1 goal, Fabregas (Spagna) con 1 goal, Hansson (Svezia), con 1 goal, Ibrahimovic (Svezia) con 1 goal, Pavluchenko (Russia) con 1 goal, Pirlo (Italia) con 1 goal


Esercizio 4

Si scriva una trasformata XSLT che usando una base di dati calcistica espressa dal precedente DTD, generi la lista delle squadre partecipanti, tale che ad esempio la base di dati precedente venga resa nel seguente modo:

La lista delle squadre partecipanti al campionato Europeo 2008:
Francia, Grecia, Italia, Olanda, Romania, Russia, Spagna, Svezia.