Sunteți pe pagina 1din 19

Base de Donnes Conception de base de donnes : tude de cas

Rmi Eyraud http://www.lif.univ-mrs.fr/~reyraud/BD

Cahier des charges : forum de discussion

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.

Cahier des charges : forum de discussion (suite)

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.

Cahier des charges : forum de discussion (suite)


Les fonctionnalits que nous dsirons sont les suivantes :

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.,

Cahier des charges : forum de discussion (suite)

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.

Etape 1 : Identification des Entits


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.

Message Auteur Profil


7

Etape 2 : Lister les proprits de chaque entit

Forum : adresse internet, courriel_responsable Rubrique : intitul, date_cration, courriel_animateur Site: adresse Message : titre, contenu, date_publication, est_initiateur

Auteur : pseudo, date_premier_message, date_dernier_message, nb_messages

Profil : numro, nom, prnom, tlphone, adresse, courriel, date_naissance

Etape 3 : Identification des entits de manire unique

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

Etape 4: Recherche des associations entre entits


Prsentes dans le discours du commanditaire : tre compos de , etc.

10

Etape 4: Recherche des associations entre entits

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

Etape 4: Recherche des associations entre entits


Recherche des attributs de relations

Schma partiel pour vrification des diffrentes fonctionnalits du cahier des charges

12

Etape 4: Recherche des associations entre entits

13

Etape 5 : Identification des cardinalits

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

Etape 5 : Identification des cardinalits

15

Etape suivante : normalisation


normalisation des entits normalisation des noms normalisation des identifiants normalisation des attributs normalisation des associations normalisation des cardinalits

16

Etape suivante : normalisation (suite)

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

Etape suivante : normalisation (suite)


normalisation des identifiants : RAS normalisation des attributs :


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

normalisation des associations : RAS normalisation des cardinalits : RAS


18

Le MCD final du Forum de discussion

19

S-ar putea să vă placă și