Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/05 18:04]
rthion [Questions]
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/08 06:38]
ecoquery [Questions]
Ligne 9: Ligne 9:
 <note warning>Ne pas modifier les commentaires déjà présents dans le fichier réponse à l'exception de l'entête contenant les noms/prénoms/numéro d'étudiant qu'il conviendra de compléter.</note> <note warning>Ne pas modifier les commentaires déjà présents dans le fichier réponse à l'exception de l'entête contenant les noms/prénoms/numéro d'étudiant qu'il conviendra de compléter.</note>
  
-On déposera ce fichier sur [[http://spiralconnect.univ-lyon1.fr/webapp/activities/activities.jsp?containerId=4975035|spiral]].+On déposera ce fichier sur [[http://spiralconnect.univ-lyon1.fr/webapp/activities/activities.jsp?containerId=4975035|spiral]] **pour le 13/10/2015**
  
 Le non-respect de ces consignes pourra être sanctionné dans la note de ce TP. Le non-respect de ces consignes pourra être sanctionné dans la note de ce TP.
Ligne 38: Ligne 38:
 </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 =====
  
Ligne 57: Ligne 57:
 <!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>
Ligne 74: Ligne 74:
 <!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*)>
 <!ATTLIST parcelle id CDATA #REQUIRED> <!ATTLIST parcelle id CDATA #REQUIRED>
 <!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 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*)>
 <!ATTLIST parcelle id CDATA #REQUIRED> <!ATTLIST parcelle id CDATA #REQUIRED>
Ligne 87: Ligne 87:
 <!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 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+)>
 <!ATTLIST espece code CDATA #REQUIRED> <!ATTLIST espece code CDATA #REQUIRED>
Ligne 94: Ligne 94:
 <!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+)>
Ligne 101: Ligne 101:
 <!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>