IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Médiathèque


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut Médiathèque
    Bonjour,

    je suis débutante au niveau de modélisation, Entité association. J'ai trouvé cet énoncé et j'aimerais bien le modéliser :

    une médiathèque contient
    - Des livres : un livre est écrit par un auteur en une année précise, appartient à une certaine collection. De plus un livre possède un titre et il peut posséder un résumé, un genre (« roman », « policier »...) et un nombre de pages.
    - Des revues : une revue possède les mêmes caractéristiques que les livres sauf qu’elle possède en plus un éditeur et un attribut spécifiant le nombre d’articles contenus dedans. Pour chaque revue on pourra mémoriser le nom des articles contenus afin d’autoriser leur indexation.
    - Des CD : un CD est un support musical qui possède une date de création, une durée, un nombre de pistes, un auteur, une maison de production et un titre.
    - Des vidéos VHS : une VHS est un support vidéo qui possède une date de création, une durée, un auteur, et une maison de production.
    - Des DVD : un DVD est un support vidéo similaire à une VHS sauf qu’il possède en plus une information spécifiant le nombre de pistes (ou chapitres) qu’il contient.
    - Des ressources numériques : une ressource numérique sera un fichier. Un fichier possède un auteur, un type (format PDF, DOC, PPT, etc.), une taille ainsi qu’un nom et un chemin d’accès (nous supposerons que ces fichiers sont mémorisés sur un serveur WEB, le chemin sera donc une URL).


    Premièrement, Quel logiciel me permet de schématiser le modèle E/A?
    Deuxièmement voici mon essai : y a t il des erreurs ?
    Nom : E-A.png
Affichages : 8162
Taille : 14,3 Ko

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour alias2015_29


    Il faudrait que les entités-types et associations que vous représentez graphiquement correspondent exactement à l’énoncé que vous proposez...

    Ainsi vous avez au cœur de votre diagramme une entité-type ETUDIANT, alors que le concert d’étudiant est absent de l’énoncé.

    Vous parlez de collections, de genres, mais en n’en trouve pas trace dans le diagramme idem pour les noms des articles des revues.

    Etc.

    Que symbolise la flèche allant de Revue à Livre ? Si c’est la spécialisation des entités-types, alors l’association entre REVUE et ETUDIANT est redondante, puisqu’une revue est un livre, lui même empruntable.

    Bref, votre essai est à reprendre sur de bonnes bases, Je vous engage à consulter l'ouvrage de Michel Diviné : Parlez-vous Merise ?, gratuit et téléchargeable (Merci Michel !)

    Comme AGL de modélisation vous avez PowerAMC et WinDesign, mais il sont payants (avec version d’évaluation de vie brève). En gratuit, je vous recommande DB-MAIN.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    Merci pour la réponse rapide,
    je suis entrain de télécharger le logiciel winDesign et je vais refaire ma modélisation E/A.
    J'ai utilisé étudiant car qui va faire les actions de gestion de médiathèque?

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    J'ai utilisé étudiant car qui va faire les actions de gestion de médiathèque?
    Cela doit être précisé dans l'énoncé des règles de gestion dont le MCD est la traduction formalisée, comme ici.

    Par exemple :

    Un étudiant peut emprunter un ou plusieurs livres ;

    Un livre peut être emprunté par un ou plusieurs étudiants.

    Tout en précisant certaines contraintes :

    Un livre ne peut pas être emprunté par deux étudiants en même temps.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    est ce que mon premier essai de modèle E/A est juste ?
    ici j'ai voulais dire par agent (etudiant ou prof ou..)
    Nom : test.png
Affichages : 4563
Taille : 7,8 Ko

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir alias2015_29


    Vous avez à entreprendre un travail de classification, mettant en jeu un thème non abordé à l’époque par Michel Diviné, celui de la généralisation/spécialisation. Pour traiter de cela dans les meilleures conditions, il faut que vous lisiez l’ouvrage de Dominique Nanci Ingénierie des systèmes d'information Merise Deuxième Génération, 2ème édition, qui coûte d’occasion 16£, soit environ 22 euros (deux fois moins cher qu’en France). En même temps, vous pouvez fouiner chez developpez.com (et ailleurs...) à partir des mots-clés : généralisation, spécialisation, héritage.

    Vu la nature des objets, vous pouvez remplacer le terme « DOCUMENT » par celui de « MEDIUM ».

    L’entité-type MEDIUM constituera un surtype pour les entités-types LIVRE, REVUE, CD, VHS et DVD considérées comme sous-types.

    Pour entamer le travail de classification, vous pouvez constituer un tableau du genre de celui-ci et remplir les cases en y inscrivant « oui » ou « non » selon que le medium est concerné ou non par l’attribut :


    Attribut LIVRE REVUE CD VHS DVD Numérique
    Collection
    Auteur
    Année
    Titre
    Résumé
    Genre
    Nb Pages
    Editeur
    Date création
    Durée
    Nb pistes
    Maison production
    Type fichier
    Taille
    Url

    Par ailleurs, certains attributs peuvent sans doute être confondus : maison de production et éditeur (à vous de vous renseigner pour voir si en l’occurrence c’est faisable).

    Suite à ce travail, on pourra constituer des sous-types. Plus tard, certains attributs seront évacués des entités-types, car donnant plutôt lieu à des entités-types de plein droit : Auteur, Genre, Editeur/Producteur.

    Votre diagramme comporte une entité-type MEDIATHEQUE : Vous aurez donc à gérer plusieurs médiathèques ? En attendant, d’après l’association CONTENIR, une médiathèque contiendrait au moins un document et un document serait contenu dans plusieurs médiathèques. Bien entendu, il ne peut s’agir d’exemplaires, sinon on serait confronté à un problème de bilocation... Par contre, vous dites qu’un document peut être emprunté par un agent : s’agit-il ici d’un exemplaire d’un document ? Vous voyez, on peut être amené à se poser des questions sur la nature des choses qu’on modélise...

    En attendant, bonne lecture de l’ouvrage de Dominique Nanci...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    Bonjour,
    Voici une version amélioré de mon E/A:
    Nom : med.png
Affichages : 5122
Taille : 78,2 Ko
    Question:
    est ce que je déplace l'attribut auteur de Livre, vidéo, audio dans entité média ?
    est ce que je change la classe utilisateur par adhérent? ou c'est juste comme elle est?
    Pour passer au Modèle relationnel est ce que je dois avoir 9 relations?

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir alias2015_29


    Ça progresse...


    Citation Envoyé par alias2015_29
    Voici une version amélioré de mon E/A
    Sauf que vous présentez un diagramme de classes... Je n’ai rien contre un tel diagramme, mais on est parti sur un MCD E/A (comme l’indique du reste le titre que vous avez donné à la discussion), il faudrait donc qu’on s’y tienne : merci de revenir à un MCD.



    Citation Envoyé par alias2015_29
    est-ce que je déplace l'attribut auteur de Livre, vidéo, audio dans entité média ?
    Oui. En effet, si une revue n’est pas le fait d’un seul auteur (puisque l’information « auteur » se situe au niveau ARTICLE), il suffit d’interpréter le terme « auteur » comme caractérisant le rédacteur en chef de la revue (ou tout autre type de personne qui vous convient). Dans ces conditions, tout média a un auteur, l’information peut donc faire l’objet d’une généralisation.



    Citation Envoyé par alias2015_29
    est ce que je change la classe utilisateur par adhérent? ou c'est juste comme elle est?
    Dans le contexte de l’emprunt de médias, Adhérent est plus précis qu’Utilisateur, il sous-entend qu’on doit remplir certaines conditions pour emprunter : je pencherai pour ADHERENT. Et rien empêche par la suite, au fur et à mesure des besoins, que l’entité-type ADHERENT devienne un jour sous-type d’une entité-type UTILISATEUR actuellement inexistante.


    Vous avez mis en œuvre une entité-type MEDIATHEQUE : vous avez donc l’intention de gérer plusieurs médiathèques. On est d’accord ? (A ceci près que, selon votre association, une médiathèque a au moins et plus un utilisateur, ce qui est un tantinet réducteur...)


    Selon l’association établie entre MEDIATHEQUE et MEDIA, un média appartient au plus à une médiathèque : vous raisonnez donc en termes d’exemplaires d’un média donné ?



    Citation Envoyé par alias2015_29
    Pour passer au Modèle relationnel est ce que je dois avoir 9 relations?
    Hum... Vous allez un peu vite en besogne ! attendez que le MCD soit validé...

    Par exemple, vous avez défini une classe RESUME (j’ai beaucoup de mal à lire car la taille de la police de caractères est trop petite et du texte noirâtre sur fond bleu ça ne facilite pas non plus la lecture) : pourquoi un résumé a-t-il droit à un tel régime de faveur ? Sinon qu’à lire votre diagramme de classes, un livre peut faire l’objet de plusieurs résumés, et un résumé peut ne concerner aucun livre...

    Où sont les collections et les genres ?

    Vous avez eu la bonne idée de définir une entité-type ARTICLE, mais l’attribut texteArticle ne devrait pas être conservé (à moins qu’il ne s’agisse d’un résumé), sinon les livres vont rouspéter, en réclamant que leur contenu soit aussi pris en compte et présent dans la base de données...

    Les entités-types AUDIO et VIDEO ont des informations communes (date de création, durée, maison de production) : il y a de la factorisation, de la généralisation dans l’air...


    A mon sens, la 1re chose à faire est de compléter le tableau que j’avais proposé, histoire d’y voir plus clair dans le travail de classification. On e rend compte ainsi que certaines informations ne sont pas assez précises : pour une revue, l’année de création par un auteur est sans doute utile, mais le numéro et la date de parution de la revue ont étés passés sous silence par l’auteur de l’énoncé, or si je viens emprunter une revue, j’ai en tête un ou plusieurs numéros précis...

    Toujours à propos des revues, l’énoncé est plutôt elliptique :

    « une revue possède les mêmes caractéristiques que les livres sauf qu’elle possède en plus un éditeur et un attribut spécifiant le nombre d’articles contenus dedans. »

    Comme une revue contient plusieurs articles, les informations « auteur », « résumé », « nombre de pages » ne se situent pas au niveau de la revue elle-même, mais au niveau de l’article (qui possède aussi un titre). Vous avez vu le coup en définissant une entité-type ARTICLE, mais celle-ci reste à aménager...


    Quant au nombre d’articles contenus dans la revue, voilà une information redondante (donc à ne pas faire figurer dans la liste des attributs de l’entité-type REVUE) : en effet, elle est calculable (il suffit de compter les articles).

    On observe aussi qu’un livre et un article ont en commun les informations suivantes : « auteur », « résumé », « nombre de pages » : il serait logique de les factoriser (procéder à leur généralisation), ce qui est possible à condition que l'entité-type ARTICLE soit aussi sous-type de MEDIA.



    Attribut LIVRE REVUE ARTICLE CD VHS DVD Numérique
    Collection oui oui
    Auteur oui oui (rédacteur en chef) oui oui oui oui oui
    Année oui pas assez précis
    Titre oui oui oui oui oui oui
    Résumé oui par article oui
    Genre oui oui
    Nb Pages oui par article oui
    Editeur oui
    Date création oui oui oui
    Durée oui oui oui
    Nb pistes oui oui
    Maison production oui oui oui
    Type fichier oui
    Taille oui
    Url oui
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    est ce que le modèle Entité association se trouve que en Merise(MCD) en UML on l'appelle quoi?
    J'ai utilisé le logiciel WinDesign pour création de MCD , j'espère que image est clair et juste mais j'ai trouvé quelques difficultés pour schématiser notion héritage ou généralisation (j'ai pas trouvé la bonne flèche) et est ce que dans les entités filles je dois mettre une clé primaire?
    exemple pour article, revue je mes quoi ?

    Nom : MCD.png
Affichages : 5903
Taille : 18,9 Ko

    Merci pour vos explications et votre réponse rapide

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut Spécialisons...
    Bonsoir alias2015_29,


    Citation Envoyé par alias2015_29
    est ce que le modèle Entité association se trouve que en Merise(MCD) en UML on l'appelle quoi?
    Le modèle entité-type Association est utilisé en Merise, mais pas seulement (voyez l’article de Peter Chen, The Entity-Relationship Model—Toward a Unified View of Data). En UML, on utilise les diagrammes de classes.



    Je vois que vous tenez compte du nombre d’exemplaires (cf. entité-type MEDIA, attribut nb_exp). Une remarque : selon votre MCD, cet attribut nb_exp est indépendant de l’entité-type MEDIATHEQUE. Néanmoins, toutes les médiathèques ne disposent pas nécessairement du même nombre d’exemplaires d’un média donné et, en toute logique, l’attribut nb_exp devrait dépendre à la fois des entités-types MEDIA et MEDIATHEQUE.


    Dans le même sens, un adhérent emprunte à un moment donné un (ou plusieurs) exemplaire(s) d’un média donné (ou de plusieurs...), mais ne pensez-vous pas qu’il serait opportun de savoir quelle médiathèque est partie prenante dans cet emprunt ?



    Citation Envoyé par alias2015_29
    est ce que dans les entités filles je dois mettre une clé primaire ?
    Non, car les sous-types héritent des propriétés des surtypes, notamment des identifiants (qui deviendront automatiquement des clés primaires au stade SQL, en notant que la notion de clé primaire ne relève pas du MCD mais du niveau relationnel).


    Citation Envoyé par alias2015_29
    j'ai trouvé quelques difficultés pour schématiser notion héritage ou généralisation (j'ai pas trouvé la bonne flèche)
    Dans la FAQ Merise, vous avez un exemple manifestement réalisé avec WinDesign :


    Il faut donc que vous trouviez le triangle jaune symbolisant la généralisation–spécialisation et présent dans cette image.


    Cela dit, pour spécialiser l’entité-type MEDIA il faut se reporter au tableau que j’ai fourni dans mon message précédent.

    On y constate que, quelque soit le type de MEDIA, l’attribut Auteur est toujours présent : il peut figurer dans cette entité-type.

    Cas de l’attribut Titre : il vaut pour tous les médias, sauf pour les médias de type fichier (alias numérique). Comme d’autre part ce dernier type de média a des caractéristiques qu’il ne partage pas avec les autres (type de fichier, taille, url), on l’isole tout de suite, et l’on a deux sous-types : un 1er (que par manque d’imagination je nomme MEDIA_A), concernant les livres, les revues, les articles et les supports audio/vidéos, et un 2e que je nomme FICHIER (c’est plus court et moins vague que numérique, car les CD et DVD ne sont-ils pas numériques après tout ?) :





    La demi-lune est l’équivalent PowerAMC du triangle WinDesign. Tous les attributs ne sont pas présents, ils apparaissent ci-dessous.

    De la même façon, on peut spécialiser les médias en ceux « qu’on lit » et ceux « qu’on écoute et/ou regarde », que je nomme respectivement (toujours par manque d’imagination) MEDIA_B et MEDIA_C. A leur tour on les spécialise, ce qui finalement donne ceci :





    Où l’on peut observer qu’un article appartient exactement à une revue et qu’une revue comporte au moins un article. L’entité-type ARTICLE hérite des propriétés de l’entité-type MEDIA_D, à savoir Resume et NbPages, puis hérite (via MEDIA_D) des propriétés de MEDIA_B, à savoir Collection et Genre, puis des propriétés de MEDIA_A, à savoir Titre, puis des propriétés de l’« ancêtre » MEDIA, à savoir MediaId et Auteur.

    Ainsi, un article a bien un auteur, un titre, il fait partie d’une collection et d’un genre, il a un résumé et un nombre de pages, et last but not least, il appartient à une revue.


    Ceci fait, on se rend compte qu’il serait opportun de mettre en œuvre de nouvelles entités-types à partir des propriétés de certaines entités-types : AUTEUR, COLLECTION, GENRE, etc. Exemple :






    L’intérêt de mettre en œuvre l’entité-type AUTEUR est qu’il est facile de faire évoluer la règle de gestion selon laquelle un média serait l’oeuvre d’un auteur unique, alors qu'on voudrait qu'il puisse être l'oeuvre de co-auteurs, chose qui ne serait pas possible autrement :





    A suivre...

    N.B. N'oubliez pas de cliquer sur les pouces verts pour les réponses qui ont pu vous aider.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    bonjour

    est ce que pour :nb exemplaire; je dois le mettre dans association Contient?

    Puisque je manipule une seule médiathèque donc l'entité Médiathèque est inutile ?

    et pour les entités Media_A Media_B resteront comme ca lors de traduction en modèle relationnel car si je me rappelle bien en M R y a pas notion de héritage

  12. #12
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir alias2015_29,


    Citation Envoyé par alias2015_29
    Puisque je manipule une seule médiathèque donc l'entité Médiathèque est inutile ?
    Oui ! L'entité-type MEDIATHEQUE devient inutile. La médiathèque devient ce qu’on appelle « l’univers du discours », c'est-à-dire le centre d’intérêt fondamental, le coeur du MCD.



    Citation Envoyé par alias2015_29
    est ce que pour :nb exemplaire; je dois le mettre dans association Contient?
    Si vous aviez voulu gérer plusieurs médiathèques, la réponse aurait été positive. Avec une seule médiathèque, l’attribut reste dans MEDIA.



    Citation Envoyé par alias2015_29
    et pour les entités Media_A Media_B resteront comme ca lors de traduction en modèle relationnel car si je me rappelle bien en M R y a pas notion de héritage
    Dans le contexte de la théorie relationnelle l’héritage existe, mais entre types, pas entre tables.

    Par exemple, on peut définir le type Figure plane et le spécialiser en Ellipse d’une part, Polygone d’autre part, etc.

    Ainsi, un cercle est une ellipse qui est une figure plane :

    Cercle est une spécialisation d’Ellipse, car si Cercle hérite des propriétés d’Ellipse, Cercle a des propriétés que n’a pas Ellipse, par exemple que le demi-grand axe et le demi-petit axe d’un cercle ont même longueur et on peut alors parler plus simplement de rayon.





    Pour une connaissance précise du sujet, je vous renvoie au chapitre 12 de Databases, Types, and The Relational Model: The Third Manifesto by C.J. Date and Hugh Darwen

    Comme on l’a vu avec les médias, en entité-association, on spécialise les entités-types. De son côté, la norme SQL permet l’héritage entre tables, mais selon une approche qui n’apporte rien (cf. pages 822-884 de An Introduction to Database Systems Eighth Edition de C.J. Date), et les SGBD SQL que je connais n’offrent pas cette possibilité. Il est un fait qu’on se débrouille très bien sans cette fonctionnalité décrite dans la norme, mais qui est vraiment sans intérêt avec SQL.


    Avant de passer au MLD, pour coller un peu plus à la réalité, on peut aménager ainsi le tableau de synthèse :

    Attribut LIVRE REVUE ARTICLE CD VHS DVD Numérique
    Collection oui
    Auteur oui oui (rédacteur en chef) oui oui oui oui oui
    Année écriture oui
    Titre oui oui oui oui oui oui
    Résumé oui oui
    Nb Pages oui oui
    Genre oui oui
    Editeur oui oui
    Date création oui oui oui
    Durée oui oui oui
    Nb pistes oui oui
    Maison production oui oui oui
    Type fichier oui
    Taille oui
    Url oui

    Le MCD change donc un peu.

    Comme mentionné, l’attribut NbExemplaires réintègre l’en-tête de l’entité-type MEDIA.

    J’ai préféré mettre en œuvre une entité-type EDITEUR, qui du reste devrait servir pour héberger les maisons de production (entité-type MEDIA_C, à vous de jouer !) Cette entité-type EDITEUR sert aussi pour les livres, car c’est quand même utile. J’ai ajouté un attribut Volume et un attribut Numero pour l’entité-type REVUE.

    Pour éviter la redondance du titre des revues dans l’entité-type MEDIA_A, il est préférable de prévoir un séquencement de la parution des revues (entité-type SEQUENCEUR).

    Le MCD aménagé :






    L’entité-type REVUE est identifiée à la fois :

    — Par l’attribut MediaId de MEDIA, hérité via MEDIA_A et MEDIA_B ;

    — Par l’attribut RevueId hérité de SEQUENCEUR via l’association Sequencer.

    La patte connectant l’entité-type REVUE et l’association Sequencer est porteuse ci-dessus d’une cardinalité 1,1 mise entre parenthèses : c’est ainsi qu’avec PowerAMC on utilise l’identification relative, grâce à laquelle l’identifiant {RevueId} de SEQUENCEUR participe à l’identification de REVUE. Avec WinDesign, cette identification relative est symbolisée par la lettre R mise entre parenthèses, à la suite de la cardinalité 1,1 :





    Ainsi, l’identifiant de REVUE est la paire {MediaId, RevueId}, ce que l’on perçoit mieux dans le MLD ci-dessous.


    Le MLD généré par PowerAMC :






    On remarquera que les liens entre tables sont assurés par les clés étrangères. Par exemple, le lien entre les tables AUTEUR et MEDIA est assuré par la présence de l’attribut AuteurId, le SGBD se chargeant de garantir la validité des liens. Quant à l’attribut MediaId, il est à la fois clé primaire et clé étrangère un peu partout...

    Exemple de script SQL généré par PowerAMC (SGBD cible : MS SQL Server) :

    
    USE temp ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'CD')
       DROP TABLE CD ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'DVD')
       DROP TABLE DVD ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA_E')
       DROP TABLE MEDIA_E ;
        
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'VHS')
       DROP TABLE VHS ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA_C')
       DROP TABLE MEDIA_C ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'LIVRE')
       DROP TABLE LIVRE ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'ARTICLE')
       DROP TABLE ARTICLE ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA_D')
       DROP TABLE MEDIA_D ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'REVUE')
       DROP TABLE REVUE ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA_B')
       DROP TABLE MEDIA_B ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA_A')
       DROP TABLE MEDIA_A ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'FICHIER')
       DROP TABLE FICHIER ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'MEDIA')
       DROP TABLE MEDIA ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'EDITEUR')
       DROP TABLE EDITEUR ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'AUTEUR')
       DROP TABLE AUTEUR ;
    
    -------------------------------------------------------------------------------------------------
    
    
    CREATE TABLE AUTEUR 
    (
       AuteurId             INT NOT NULL,
       AuteurNom            VARCHAR(32) NOT NULL,
       AuteurPrenom         VARCHAR(32) NOT NULL,
       CONSTRAINT AUTEUR_PK PRIMARY KEY (AuteurId)
    ) ;
    
    CREATE TABLE EDITEUR 
    (
       EditeurId            INT NOT NULL,
       EditeurNom           VARCHAR(32) NOT NULL,
       CONSTRAINT EDITEUR_PK PRIMARY KEY (EditeurId)
    ) ;
    
    CREATE TABLE MEDIA 
    (
       MediaId              INT NOT NULL,
       AuteurId             INT NOT NULL,
       NbExemplaires        INT NOT NULL,
       CONSTRAINT MEDIA_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_AUTEUR_FK FOREIGN KEY (AuteurId)
          REFERENCES AUTEUR (AuteurId)
    ) ;
    
    CREATE TABLE MEDIA_A 
    (
       MediaId              INT NOT NULL,
       Titre                VARCHAR(64) NOT NULL,
       CONSTRAINT MEDIA_A_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_A_MEDIA_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE MEDIA_B 
    (
       MediaId              INT NOT NULL,
       EditeurId            INT NOT NULL,
       Genre                VARCHAR(64) NOT NULL,
       CONSTRAINT MEDIA_B_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_B_MEDIA_A_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_A (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE REVUE 
    (
       MediaId              INT NOT NULL,
       RevueId              INT NOT NULL,
       Volume               INT NOT NULL,
       Numero               INT NOT NULL,
       DateParution         DATE NOT NULL,
       CONSTRAINT REVUE_PK PRIMARY KEY (MediaId, RevueId),
       CONSTRAINT REVUE_MEDIA_B_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_B (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE MEDIA_D 
    (
       MediaId              INT NOT NULL,
       Resume               VARCHAR(512) NOT NULL,
       NbPages              INT NOT NULL,
       CONSTRAINT MEDIA_D_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_D_MEDIA_A_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_A (MediaId) ON DELETE CASCADE
    ) ;
    
    
    CREATE TABLE ARTICLE 
    (
       MediaId                   INT NOT NULL,
       RevueMediaId              INT NOT NULL,
       RevueId                   INT NOT NULL,
       CONSTRAINT ARTICLE_PK PRIMARY KEY (MediaId),
       CONSTRAINT ARTICLE_MEDIA_D_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_D (MediaId) ON DELETE CASCADE,
       CONSTRAINT ARTICLE_REVUE_FK FOREIGN KEY (RevueMediaId, RevueId)
          REFERENCES REVUE
    ) ;
    
    CREATE TABLE MEDIA_C 
    (
       MediaId              INT NOT NULL,
       DateCreation         DATE NOT NULL,
       Duree                SMALLINT NOT NULL,
       MaisonProduction     VARCHAR(64) NOT NULL,
       CONSTRAINT MEDIA_C_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_C_MEDIA_A_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_A (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE MEDIA_E 
    (
       MediaId              INT NOT NULL,
       NbPistes             SMALLINT NOT NULL,
       CONSTRAINT MEDIA_E_PK PRIMARY KEY (MediaId),
       CONSTRAINT MEDIA_E_MEDIA_C_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_C (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE CD 
    (
       MediaId              INT NOT NULL,
       CONSTRAINT CD_PK PRIMARY KEY (MediaId),
       CONSTRAINT CD_MEDIA_E_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_E (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE DVD 
    (
       MediaId              INT NOT NULL,
       CONSTRAINT DVD_PK PRIMARY KEY (MediaId),
       CONSTRAINT DVD_MEDIA_E_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_E (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE FICHIER 
    (
       MediaId              INT NOT NULL,
       TypeFichier          VARCHAR(8) NOT NULL,
       Taille               INT NOT NULL,
       Url                  VARCHAR(64) NOT NULL,
       UniteMesure          VARCHAR(3) NOT NULL,
       CONSTRAINT FICHIER_PK PRIMARY KEY (MediaId),
       CONSTRAINT FICHIER_MEDIA_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA (MediaId) ON DELETE CASCADE
    ) ;
    
    CREATE TABLE LIVRE 
    (
       MediaId              INT NOT NULL,
       AnneeEcriture        INT NOT NULL,
       Collection           VARCHAR(64) NOT NULL,
       CONSTRAINT LIVRE_PK PRIMARY KEY (MediaId),
       CONSTRAINT LIVRE_MEDIA_B_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_B (MediaId) ON DELETE CASCADE,
      CONSTRAINT LIVRE_MEDIA_D_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_D (MediaId)
    ) ;
    
    CREATE TABLE VHS 
    (
       MediaId              INT NOT NULL,
       CONSTRAINT VHS_PK PRIMARY KEY (MediaId),
       CONSTRAINT VHS_MEDIA_C_FK FOREIGN KEY (MediaId)
          REFERENCES MEDIA_C (MediaId) ON DELETE CASCADE
    ) ;
    
    

    Voici un début de jeu d’essai :

    
    INSERT INTO AUTEUR (AuteurId, AuteurNom, AuteurPrenom) VALUES
        (1, 'Hugo', 'Victor') 
      , (2, 'Brassens', 'Georges')
      , (3, 'Mancheron', 'Benoît')
      , (4, 'Volfoni', 'Raoul')
      , (5, 'Stodder', 'David')
      , (6, 'Date', 'Chris')
      , (7, 'Chamberlin', 'Donald')
      , (8, 'Simsion', 'Graeme') 
    
    SELECT * FROM AUTEUR ;
    
    INSERT INTO EDITEUR (EditeurId, EditeurNom) VALUES
        (1, 'Le livre de poche')
      , (2, 'Pocket')	  
      , (3, 'J''ai lu')  
      , (4, 'Miller Freeman')
    
    INSERT INTO MEDIA (MediaId, AuteurId, NbExemplaires) VALUES
        (1, 1, 20) 
      , (2, 1, 15)
      , (3, 1, 10) 
      , (4, 5, 9) 
      , (5, 6, 0)
      , (6, 5, 0) 
      , (7, 7, 0)  
      , (8, 6, 0) 
      , (9, 8, 0) 
    
    INSERT INTO MEDIA_A (MediaId, Titre) VALUES
        (1, 'Les Travailleurs de la mer, tome 1') 
      , (2, 'Les Misérables, vol 1') 
      , (3, 'La Légende des siècles')
      , (4, 'Database Programming & Design')
      , (5, 'Summarize Revisited')
      , (6, 'A conversation with Jim Gray')
      , (7, 'Recursion in SQL')
      , (8, 'Once more around the nullberry bush')
      , (9, 'Testing the foundations')   
        ;
    INSERT INTO MEDIA_B (MediaId, EditeurId, Genre) VALUES
       (1, 1, 'épopée') 
     , (2, 2, 'roman') 
     , (3, 3, 'poésie')
     , (4, 4, 'bases de données')
     , (5, 4, 'modélisation')
      
    INSERT INTO REVUE (MediaId, RevueId, Volume, Numero, DateParution) VALUES
       (4, 1, 9, 5, '1996-05-01')
     , (4, 2, 9, 2, '1996-02-01') 
    
    INSERT INTO MEDIA_D (MediaId, NbPages, Resume) VALUES
        (1, 674, 'Mess Lethierry est propriétaire de La Durande, un steamer échoué sur un écueil par la machination criminelle de son capitaine, le sieur Clubin...') 
      , (2, 615, 'Je m’appelle Jean Valjean. Je suis un galérien. J’ai passé dix-neuf ans au bagne...') 
      , (3, 125, 'Caïn, échevelé, livide, fuyant Jéhovah implacable...')
      , (5, 3, 'A proposal for revising the relational Summarize operator')
      , (6, 10, 'When Jim Gray began his carreer...')
      , (7, 6, 'Innovation in DB2’s SQL language now allow recursive queries, the hows and whys as explained')
      , (8, 2, 'Darwen and Chris Date respond to jim Melton')
      , (9, 5, 'Data modelling is nothing if not an enigma') 
    
    INSERT INTO ARTICLE (MediaId, RevueMediaId, RevueId) VALUES
        (5, 4, 1) 
      , (6, 4, 1) 
      , (7, 4, 1)
      , (8, 4, 2)
      , (9, 4, 2)
    
    INSERT INTO LIVRE (MediaId, AnneeEcriture, Collection) VALUES
        (1, 1866, 'collection truc') 
      , (2, 1862, 'collection verte')
      , (3, 1859, 'au fil du temps')   
    
    

    Cherchons les titres des livres de Victor Hugo, écrits après 1860 :

    SELECT z.Titre
    FROM   AUTEUR AS x JOIN MEDIA AS y ON x.AuteurId = y.AuteurId
                       JOIN MEDIA_A AS z ON y.MediaId = z.MediaId
                       JOIN LIVRE AS t ON y.MediaId = t.MediaId
    WHERE   x.AuteurNom = 'Hugo' AND x.AuteurPrenom = 'Victor'
      AND   t.AnneeEcriture > 1860
    
    
    =>

    
    Titre
    ----------------------------------
    Les Travailleurs de la mer, tome 1
    Les Misérables, vol 1
    
    

    Articles parus dans Database Programming & Design (prénom et nom de l’auteur, date parution, titre et résumé de l’article) :

    
    SELECT AuteurPrenom, AuteurNom, DateParution, v.Titre, Resume
    FROM   MEDIA_A AS x JOIN ARTICLE AS y ON x.MediaId = RevueMediaId
                        JOIN MEDIA_D AS z ON y.MediaId = z.MediaId
                        JOIN MEDIA AS u ON y.MediaId = u.MediaId 
                        JOIN AUTEUR AS t ON u.AuteurId = t.AuteurId
                        JOIN MEDIA_A AS v ON y.MediaId = v.MediaId
                        JOIN REVUE AS w ON y.RevueMediaId = w.MediaId AND y.RevueId = w.RevueId 
    WHERE  x.Titre = 'Database Programming & Design'
    
    
    =>

    
    AuteurPrenom  AuteurNom     DateParution  Titre                                  Resume
    ------------  ---------     ------------  -----------------------------------    --------------------------------------------------------------------------------------------
    Chris         Date          1996-05-01    Summarize Revisited                    A proposal for revising the relational Summarize operator
    David         Stodder       1996-05-01    A conversation with Jim Gray           When Jim Gray began his carreer...
    Donald        Chamberlin    1996-05-01    Recursion in SQL                       Innovation in DB2’s SQL language now allow recursive queries, the hows and whys as explained
    Chris         Date          1996-02-01    Once more around the nullberry bush    Darwen and Chris Date respond to jim  Melton
    Graeme        Simsion       1996-02-01    Testing the foundations                Data modelling is nothing if not an enigma
    
    
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    Je remercie énormément le membre fsmrel pour son aide et ses conseils

    voici le modèle E/A correct que j'ai abouti avec conseils de M. fsmrel

    Nom : E_A_final.png
Affichages : 5048
Taille : 31,3 Ko

  14. #14
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour alias2015_29,


    Le temps passe ! Quelques observations quand même...

    Reprenons votre 1er message :

    Citation Envoyé par alias2015_29
    Une revue possède les mêmes caractéristiques que les livres sauf qu’elle possède en plus un éditeur et un attribut spécifiant le nombre d’articles contenus dedans.

    Etes-vous sûre que, selon votre dernier MCD, une revue possède aussi les caractéristiques d’un livre (en plus de ses caractéristiques spécifiques) ?

    Comment sait-on que tel article appartient à telle revue ?

    Comment connaît-on le nombre de pistes d’un CD ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Modèle entité-association d'une base sql server
    Par nahoula1231 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2010, 02h37
  2. [Entité-Association] passage du modéle entité association vers le modele relationnel
    Par hunter99 dans le forum Schéma
    Réponses: 1
    Dernier message: 24/11/2007, 13h10
  3. Réponses: 5
    Dernier message: 24/07/2007, 14h16
  4. demande de conseil sur le modèle entité/association
    Par amandiiiiiine dans le forum Access
    Réponses: 3
    Dernier message: 02/01/2007, 00h34
  5. Outils pour la conception d'un modèle Entités-Association
    Par heddicmi dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 05/04/2005, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo