Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
teaching:infoh303:projet [2007/12/13 12:43]
boverhae
teaching:infoh303:projet [2008/12/08 13:44]
boverhae
Line 1: Line 1:
-====== Projet du cours INFO-H-403 ======+====== Projet du cours INFO-H-303 ======
  
  
Line 6: Line 6:
  
  
 +===== Projet 2008-2009 : Annuaire d'​établissements horeca =====
  
 +  * {{teaching:​infoh303:​bdd_projet_0809_enonce.pdf|Enoncé}}
 +  * {{teaching:​infoh303:​bdd_projet_0809_donnees.zip|Données}} (corrigées au 04/12/08)
 +  * {{teaching:​infoh303:​bdd_projet_0809_ea.pdf|Correction du modèle entité-association}}
 +  * {{teaching:​infoh303:​bdd_projet_0809_rel.pdf|Correction du modèle relationnel}}
 +  * {{teaching:​infoh303:​intro_webapp.pdf|Introduction aux applications Web}}
 +  * {{teaching:​infoh303:​introduction_mysql.pdf|Introduction à mySQL}}
 +  * {{teaching:​infoh303:​introduction_google_maps.pdf|Introduction Google maps}}
  
  
  
 +==== Précisions ====
  
 +  * Les informations à propos des utilisateurs ne sont pas fournies. Les pseudonymes des utilisateurs présents dans les données doivent être présent mais les autres informations à leur propos (mail, date de naissance, ...) peuvent être inventées.
 +  * Certaines erreurs ont été trouvées dans les fichiers XML fournis initialement. Ces erreurs ont été corrigées.
 +    * Le créateur du bar "​Tavernier"​ est "​Boris"​ et pas "​1"​.
 +    * La "​Capacité"​ du restaurant "Le café des épices"​ est de 25 personnes.
 +    * Deux tags "Bon marché"​ étaient apposés par l'​utilisateur "​Fred"​ sur le café "​Greenwich"​. Un des deux a été remplacé par l'​utilisateur "​Ivan"​. (**4/​12/​08**)
 +  * Dans votre rapport final, votre modèle entité association et votre modèle relationnel doivent correspondre à votre implémentation (apports personnels inclus).
  
 +==== Evaluation ====
  
 +La défense du projet aura lieu le mardi 16/12/2008.
  
- +L'évaluation ​du projet ​tiendra compte ​des points suivants ​:  
- +  * le respect ​de l'énoncé 
- +  * la complétude ​et la qualité ​de votre application (écrans ​et fonctionnalités demandés
- +  * la qualité ​de votre modélisation ​ 
- +  * la cohérence ​du niveau ​conceptuel au niveau physique ​du point de vue  
- +    * des schémas 
- +    * des contraintes d'​intégrité 
- +  * les requêtes demandées 
- +  * la qualité ​et le soin du rapport 
- +  * vos apports personnels
- +
- +
- +
-===== Projet 2007-2008 ===== +
- +
-  * {{teaching:​infoh403:​infoh403_projet0708_enonce.pdf|Enoncé du projet 2007-2008}} +
-  * {{teaching:​infoh403:​infoh403_projet0708_donnees.zip|Données à importer dans la base de données}} +
-  * {{teaching:​infoh403:​infoh403_projet_webapp.pdf|Slides d'introduction aux applications web}} (15/​11/​2007) +
-  * {{teaching:​infoh403:​infoh403_projet_mysql.pdf|Slides d'​introduction à MySQL}} (15/​11/​2007) +
-  * [[http://​spreadsheets.google.com/​pub?​key=p0FmSsgfVWarb9u5qdIHzZw|Horaire de la défense finale ​du projet]] (07/​12/​07) +
-   +
- +
-<​note>​La défense aura lieu dans le bureau de Boris Verhaegen, UB4.133 (ancien bureau de Mohammed Minout). +
- +
- +
-Le rapport devra être rendu en même temps que votre défense. +
- +
- +
-Le code du projet devra être rendu uniquement sur demande ​des assistants.</​note>​ +
- +
-==== Question réponse pour la partie B ==== +
- +
- +
- +
-**Question 1** (07/​12/​07) ​Avec MySQL, comment ajouter une contrainte de clé étrangère avec une clé composée ? +
- +
-//Soit les tables //​T1(__cle1,​cle2__,​attribut1)//​ et //​T2(__cle1__,​T1_cle1,​T1_cle2)//​ où //​(T1_cle1,​T1_cle2)//​ référence //​(T1.cle1,​T2.cle2)//​.//​ +
- +
- +
-//Pour définir une contrainte de clé étrangère sur //​(T1_cle1,​T1_cle2)//​ de T2, il faut tout d'​abord définir un index sur ces deux colonnes de la table T2 via la commande //"​ALTER TABLE T2 CREATE INDEX monIndex ON T2(T1_cle1,​T1_cle2)"//​.//​ +
- +
- +
-//Ensuite, on peut créer la contrainte de clé étrangère sur ces deux champs via la commande //"​ALTER TABLE T2 ADD FOREIGN KEY (T1_cle1,​T1_cle2) REFERENCES T1(cle1,​cle2)"//​. Cette dernière opération ne semble pas prévue dans phpMyAdmin et il faut donc exécuter cette commande manuellement.//​ +
- +
-**Question 2** (11/12/07) : Peut-on considérer que les fichiers fournis (CSV et XML) sont corrects ? +
- +
-//Vous pouvez considérer que les fichiers sont syntaxiquement corrects mais vous devez tout de même vérifier les contraintes d'​intégrité sur ces données//​ +
- +
-**Question 3** (11/12/07) : Comment faire la requête 1 en algèbre et en calcul tuple ? +
- +
-//Pour la requête 1, une bonne façon est de commencer par faire une +
-requête qui donne les actions qui ont monté pendant la dernière +
-séance. Pour trouver la dernière séance, on peut se référer à +
-l'​exercice PUF qui concerne ​le produit le plus léger. +
-Ensuite, faire la requête 1 en prenant en compte les deux dernières +
-séances. On remarquera que le principe est similaire et qu'il peut +
-s'​utiliser pour faire la requête sur les 5 séances. Vous pouvez vous arrêter à cette requête sur deux séances et expliquer le principe pour arriver à la requête finale.// +
- +
-//Une autre façon ​de faire, moins correcte mais qui ne sera pas +
-considérée comme totalement fausse lors de la correction, est de faire +
-l'hypothèse que les 5 dernières séances sont les 5 derniers jours.// +
- +
-//Vous pouvez utiliser les opérateurs de comparaison (<,>,​=,​ ...) sur les dates.// +
- +
-**Question 4** (11/12/07) : Que doit contenir le scénario de démonstration ? +
- +
-//Lors de la démonstration,​ vous devrez suivre exactement votre scénario +
-de démonstration.//​ +
- +
-//Par exemple :// +
- +
-  * //​consultation de l'​action X// +
-  * //ajout de l'​indice Y avec les valeurs (a,​b,​c,​d)//​ +
-  * //insertion de l'​action (e,f,g,h) -> "​message d'​erreur"//​ +
- +
-//Tout cela avec les valeurs que vous utiliserez lors de votre démonstration.//​ +
- +
- +
-==== Précisions pour la partie A du rapport final (08/11/07) ==== +
- +
-=== Contraintes === +
- +
-Les contraintes suivantes doivent se trouver dans votre modèle conceptuel. ​  +
- +
-  * La clé de l'​entité "​actualité"​ doit être le lien. La source ​et la description sont optionnels et les autres attributs sont obligatoires. +
-  * Pour le cours d'un indice, on considère que le cours minimum/​maximum/​fermeture/​ouverture est la somme pondérée des cours minimum/​maximum/​fermeture/​ouverture des actions dont il est composé. +
-  * Les actions d'un indice doivent appartenir au même marché que celui-ci. +
-  * La date de publication d'une actualité doit être postérieure à la date du premier cours des produits financiers concernés. +
-  * Les contraintes relatives à la date actuelle ne font pas partie du modèle. +
-  * Pour le cours d'une action, le volume est obligatoire ​et celui-ci doit être vide dans le cas d'un indice (si vous stockez ces informations pour les indices)+
- +
-=== Divers === +
- +
-  * L'​historique d'un indice commence lorsque toutes les actions dont il est composé existent. +
-  * Si vous utilisez un type pour un produit financier dans votre modèle relationnel,​ son domaine doit être {INDICE,​ACTION} et pas {0,1}. +
-  * Il est interdit ​de rajouter des identifiants au niveau conceptuel et relationnel. Les attributs constituants les éléments doivent être suffisants pour l'​identification. Vous pourrez utiliser des identifiants lors de l'​implémentation physique. +
-  * Veuillez inclure une légende pour votre schéma entité-association dans votre rapport final. +
-  * Pour les dates et les heures, utilisez les types "​date"​ et "​datetime"​ au lieu de les détailler via des attributs composés. +
-  * Les contraintes du modèle conceptuel doivent être exprimées en utilisant ​la notation de celui-ci. +
-  * Les contraintes ​du modèle ​conceptuel ​à l'​exception des contraintes de domaine doivent être traduites pour le schéma relationnel en utilisant sa notation. +
-  +
- +
-==== Questions Réponses pour la partie A ==== +
- +
-**Question 1** (24/10/07) : Est-ce que le nom d'un produit financier est unique? +
- +
-//Non, le nom ne détermine pas univoquement un produit financier.//​ +
- +
-**Question 2** (24/10/07) : Est-ce qu'un pays et une ville identifient de manière unique un marché? +
- +
-//Non.// +
- +
-**Question 3** (24/10/07) : Dans le schéma entité-association,​ doit-on mettre toutes les clés possibles?​ +
- +
-//Oui.// +
- +
-**Question 4** (24/10/07) : Quelle est la signification du champ "cours fermeture ajusté"​ dans les fichiers CSV? +
- +
- +
-//Vous pouvez en tenir compte ou pas. Vous pouvez vous référer ​au site fr.finance.yahoo.com pour sa signification précise.//​ +
- +
-**Question 5** (24/10/07) : Peut-on avoir plusieurs relevés d'une action pour une même date? +
- +
- +
-//Non, les fichiers CSV représentent l'​historique des cours des actions par séance. Il n'y aura donc qu'une ligne par séance.//​ +
- +
-**Question 6** (24/10/07) : Ces données sont-elles des relevés des cours en temps réel ou les relevés sont-ils journaliers?​ +
- +
-//Les relevés sont journaliers. Vous aurez une série de fichiers CSV à importer une seule fois, il s'agit de données historiques passées. Le temps réel ne fait pas partie ​du projet.// +
- +
-**Question 7** (24/10/07) : Les cours sont-ils donnés par ordre chronologique ou peut-on avoir des cours plus anciens que le dernier cours reçu? +
- +
- +
-//​L'​ordre dans lequel les lignes sont disposées dans le fichier CSV est indéterminé.//​ +
- +
-**Question 8** (24/10/07) : Est-il normal que les fichiers CSV ne contiennent pas de champ avec le cours réel des actions? +
- +
-//Oui. L'​application que l'on vous demande de concevoir ne fonctionne pas en temps réel, elle doit simplement permettre de consulter des informations passées.//​ +
- +
-**Question 9** (24/10/07) : Est-il correct de considérer que le volume d'un indice n'a pas de sens? +
- +
-//Oui, c'est correct.//​ +
- +
-**Question 10** (24/10/07) : Est-il nécessaire de préciser comme contrainte d'​intégrité le type de chaque attribut? +
- +
- +
-//A priori non, sauf si cela est vraiment nécessaire (par exemple, on se doute qu'une date est du type "​date"​). Une contrainte de domaine à mentionner serait par exemple le numéro de compte bancaire qui doit terminer par deux chiffres égaux à la division par 97 des 9 premiers chiffres. On laisse à votre appréciation ce qui doit ou non être  +
-mentionné. // +
- +
-**Question 11** (24/10/07) : Faut-il exprimer ​des contraintes sur le modèle relationnel?​ +
- +
-//Les contraintes d'​intégrité ​de votre modèle conceptuel se traduisent par des contraintes d'​intégrité sur le modèle relationnel. De plus certaines contraintes exprimées ​ par le modèle EA doivent être explicitées dans le modèle relationnel,​ par exemple les contraintes résultant du type de généralisation,​ ou encore les contraintes d'​unicité. // +
- +
-**Question 12** (25/10/07) : Peut-on supposer que les fichiers XML et CSV fournis sont corrects? +
- +
-//Oui, d'un point de vue syntaxique (voir question 24)// +
- +
-**Question 13** (25/10/07) : Est-ce qu'une action peut faire partie de plusieurs indices? +
- +
-//Oui.// +
- +
-**Question 14** (25/10/07) : Est-ce que toutes les actions doivent faire partie d'un indice? +
- +
-//Non.// +
- +
-**Question 15** (26/10/07) : Qu'​est-ce qui identifie un marché? +
- +
-//Dans l'​énoncé,​ il est dit qu'un marché est identifié par son nom, sa ville et son pays. On peut donc concevoir qu'une ville possède deux marchés. La colonne "​Code"​ apparaissant dans le tableau des marchés dans les annexes est une erreur de notre part. // +
- +
-**Question 16** (26/10/07) : Un produit financier peut-il exister indépendamment de son marché? +
- +
-//Non, un produit financier appartient obligatoirement à un marché.//​ +
- +
-**Question 17** (26/10/07) : Est-il possible de modéliser un cache dans le modèle entité-association?​ +
- +
-//Les attributs du modèle EA peuvent être soit stockés soit dérivés (voir cours). Si un attribut est dérivé, il faut bien sûr l'​indiquer dans les contraintes d'​intégrité.//​ +
- +
-**Question 18** (26/10/07) : Peut-on faire le diagramme conceptuel avec un logiciel de dessin? +
- +
-//Oui. Nous vous demandons d'​utiliser une notation ​la plus proche possible de celles vues au cours et au TP. Cependant, il est impératif que votre logiciel puisse représenter les entités, les associations (binaires, ternaires, un-à-un, un-à-plusieurs ou plusieurs-à-plusieurs),​ les attributs (simples, composés ou multivalués) et les 4 types de généralisation. Attention cependant à ne pas confondre ​le modèle EA avec UML et particulièrement ne pas représenter les associations à la manière d'UML. Les logiciels conseillés sont le crayon et la gomme (multi-plateforme),​ Microsoft Visio (Windows), Omnigraffle (Mac), DB-MAIN (Windows), Kivio (GNU/Linux) et Dia (GNU/​Linux).//​ +
- +
-**Question 19** (03/11/07) : Est-ce que nous devons considérer les informations techniques comme les extensions et le nom des fichiers comme des contraintes d'​intégrité?​ +
- +
-//Non, les fichiers n'ont pas d'​importance,​ ce sont les informations +
-contenues dans ces fichiers qui devront être importées dans votre base +
-de données.//​ +
- +
-**Question 20** (04/11/07) : Est-ce qu'une action peut appartenir à plusieurs marchés? +
- +
-//Non.// +
- +
-**Question 21** (04/11/07) : Est-il raisonnable de supposer qu'il n'y aura pas d'​actualités différentes avec le même titre, provenant de la même source, à la même date, concernant les mêmes produits financiers?​ +
- +
-<​del>//​C'​est une hypothèse que vous pouvez émettre.//</​del>​ +
-//Le lien est la clé d'une actualité//​ (08/​11/​07) +
- +
- +
-**Question 22** (06/11/07) : Est-ce que la première partie ​du projet sera cotée ? +
- +
-//Nous tiendrons bien sûr compte dans l'​évaluation finale de votre première partie bien que nous ne lui attribuerons pas officiellement une note séparée. Vous devrez également tenir compte des remarques du jeudi 8 novembre lorsque que vous incorporerez celle-ci dans le rapport ​final.// +
- +
  
 ===== Anciens projets ===== ===== Anciens projets =====
  
   * Projet 2003-2004   * Projet 2003-2004
-    * {{teaching:infoh403:infoh403_projet2004.pdf|Enoncé}}+    * {{teaching:infoh303:infoh303_projet2004.pdf|Enoncé}}
   * Projet 2004-2005   * Projet 2004-2005
-    * {{teaching:infoh403:infoh403_projet2005.pdf|Enoncé}}+    * {{teaching:infoh303:infoh303_projet2005.pdf|Enoncé}}
   * Projet 2005-2006   * Projet 2005-2006
-    * {{teaching:infoh403:infoh403_projet2006.pdf|Enoncé}} +    * {{teaching:infoh303:infoh303_projet2006.pdf|Enoncé}} 
-    * {{teaching:infoh403:infoh403_projet2006ea.pdf|Schéma conceptuel}} +    * {{teaching:infoh303:infoh303_projet2006ea.pdf|Schéma conceptuel}} 
-    * {{teaching:infoh403:infoh403_projet2006rel.pdf|Schéma relationnel}}+    * {{teaching:infoh303:infoh303_projet2006rel.pdf|Schéma relationnel}}
   * Projet 2006-2007 ​     * Projet 2006-2007 ​  
-    * {{teaching:infoh403:infoh403_projet2007.pdf|Enoncé}} +    * {{teaching:infoh303:infoh303_projet2007.pdf|Enoncé}} 
-    * {{teaching:infoh403:infoh403_projet2007ea.pdf|Schéma conceptuel}} +    * {{teaching:infoh303:infoh303_projet2007ea.pdf|Schéma conceptuel}} 
-    * {{teaching:infoh403:infoh403_projet2007rel.pdf|Schéma relationnel}} +    * {{teaching:infoh303:infoh303_projet2007rel.pdf|Schéma relationnel}} 
-    * {{teaching:infoh403:infoh403_projet2007contr.pdf|Contraintes relationnelles}} +    * {{teaching:infoh303:infoh303_projet2007contr.pdf|Contraintes relationnelles}} 
 +  * Projet 2007-2008 
 +    * {{teaching:​infoh303:​infoh303_projet0708_enonce.pdf|Enoncé}} 
 +    * {{teaching:​infoh303:​infoh303_projet0708_donnees.zip|Données}} 
 +    * [[teaching:​infoh303:​projet0708|Archives]] (FAQ, précisions,​ ...)
 
teaching/infoh303/projet.txt · Last modified: 2023/03/27 09:04 by gdejaege