INFO-H-303 : Projet 2007-2008

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?

C'est une hypothèse que vous pouvez émettre. 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.

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.

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)(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.

 
teaching/infoh303/projet0708.txt · Last modified: 2008/08/08 16:46 by boverhae