Université de Sherbrooke Faculté des sciences Département d informatique IGE 487 Modélisation de bases de données Travail pratique 3 XML et les bases de données. Pour le troisième travail pratique, nous allons explorer la relation entre les bases de données relationnelles et XML. Souvent, la connexion à une base de données à distance n est pas assurée, par exemple, dans un terrain de baseball. Une bonne stratégie est de créer une base de données locale pour répondre à quelques requêtes de base. Nous pouvons implémenter cette base de données avec un ensemble de fichiers XML. Prenons le schéma relationnel suivant : Modélisation d'une ligue de baseball DateFin Numero JoueurNom JoueurPrenom DateDebut EquipeNom EquipeId Jouer (1,n) (1,1) JoueurEquipe Equipe JoueurId (1,1) (1,1) CoupsSur Erreurs Performace Participe ScoreFinal EquipeLocal (1,n) NumeroMatch Match (1,n) EquipeVisiteur MatchClé Date ScoreFinal Terrein Heure CoupsSur Erreurs IGE 487 Modélisation de bases de données. Été 2010 Troisième travail pratique 1
Voici quelques précisions par rapport aux attributs : Nom du Type Obligatoire? Description champ Joueur JoueurNom String 64 OUI Le nom du joueur JoueurPrenom String 64 OUI Le prénom du joueur JoueurId Integer OUI L identifiant unique de chaque joueur Équipe EquipeNom String 64 OUI Le nom de l équipe EquipeId Integer OUI L identifiant unique de chaque équipe JoueurEquipe DateDebut Date OUI La date quand le joueur a commencé à jouer pour une équipe DateFin Date La date quand le joueur a fini de jouer pour une équipe. Null s il joue encore pour cette équipe. Numero Integer OUI Le numéro porté par le jouer dans l équipe. Match NumeroMatch Integer OUI L identifiant unique de chaque match Date Date OUI La date du match Heure Time OUI L heure du match Terrain String 64 OUI Le nom du terrain Participe Performance String 128 Un commentaire sur la performance d un joueur dans un match donné. EquipeLocal et EquipeVisiteur Integer La quantité de points marqués par l équipe dans le match CoupsSur Integer La quantité de coups surs frappés par l équipe dans le match. Erreurs Integer La quantité d erreurs faites par l équipe dans le match. IGE 487 Modélisation de bases de données. Été 2010 Troisième travail pratique 2
Le travail à faire 1. Vous devez créer modèle XML équivalent au modèle relationnel montré. 2. Vous pouvez créer autant de fichiers XML comme vous avez besoin. 3. Il faut respecter les noms utilisés dans la base de données pour les attributs dans les fichiers XML. 4. Vous devez créer les schémas de validation XSD nécessaires pour assurer l intégrité du modèle. 5. En utilisant le langage XQuery vous devez répondre aux questions suivantes : Fichier rq1.xq rq2.xq rq3.xq rq4.xq rq5.xq rq6.xq rq7.xq Question Donner l id, le nom et le prénom de tous les joueurs. Donner la liste de toutes les équipes de la lige. Donner la liste de joueurs actifs par équipe. Donner la liste de tous les joueurs qui ont joué dans une équipe. Donner le calendrier de la saison, c est-à-dire, la date, l heure, le terrain de tous les matchs, ainsi que les équipes participantes. Il faut trier le calendrier par date et heure. Donner les résultats de tous les matchs joués. Il faut montrer dans un tableau : le numéro de match, la date et l heure, le nom des équipes, ainsi que les points marqués, les coups surs et les erreurs. Donner les matchs où l équipe locale a gagné. Il faut montrer toutes les données du match. Pour pouvoir exécuter vos requêtes, il faut utiliser le fichier saxon8.jar qui se trouve sur le site web du cours. La syntaxe à suivre est : java -cp saxon8.jar net.sf.saxon.query -t rq1.xq > rq1.xml qui permet d exécuter la requête stockée dans le fichier rq1.xq et envoyer la sortie au fichier rq1.xml. Ce fichier xml est affichable à l aide d un navigateur web comme Internet Explorer. Livrables Les livrables attendus pour ce travail sont : 1. Les fichiers XML nécessaires pour créer le modèle XML équivalent avec quelques données de test. 2. Les fichiers XSD pour assurer la cohérence du modèle. Un fichier XSD pour chaque fichier XML. 3. Sept fichiers ayant le code XQuery nécessaire pour répondre aux requêtes demandées. Une requête par fichier respectant le nom indiqué dans le tableau de définition. IGE 487 Modélisation de bases de données. Été 2010 Troisième travail pratique 3
4. Un fichier avec la justification de votre choix d implémentation. C'est-à-dire, un fichier, plusieurs fichiers, etc. Votre implémentation peut se baser sur la performance des requêtes, la simplicité des requêtes, la simplicité de la maintenance du modèle, la modularité, et tout autre facteur pertinente. Nous allons tester vos requêtes avec le fichier ige487tp3.bat. Vous pouvez le trouver sur le site du cours. Comme un défi additionnel vous pouvez faire aussi le formatage en XML de vos fichiers texte pour pouvoir les afficher d une manière plus belle avec le navigateur internet. fichier ige487tp3.bat pour tester le fonctionnement du TP3 Requete 1 java -cp saxon8.jar net.sf.saxon.query -t rq1.xq > rq1.xml Requete 2 java -cp saxon8.jar net.sf.saxon.query -t rq2.xq > rq2.xml Requete 3 java -cp saxon8.jar net.sf.saxon.query -t rq3.xq > rq3.xml Requete 4 java -cp saxon8.jar net.sf.saxon.query -t rq4.xq > rq4.xml Requete 5 java -cp saxon8.jar net.sf.saxon.query -t rq5.xq > rq5.xml Requete 6 java -cp saxon8.jar net.sf.saxon.query -t rq6.xq > rq6.xml Requete 7 java -cp saxon8.jar net.sf.saxon.query -t rq7.xq > rq7.xml Remise La date prévue pour la remise du premier TP est le jeudi 8 juillet 2010. Il faut créer un répertoire nommé tp3 qui contient tous les fichiers à remettre. Utilisez la commande turnin pour remettre votre travail. turnin c ige487 p ige487tp3 tp3 IGE 487 Modélisation de bases de données. Été 2010 Troisième travail pratique 4
Évaluation Le barème de correction pour ce troisième travail pratique est : Caractéristique Le modèle XML 30 Le schéma de validation (fichiers XSD) 25 Les requêtes en XQuery 35 Justification 10 TOTAL 100 points IGE 487 Modélisation de bases de données. Été 2010 Troisième travail pratique 5