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
Prochaine révision Les deux révisions suivantes
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/05 14:54]
ecoquery [Introduction]
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/06 15:35]
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 63: Ligne 63:
 <!ELEMENT hauteur (#PCDATA)> <!ELEMENT hauteur (#PCDATA)>
 ]></code> ]></code>
-  - Ajouter, lorsqu'elle est disponible, le nom de l'espèce (code: ''ESPAR'', nom obtenu via la vue ''documentation''), toujours pour la parcelle 613376. Remarque: il y a deux arbres dont le code espece n'est pas dans documentation.<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 75: Ligne 75:
 <!ELEMENT quantite (#PCDATA)> <!ELEMENT quantite (#PCDATA)>
 ]> </code> ]> </code>
-  - 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 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*)> 
 +<!ATTLIST parcelle id CDATA #REQUIRED> 
 +<!ELEMENT espece (#PCDATA)> 
 +<!ATTLIST espece code CDATA #REQUIRED> 
 +]></code> 
 +  - 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 82: Ligne 88:
 <!ATTLIST espece code CDATA #REQUIRED> <!ATTLIST espece code CDATA #REQUIRED>
 ]></code> ]></code>
-  - 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 96: Ligne 102:
 <!ATTLIST parcelle id CDATA #REQUIRED> <!ATTLIST parcelle id CDATA #REQUIRED>
 ]></code> ]></code>
 +
 +
 +<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>