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 :

Avis : MCD Gestion de cinéma


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Avis : MCD Gestion de cinéma
    Bonjour

    ca fait longtemps que je n'est pas modélisé une base de données, dans le cadre d'une formation j'ai un TP à faire, comme le prof fait avancé les cours rapidement pour liquidé, j'aimerai un avis des professionnelles.

    Voici l'énoncé :

    "Elaborez un MCD pour une société de gérance de cinémas, de planification de films et du personnel de salle en considérant le dictionnaire de données et les règles de gestion suivante ?

    Dictionnaire de données :

    - Type de film

    - Nom personne salle (opérateur, ouvreuse)

    - Titre du film

    - Prénom personne

    - Nom cinéma

    - N° salle

    - Nombre de places salle

    - heure de séance

    - Date de planification personne

    - Date d’affectation du film

    - Numéro de film

    - Libelle du type de film

    Règles de gestion :

    RG1 : Un film est affecté à une salle de cinéma semaine par semaine. Il peut être réaffecté de nouveau à la même salle.

    RG2 : Un film est classé en un seul type.

    RG3 : Dans un cinéma, il peut y’avoir plusieurs salles.

    RG4 : Un seul opérateur et une seule ouvreuse sont planifiées quotidiennement par séance (séance de 16h, de 18h)"

    Voici la conception que j'ai réalisé. Et Merci d'avance.

    Nom : Exercice 3.png
Affichages : 118
Taille : 6,5 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 128
    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 128
    Points : 31 677
    Points
    31 677
    Billets dans le blog
    16
    Par défaut
    Bonsoir birhu,  

    Pour produire des MCD et le code SQL correspondant (CREATE TABLE), je vous engage vivement à utiliser Looping.

    Concernant la nature de l’association entre Cinema (nom au singulier, car il s’agit d’une entité-type, une classe d’entités) et Salle :

    Salle est certes une entité-type, mais c’est une entité-type « faible », car l’existence d’une salle dépend fondamentalement du cinéma dont elle n’est qu’un élément. La destruction d’un cinéma entraîne évidemment celle de ses salles.

    Dans un MCD, cette relation de dépendance entre une entité-type faible et une entité-type plus forte implique l’utilisation de l’identification relative.

    En l’occurrence, voyez l’ouvrage de D. Nanci et B. Espinasse Ingénierie des systèmes d'information - Merise deuxième génération. Au sujet de l’identification relative, je vous renvoie au paragraphe LII-D-3-y de l’ouvrage.

    Exemple dans lequel Salle est identifiée relativement à Cinema :


    Code SQL produit par Looping :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE Cinema(
       CinemaId SMALLINT,
       CinemaNom VARCHAR(50) NOT NULL,
       CONSTRAINT Cinema_PK PRIMARY KEY(CinemaId)
    );
    CREATE TABLE Salle(
       CinemaId SMALLINT,
       SalleNo SMALLINT,
       SalleNbPlaces SMALLINT NOT NULL,
       CONSTRAINT Salle_PK PRIMARY KEY(CinemaId, SalleNo),
       CONSTRAINT Salle_Cinema_FK FOREIGN KEY(CinemaId) REFERENCES Cinema(CinemaId)
    );

    Vous aurez noté la clé primaire de la table Salle : (CinemaId, SalleNo).

    Association Affectation

    Selon votre association, pour une paire (film, salle), on n’a droit qu’à une seule date d’affectation (valable pou une semaine). Mais vous écrivez qu’un film peut être réaffecté à l’avenir à la même salle.

    Il s’ensuit que la date doit participer à l’identification de l’association. Avec Looping, le mieux est de mettre en oeuvre une entité-type AffectationDate et pour éviter de produire une table SQL, on rend fictive cette entité-type (nom de l’entité-type mis entre parenthèses par Looping) :


    Pour rendre l’entité-type effectivement fictive, cocher la case idoine :


    Code SQL produit par Looping :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE Affectation(
       CinemaId SMALLINT,
       SalleNo SMALLINT,
       FilmId SMALLINT,
       AffectationDate DATE,
       CONSTRAINT Affectation_PK PRIMARY KEY(CinemaId, SalleNo, FilmId, AffectationDate),
       CONSTRAINT Affectation_Salle_FK FOREIGN KEY(CinemaId, SalleNo) REFERENCES Salle(CinemaId, SalleNo),
       CONSTRAINT Affectation_Film_FK FOREIGN KEY(FilmId) REFERENCES Film(FilmId)
    );

    En l’absence d’une table AffectationDate, la date d’affectation est toutefois bien présente dans la clé primaire de la table Affectation.

    On suppose ici qu’à une date donnée, un film peut être projeté dans plus d’une salle d’un cinéma donné.


    Association Seance

    Il serait intéressant de bien mettre en évidence les deux fonctions exercées par les personnes, opérateur et ouvreuse. Pour cela on peut mettre en oeuvre la spécialisation de ces personnes. Là encore, vous pouvez étudier cette partie dans l’ouvrage de D. Nanci et B. Espinasse (paragraphe LII-D-3-g).

    Modélisation avec Looping :



    Code SQL produit par Looping :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    CREATE TABLE Cinema(
       CinemaId SMALLINT,
       CinemaNom VARCHAR(50) NOT NULL,
       CONSTRAINT Cinema_PK PRIMARY KEY(CinemaId)
    );
    CREATE TABLE Salle(
       CinemaId SMALLINT,
       SalleNo SMALLINT,
       SalleNbPlaces SMALLINT NOT NULL,
       CONSTRAINT Salle_PK PRIMARY KEY(CinemaId, SalleNo),
       CONSTRAINT Salle_Cinema_FK FOREIGN KEY(CinemaId) REFERENCES Cinema(CinemaId)
    );
    CREATE TABLE Personne(
       PersonneId INT,
       PersonneNom VARCHAR(50) NOT NULL,
       PersonnePrenom VARCHAR(50) NOT NULL,
       CONSTRAINT Personne_PK PRIMARY KEY(PersonneId)
    );
    CREATE TABLE Ouvreuse(
       PersonneId INT,
       CONSTRAINT Ouvreuse_PK PRIMARY KEY(PersonneId),
       CONSTRAINT Ouvreuse_Personne_FK FOREIGN KEY(PersonneId) REFERENCES Personne(PersonneId)
    );
    CREATE TABLE Operateur(
       PersonneId INT,
       CONSTRAINT Operateur_PK PRIMARY KEY(PersonneId),
       CONSTRAINT Operateur_Personne_FK FOREIGN KEY(PersonneId) REFERENCES Personne(PersonneId)
    );
    CREATE TABLE Seance(
       CinemaId SMALLINT,
       SalleNo SMALLINT,
       SeanceDate DATE,
       SeanceHeure TIME,
       PersonneId INT NOT NULL,
       PersonneId_1 INT NOT NULL,
       CONSTRAINT Seance_PK PRIMARY KEY(CinemaId, SalleNo, SeanceDate, SeanceHeure),
       CONSTRAINT Seance_Salle_FK FOREIGN KEY(CinemaId, SalleNo) REFERENCES Salle(CinemaId, SalleNo),
       CONSTRAINT Seance_Operateur_FK FOREIGN KEY(PersonneId) REFERENCES Operateur(PersonneId),
       CONSTRAINT Seance_Ouvreuse_1_FK FOREIGN KEY(PersonneId_1) REFERENCES Ouvreuse(PersonneId)
    );

    Bonne lecture et bon courage !
    (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
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 432
    Points : 40 161
    Points
    40 161
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    En reprenant les judicieuses remarques de Fsmrel, si on prend en compte le fait que, dans les petits cinémas, c'est souvent la même personne qui exerce le rôle d'ouvreur et de projectionniste, on peut proposer un autre modèle.
    La flèche vers PE_personne est la conséquence de la règle de gestion RG4 (pour un rôle et une séance, il ne peut y avoir qu'une seule personne)

    J'ai également ajouté une contrainte sur l'association (AF_affecter) pour qu'un film ne soit affecté qu'à une seule salle pour une même semaine. Contrainte matérialisée par la flêche vers l'entité-type [SA_salle].

    Voici ce que ça donne avec Looping :


    Nom : Sans titre.png
Affichages : 88
Taille : 53,6 Ko

  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 128
    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 128
    Points : 31 677
    Points
    31 677
    Billets dans le blog
    16
    Par défaut
    Salve,

    Citation Envoyé par escartefigue
    J'ai également ajouté une contrainte sur l'association (AF_affecter) pour qu'un film ne soit affecté qu'à une seule salle pour une même semaine. Contrainte matérialisée par la flêche vers l'entité-type [SA_salle].
    En termes relationnels, la table AF_affecter comporte donc la dépendance fonctionnelle

    DF1 : {FI_ident, WK_ansem} {SA_Numero}

    Mais aussi celle-ci

    DF2 : {FI_ident, WK_ansem} {CI_ident}

    Autrement dit, conséquence de DF2, pendant une semaine donnée, un film donné ne peut être affecté qu’à un seul cinéma...
    (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
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 432
    Points : 40 161
    Points
    40 161
    Billets dans le blog
    9
    Par défaut
    Non, car la salle étant identifiée relativement au cinéma, l'identifiant de la salle est CI_ident + SA_numero

    C'est donc bien ce couple identifiant qui est unique pour un film et une semaine

  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 128
    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 128
    Points : 31 677
    Points
    31 677
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par escartefigue
    C'est donc bien ce couple identifiant qui est unique pour un film et une semaine
    Certes, mais j’aimerais que tu nous présentes la composition de la clé primaire SQL produite par Looping pour la table AF_affecter.

    Je rappelle que chaque clé candidate d’une table implique chacune des dépendances fonctionnelles de cette table.
    (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
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 432
    Points : 40 161
    Points
    40 161
    Billets dans le blog
    9
    Par défaut
    Hum mais tu as tout à fait raison, cette contrainte impose une et une salle mais aussi un et un seul cinéma
    J'ai pourtant posté AVANT l'apéro, même pas d'excuse du coup.

    Désolé pour cette coquille

  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 128
    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 128
    Points : 31 677
    Points
    31 677
    Billets dans le blog
    16
    Par défaut
    T’en fais pas Cap’taine, il nous arrive à tous d’être distrait, façon Raoul qu’a plus sa tête...
    Du coup, à mon tour, je me vote mon réconfort préféré...
    A nos santés !
    (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
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Thanks
    Merci les gars pour vos efforts, je viens de voir les réponses, par défaut du temps j'ai du faire un autre TP, beaucoup moins compliqué que celui que j'ai posté.

    Je viens de réaliser que je dois me mettre à niveau assez rapidement, Merci encore pour le livre et la solution.

  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 128
    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 128
    Points : 31 677
    Points
    31 677
    Billets dans le blog
    16
    Par défaut
    Bonsoir,  

    Au cas où il faudrait appliquer la règle selon laquelle :

        A une date D, le film F ne peut être projeté que dans la seule salle S du cinéma C

    Alors il faut réduire la clé de la table Affectation au triplet :

    {CinemaId, FilmId, AffectationDate}

    Pour cela on crée une règle attachée à l’association Affectation :

    Après l’effort, le réconfort avec un (petit) coup de Cardhu
    (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. Avis sur MCD gestion tournoi tennis
    Par tiB_chZ dans le forum Looping
    Réponses: 6
    Dernier message: 13/12/2021, 20h23
  2. [MCD]Gestion de Référencement de Produits
    Par shinrei dans le forum Schéma
    Réponses: 9
    Dernier message: 24/07/2006, 17h19
  3. [MCD] Gestion d'acces a des applications
    Par Tibler dans le forum Schéma
    Réponses: 12
    Dernier message: 25/04/2006, 19h10
  4. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 14h01
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 18h07

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