Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
Dernière révision
Les deux révisions suivantes
|
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/06 14:07] ecoquery [Modalités de rendu] |
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/08 06:38] ecoquery [Questions] |
</code> | </code> |
| |
| <note tip>Il est également possible de réaliser ce tp sous postgresql. Il convient alors d'insérer les données dans la base via le script suivant: {{:enseignement:tp:bd:tp-xml-sql:forets-postgres.sql.gz|}}</note> |
===== Génération de XML ===== | ===== Génération de XML ===== |
| |
<!ELEMENT arbre(hauteur)> | <!ELEMENT arbre(hauteur)> |
<!ELEMENT hauteur (#PCDATA)> | <!ELEMENT hauteur (#PCDATA)> |
]></code> | ]></code>27 ou 8 réponses selon que l'on met des hauteurs vides ou non. |
- Reprendre la question précédente et ajouter un attribut ''id'' (valeur obtenue via ''A'') dans l'élément ''arbre''.<code xml><!DOCTYPE arbre [ | - Reprendre la question précédente et ajouter un attribut ''id'' (valeur obtenue via ''A'') dans l'élément ''arbre''.<code xml><!DOCTYPE arbre [ |
<!ELEMENT arbre(hauteur)> | <!ELEMENT arbre(hauteur)> |
<!ATTLIST arbre id CDATA #REQUIRED> | <!ATTLIST arbre id CDATA #REQUIRED> |
<!ELEMENT hauteur (#PCDATA)> | <!ELEMENT hauteur (#PCDATA)> |
]></code> | ]></code>27 ou 8 réponses selon que l'on met des hauteurs vides ou non. |
- Ajouter, lorsqu'elle est disponible, le nom de l'espèce (code: ''ESPAR'', nom obtenu via la vue ''documentation''((Attention, les codes sont réemployés ''select * from documentation where code = '02';'' renvoie 9 résultats))), toujours pour la parcelle 613376. Remarque: il y a deux arbres dont le code espece n'est pas dans documentation. On doit avoir le même nombre de résultats qu'à la question précédente.<code xml><!DOCTYPE arbre [ | - Ajouter, lorsqu'elle est disponible, le nom de l'espèce (code: ''ESPAR'', nom obtenu via la vue ''documentation''((Attention, les codes sont réemployés ''select * from documentation where code = '02';'' renvoie 9 résultats))), toujours pour la parcelle 613376. Remarque: il y a deux arbres dont le code espece n'est pas dans documentation. On doit avoir le même nombre de résultats qu'à la question précédente (utiliser e.g. un [[http://www.geekphilip.com/2012/04/01/visual-explanation-of-sql-joins/|XXX OUTER JOIN]]). <code xml><!DOCTYPE arbre [ |
<!ELEMENT arbre(hauteur,espece?)> | <!ELEMENT arbre(hauteur,espece?)> |
<!ATTLIST arbre id CDATA #REQUIRED> | <!ATTLIST arbre id CDATA #REQUIRED> |
<!ELEMENT nom (#PCDATA)> | <!ELEMENT nom (#PCDATA)> |
<!ELEMENT quantite (#PCDATA)> | <!ELEMENT quantite (#PCDATA)> |
]> </code> | ]> </code>115 réponses((:!: SQLDeveloper n'affiche que les 50 première si on ne fait pas défiler les résultats)) |
- Pour chaque parcelle dont l'identifiant (''IDP'') est inférieur ou égal à 600200, donner l'identifiant de la parcelle et la liste //sans doublons// des espèces présentes dans cette parcelle (son code ''ESPAR'' sous forme d'attribut XML et pour celles dont on le connait, leur nom sous forme de texte).<code xml><!DOCTYPE parcelle [ | - Pour chaque parcelle dont l'identifiant (''IDP'') est inférieur ou égal à 600200, donner l'identifiant de la parcelle et la liste //sans doublons// des espèces présentes dans cette parcelle (son code ''ESPAR'' sous forme d'attribut XML et pour celles dont on le connait, leur nom sous forme de texte).<code xml><!DOCTYPE parcelle [ |
<!ELEMENT parcelle (espece*)> | <!ELEMENT parcelle (espece*)> |
<!ELEMENT espece (#PCDATA)> | <!ELEMENT espece (#PCDATA)> |
<!ATTLIST espece code CDATA #REQUIRED> | <!ATTLIST espece code CDATA #REQUIRED> |
]></code> | ]></code>13 réponses |
- Pour chaque parcelle dont l'identifiant (''IDP'') est inférieur ou égal à 600200, donner l'identifiant de la parcelle, le nombre d'arbres de cette parcelle et la liste //sans doublons// des espèces présentes dans cette parcelle (son code ''ESPAR'' sous forme d'attribut XML et pour celles dont on le connait, leur nom sous forme de texte).<code xml><!DOCTYPE parcelle [ | - Pour chaque parcelle dont l'identifiant (''IDP'') est inférieur ou égal à 600200, donner l'identifiant de la parcelle, le nombre d'arbres de cette parcelle et la liste //sans doublons// des espèces présentes dans cette parcelle (son code ''ESPAR'' sous forme d'attribut XML et pour celles dont on le connait, leur nom sous forme de texte).<code xml><!DOCTYPE parcelle [ |
<!ELEMENT parcelle (nb,espece*)> | <!ELEMENT parcelle (nb,espece*)> |
<!ELEMENT espece (#PCDATA)> | <!ELEMENT espece (#PCDATA)> |
<!ATTLIST espece code CDATA #REQUIRED> | <!ATTLIST espece code CDATA #REQUIRED> |
]></code> | ]></code>13 réponses |
- Pour les espèces présentes dans entre 2 et 5 parcelles, donner leur code, leur nom et la liste //sans doublons// des parcelles (''IDP'') contenant des arbres de cette espèce.<code xml><!DOCTYPE espece [ | - Pour les espèces présentes dans entre 2 et 5 parcelles, donner leur code, leur nom et la liste //sans doublons// des parcelles (''IDP'') contenant des arbres de cette espèce.<code xml><!DOCTYPE espece [ |
<!ELEMENT espece (nom,parcelle+)> | <!ELEMENT espece (nom,parcelle+)> |
<!ELEMENT parcelle EMPTY> | <!ELEMENT parcelle EMPTY> |
<!ATTLIST parcelle id CDATA #REQUIRED> | <!ATTLIST parcelle id CDATA #REQUIRED> |
]></code> | ]></code>15 réponses |
- Reprendre la question précédente en ajoutant le nombre d'arbres de l'espèce concernée dans la parcelle concernée sous forme de texte dans l'élément ''parcelle''.<code xml><!DOCTYPE espece [ | - Reprendre la question précédente en ajoutant le nombre d'arbres de l'espèce concernée dans la parcelle concernée sous forme de texte dans l'élément ''parcelle''.<code xml><!DOCTYPE espece [ |
<!ELEMENT espece (nom,parcelle+)> | <!ELEMENT espece (nom,parcelle+)> |
<!ELEMENT parcelle (#PCDATA)> | <!ELEMENT parcelle (#PCDATA)> |
<!ATTLIST parcelle id CDATA #REQUIRED> | <!ATTLIST parcelle id CDATA #REQUIRED> |
]></code> | ]></code>15 réponses |
| |
| |
<note tip>Pour les requêtes complexes, mettez d'abord au point une requête SQL //classique// dont vous modifierez ensuite la clause ''SELECT'' pour produire du XML </note> | <note tip>Pour les requêtes complexes, mettez d'abord au point une requête SQL //classique// dont vous modifierez ensuite la clause ''SELECT'' pour produire du XML </note> |
| |