Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
|
enseignement:tp:bd:tp-xml-sql:2015 [2015/10/06 14:07] ecoquery [Modalités de rendu] |
enseignement:tp:bd:tp-xml-sql:2015 [2016/10/16 21:11] (Version actuelle) ecoquery [Modalités de rendu] |
Ce TP sera réalisé sous Oracle SQLDevelopper (disponible en salle TP Windows). Chaque étudiant se verra attribuer un compte oracle via tomuss (cf [[enseignement:aide:oracle|aide Oracle]]). | Ce TP sera réalisé sous Oracle SQLDevelopper (disponible en salle TP Windows). Chaque étudiant se verra attribuer un compte oracle via tomuss (cf [[enseignement:aide:oracle|aide Oracle]]). |
| |
===== Modalités de rendu ===== | Ce TP n'est pas à rendre. |
| Des questions pourront cependant être posées en examen sur les techniques abordées dans ce TP. |
Ce TP est à réaliser seul ou en binôme (trinômes interdits). On téléchargera le fichier de réponses {{:enseignement:tp:bd:tp-xml-sql:forets-sql-xml.sql|}}. On complétera le fichier et on le renommera en ''Groupe_Nom1_Prenom1_Nom2_Prenom2_reponses-tp-xml.sql''. Groupe est le numéro groupe de TP de M1, Nom1_Prenom1 est le nom et le prénom du premier membre du binôme, Nom2_Prenom2 est le nom et le prénom du second membre du binôme((le cas échéant)). | |
| |
<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]] **pour le 13/10/2015** | |
| |
Le non-respect de ces consignes pourra être sanctionné dans la note de ce TP. | |
===== Introduction ===== | ===== Introduction ===== |
| |
</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> |
| |