Академический Документы
Профессиональный Документы
Культура Документы
Un forum de discussion est compos d'un ensemble de rubriques. Dans chaque rubrique, des messages sont posts. Un message peut rpondre un autre message, ou bien tre l'initiateur d'un ensemble de messages en rponse. Les messages sont crits par des auteurs. Les auteurs sont soit de passage sur le site du forum, soit des auteurs identifis auxquels des profils sont associs. Un forum est dcrit par son adresse internet et le courriel (adresse email) de son responsable ; Une rubrique est dcrite par le thme qu'elle traite, par sa date de cration, et par l'adresse email (courriel) de son animateur ; par ailleurs, nous aimerions pouvoir associer une rubrique une liste de sites internet relatifs cette rubrique.
Un message est constitu d'un titre et d'un texte en syntaxe HTML, et de sa date de publication. Si un message est post en rponse un autre, cette information doit tre stocke dans la base de donnes. Un message est post par un seul auteur, mais un mme auteur peut publier plusieurs messages. Un auteur de message est dcrit par un pseudo, la date du premier message post et la date du dernier message post, ainsi que le nombre de messages posts. Un auteur peut ne pas avoir encore publi de message : il s'agit des auteurs "enregistrs" (associs un profil) mais qui ne postent jamais de messages. Un profil est la description d'une personne inscrite sur le forum. Cette personne a un numro d'inscription. Nous voulons connatre son nom, son prnom, son adresse, sa date de naissance, son courriel (adresse email), son numro de tlphone. A un profil peut correspondre plusieurs (et au moins un) auteur de message. 3 Inversement, un auteur correspond un seul profil.
pouvoir lister toutes les rponses un message donn, pouvoir afficher les messages d'une rubrique avec prsentation arborescente ( savoir que les messages crits en rponse un autre message sont placs "en retrait" par rapport ce message) ; pouvoir afficher les messages d'une rubrique par ordre chronologique de leur date de publication ; pouvoir retrouver tous les messages d'un auteur (par son pseudo), ou d'un profil ( partir de son numro d'inscription); pouvoir effectuer des statistiques, par exemple le nombre de messages posts par jour et en moyenne par un mme auteur, le jour de la semaine o on observe la plus grande frquentation du forum, le nombre de messages posts dans chaque rubrique, la taille moyenne des textes de messages, etc.,
pouvoir rechercher un mot dans un texte de messages, pouvoir retrouver tous les profils de personnes qui postent dans une rubrique donne, pouvoir afficher tous les messages du jour. Evidemment, nous souhaitons disposer de toutes les fonctionnalits classiques d'dition (modifier, crer ou supprimer des donnes). Pour le reste, nous faisons appel votre bon sens, et attendons vos propositions.
Construction du MCD
Nous allons voir les diffrentes tapes via un exemple de cahier des charges (copyright Ccile Capponi ) : http://www.lif.univ-mrs.fr/~reyraud/BD/cahier_des_charg En pratique a ne se passe pas comme a : le cahier des charge se monte en parallle avec la ralisation du MCD.
Forum Rubrique
Site : A une rubrique correspond un ensemble de sites, comme un attribut ne peut tre valu un ensemble de valeurs (liste), cette entit doit exister.
Forum : adresse internet, courriel_responsable Rubrique : intitul, date_cration, courriel_animateur Site: adresse Message : titre, contenu, date_publication, est_initiateur
Forum : numro, adresse internet, courriel_responsable Rubrique : numro, intitul, date_cration, courriel_animateur Site : numro, adresse
Message : numro, titre, contenu, date_publication, est_initiateur Auteur : numro, pseudo, date_premier_message, date_dernier_message, nb_messages Profil : numro, nom, prnom, tlphone, adresse, courriel, date_naissance
9
10
Ici, 6 associations :
1. Une association Compos_de entre l'entit Forum et l'entit Rubrique. 2. Une association Poster entre l'entit Message et l'entit Rubrique. Cette association entre Message et Forum? Un message est post dans une rubrique et une rubrique fait partie d'un forum : choix de la relation la plus directe (ainsi, le lien entre Message et Forum peut tre dduit des associations Compos_de et Poster). 3. Une association Documenter entre Rubrique et Site : plusieurs sites peuvent venir documenter une rubrique. 4. Une association rflexive Rponse sur Message. 5. Une association Ecrire entre les entits Auteur et Message. 6. Une association Concerner entre les entits Auteur et Profil. Nous pourrions, comme dans l'association 2, imaginer une association entre Profil et Message, mais elle se dduit des associations Concerner et Ecrire, donc serait redondante
11
Schma partiel pour vrification des diffrentes fonctionnalits du cahier des charges
12
13
1. Pour l'association Compos_de, un forum est compos de plusieurs rubriques (au moins une), mais une rubrique n'apparat que dans un seul forum (cela signifie qu'une rubrique, en tant qu'ensemble de messages, n'est pas partage par plusieurs forums). 2. Pour l'association Poster, une rubrique comporte plusieurs messages (ou aucun !), mais nous dcidons qu'un message est obligatoirement post dans une et une seule rubrique. 3. Pour l'association Documenter, un mme site peut documenter plusieurs rubriques (et au moins une sinon il ne serait pas dans la base de donnes), et une mme rubrique peut tre documente par plusieurs sites diffrents ; d'o la cardinalit de type m,n 4. Pour l'association rflexive Rponse, un message peut ventuellement rpondre un et un seul autre message, et un message n'a pas forcment de message rponse, mais il peut aussi en avoir plusieurs. 5. Pour l'association Ecrire, un mme auteur peut crire plusieurs (ou aucun !) messages, mais un message n'est crit que par un seul auteur. 6. Enfin, pour l'association Concerner, le cahier des charges prcisait bien qu'un auteur est associ un seul profil, alors qu'un mme profil peut mener plusieurs auteurs diffrents. 14
15
normalisation des entits normalisation des noms normalisation des identifiants normalisation des attributs normalisation des associations normalisation des cardinalits
16
normalisation des entits : RAS (pas d'entit remplaable par des associations) normalisation des noms : ok pour entits et associations. Problme nom d'attribut; exemple : adresse. ok pour adresse postale mais ambigut pour adresse de Site et de Forum :
ne rien faire (pour jointure) changer le nom des attributs crer un association entre Forum et Site (un forum est un site...)
17
est_initiateur de Message ne sert rien date_premier_message et date_dernier_message de Auteur peuvent tre retrouver via date_publi de Message. Mais nous devons valuer le cot de calcul:
date_premier_message : MAJ une seul fois, autant le stocker date_dernier_message : MAJ frquente, autant le recalculer quand on en a besoin (sauf si besoin trs frquent).
19