Base de données cinéma
On désire concevoir une base de données relatives à la présentation des films dans les cinémas.
- Un cinéma est décrit par son nom unique, son adresse et son numéro de téléphone.
- Un film peut être présenté dans plusieurs cinémas suivant un programme bien déterminé, indiquant le titre du film à présenter, sa date de présentation et l'heure du début du film.
- Un film est caractérisé par son code, son titre, sa date de réalisation, sa durée de présentation, et son metteur en scène.
- Chaque film est réalisé par plusieurs acteurs dont chacun est identifié par un numéro, un nom et un prénom.
- Chaque acteur peut avoir des rôles différents dans plusieurs films. On veut mémoriser tous les rôles réalisés par les acteurs ainsi que le nombre de critiques obtenu pour ce rôle.
Questions :
- Déduire la liste des colonnes.
- Établir la liste des tables.
- Établir la liste des liens entre les tables.
- Déduire la représentation textuelle ainsi que la représentation graphique de cette base de données.
- Liste des colonnes :
- Cinéma : nomCiné, adresseCiné, téléphoneCiné
- Film : codeFilm, titreFilm, dateRéalisation, durée, metteurEnScène
- Acteur : numActeur, nomActeur, prénomActeur
- Rôle : nomRôle, nbCritiques
- Programmation : datePrésentation, heureDébut
- Liste des tables :
- Cinéma (nomCiné, adresseCiné, téléphoneCiné)
- Film (codeFilm, titreFilm, dateRéalisation, durée, metteurEnScène)
- Acteur (numActeur, nomActeur, prénomActeur)
- Rôle (numActeur, codeFilm, nomRôle, nbCritiques)
- Programmation (nomCiné, codeFilm, datePrésentation, heureDébut)
- Liens entre les tables :
- Rôle fait le lien entre Acteur et Film (association many-to-many avec attributs)
- Programmation fait le lien entre Cinéma et Film (association many-to-many avec attributs)
- Représentation textuelle :
Cinéma (nomCiné, adresseCiné, téléphoneCiné) Film (codeFilm, titreFilm, dateRéalisation, durée, metteurEnScène) Acteur (numActeur, nomActeur, prénomActeur) Rôle (#numActeur, #codeFilm, nomRôle, nbCritiques) Programmation (#nomCiné, #codeFilm, datePrésentation, heureDébut) - Représentation graphique :
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐ │ Acteur │ │ Rôle │ │ Film │ ├─────────────┤ ├─────────────────┤ ├─────────────┤ │numActeur (PK)│──────│#numActeur (FK) │ │codeFilm (PK)│ │nomActeur │ │#codeFilm (FK) │──────│titreFilm │ │prénomActeur │ │nomRôle │ │dateRéalisa. │ └─────────────┘ │nbCritiques │ │durée │ └─────────────────┘ │metteurEnSc. │ └─────────────┘ │ │ │ ┌─────────────┐ ┌─────────────────┐ │ │ Cinéma │ │ Programmation │ │ ├─────────────┤ ├─────────────────┤ │ │nomCiné (PK) │──────│#nomCiné (FK) │ │ │adresseCiné │ │#codeFilm (FK) │──────────────┘ │téléphoneCiné│ │datePrésentation │ └─────────────┘ │heureDébut │ └─────────────────┘
Club de chasse
Un club de chasse désire informatiser les résultats des parties de chasse.
- Chaque chasseur du club est identifié par un code d'adhésion, un nom, un prénom et une date de naissance.
- Les parties de chasse ne sont pas communes (chacun chasse individuellement). On considère qu'il ne peut y avoir qu'une seule chasse dans la même journée par un chasseur.
- Une partie de chasse est caractérisée par un numéro, une date et un lieu.
- Pendant la chasse, un chasseur peut chasser plusieurs espèces dont chaque espèce est caractérisée par un code, un nom, un poids moyen et un niveau de tir (difficultés de chasse de l'espèce).
- Enfin chaque niveau de tir est identifié par un code, est caractérisé par un nom et par un nombre de points (plus le niveau est élevé, plus le nombre de points est important), qui permet d'attribuer un score à chaque partie de chasse.
Questions :
- Déduire la liste des colonnes.
- Établir la liste des tables.
- Établir la liste des liens entre les tables.
- Déduire la représentation textuelle ainsi que la représentation graphique de cette base de données.
- Liste des colonnes :
- Chasseur : codeAdhésion, nomChasseur, prénomChasseur, dateNaissance
- PartieChasse : numPartie, datePartie, lieuPartie
- Espèce : codeEspèce, nomEspèce, poidsMoyen
- NiveauTir : codeNiveau, nomNiveau, nbPoints
- Chasse : score (attribut de l'association entre PartieChasse et Espèce)
- Liste des tables :
- Chasseur (codeAdhésion, nomChasseur, prénomChasseur, dateNaissance)
- PartieChasse (numPartie, datePartie, lieuPartie, #codeAdhésion)
- NiveauTir (codeNiveau, nomNiveau, nbPoints)
- Espèce (codeEspèce, nomEspèce, poidsMoyen, #codeNiveau)
- Chasse (#numPartie, #codeEspèce, score)
- Liens entre les tables :
- PartieChasse est liée à Chasseur (un chasseur peut avoir plusieurs parties, une partie appartient à un seul chasseur)
- Espèce est liée à NiveauTir (une espèce a un niveau de tir, un niveau peut caractériser plusieurs espèces)
- Chasse fait le lien entre PartieChasse et Espèce (une partie peut concerner plusieurs espèces, une espèce peut être chassée dans plusieurs parties)
- Représentation textuelle :
Chasseur (codeAdhésion, nomChasseur, prénomChasseur, dateNaissance) PartieChasse (numPartie, datePartie, lieuPartie, #codeAdhésion) NiveauTir (codeNiveau, nomNiveau, nbPoints) Espèce (codeEspèce, nomEspèce, poidsMoyen, #codeNiveau) Chasse (#numPartie, #codeEspèce, score) - Représentation graphique :
┌─────────────┐ │ Chasseur │ ├─────────────┤ │codeAdhésion │ │nomChasseur │ │prénomChass. │ │dateNaissance│ └──────┬──────┘ │ │ (1,n) │ ┌──────▼──────┐ ┌─────────────────┐ ┌─────────────┐ │PartieChasse │ │ Chasse │ │ Espèce │ ├─────────────┤ ├─────────────────┤ ├─────────────┤ │numPartie (PK)│──────│#numPartie (FK) │ │codeEsp.(PK) │ │datePartie │ │#codeEspèce (FK) │──────│nomEspèce │ │lieuPartie │ │score │ │poidsMoyen │ │#codeAdhésion│ └─────────────────┘ │#codeNiveau │ └─────────────┘ ──────┬──────┘ │ │ ┌─────▼──────┐ │ NiveauTir │ ├────────────┤ │codeNiv.(PK)│ │nomNiveau │ │nbPoints │ └────────────┘
Base de données bancaire
Une banque désire posséder un SGBD pour suivre ses clients. Elle désire ainsi :
- Stocker les coordonnées de chaque client (nom, prénom, adresse).
- Stocker les comptes dont elle dispose ainsi que leur solde (sachant par ailleurs que certains comptes ont plusieurs bénéficiaires).
- Stocker les opérations relatives à ces comptes (retrait et dépôt, avec leur date et le montant).
Question :
- Établir le modèle conceptuel des données correspondant puis le modèle logique associé.
- Modèle conceptuel des données (MCD) :
- Entités :
- CLIENT (numClient, nomClient, prénomClient, adresseClient)
- COMPTE (numCompte, solde)
- OPÉRATION (numOpération, dateOpération, montant, typeOpération)
- Associations :
- BÉNÉFICIAIRE (entre CLIENT et COMPTE) : relation many-to-many (un client peut être bénéficiaire de plusieurs comptes, un compte peut avoir plusieurs bénéficiaires)
- CONCERNE (entre OPÉRATION et COMPTE) : relation many-to-one (une opération concerne un seul compte, un compte peut avoir plusieurs opérations)
- Entités :
- Modèle logique des données (MLD) :
Client (numClient, nomClient, prénomClient, adresseClient) Compte (numCompte, solde) Opération (numOpération, dateOpération, montant, typeOpération, #numCompte) Bénéficiaire (#numClient, #numCompte) - Représentation graphique :
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐ │ Client │ │ Bénéficiaire │ │ Compte │ ├─────────────┤ ├─────────────────┤ ├─────────────┤ │numClient(PK)│──────│#numClient (FK) │ │numCompte(PK)│ │nomClient │ │#numCompte (FK) │──────│solde │ │prénomClient │ └─────────────────┘ └──────┬──────┘ │adresseClient│ │ └─────────────┘ │ (1,n) │ ┌─────▼──────┐ │ Opération │ ├────────────┤ │numOp(PK) │ │dateOp │ │montant │ │typeOp │ │#numCompte │ └────────────┘
Compagnie d'assurance
Une compagnie d'assurance désire informatiser la gestion des contrats auto.
- Un client peut assurer plusieurs voitures auprès de la compagnie. Chaque voiture est assurée par un seul contrat. Un contrat assure une seule voiture.
- En ce qui concerne un client, la compagnie désire connaître son nom, prénom, adresse complète, numéro de téléphone ainsi qu'un numéro de compte bancaire avec indication de la banque.
- Chaque contrat contient un numéro de contrat unique, la prime annuelle à payer, la date de paiement annuel, la marque de la voiture, le modèle de la voiture, le numéro d'immatriculation de la voiture, la valeur de la voiture et la date d'acquisition de la voiture.
Questions :
- En ignorant la méthode de modélisation, on pourrait créer une BD avec une seule table ayant un champ pour chaque donnée indiquée dans l'analyse. On aurait donc les données des clients et des contrats dans une seule table. Quelles en seraient les inconvénients ?
- Établir le modèle conceptuel des données correspondant puis le modèle logique associé.
- Inconvénients d'une table unique :
- Redondance des données : Les informations d'un client seraient répétées pour chaque contrat qu'il possède.
- Anomalies de mise à jour : Si un client change d'adresse, il faut modifier toutes les lignes correspondant à ses contrats.
- Anomalies d'insertion : On ne pourrait pas ajouter un client sans ajouter au moins un contrat.
- Anomalies de suppression : Supprimer le dernier contrat d'un client supprimerait également ses informations.
- Gaspillage d'espace : Stockage redondant des mêmes informations plusieurs fois.
- Intégrité des données : Risque d'incohérence si les données client ne sont pas identiques sur toutes les lignes.
- Modèle conceptuel des données (MCD) :
- Entités :
- CLIENT (numClient, nomClient, prénomClient, adresseClient, téléphone, numCompteBancaire, banque)
- CONTRAT (numContrat, primeAnnuelle, datePaiement, marque, modèle, immatriculation, valeurVoiture, dateAcquisition)
- Association :
- POSSÈDE (entre CLIENT et CONTRAT) : relation one-to-many (un client peut posséder plusieurs contrats, un contrat appartient à un seul client)
- Entités :
- Modèle logique des données (MLD) :
Client (numClient, nomClient, prénomClient, adresseClient, téléphone, numCompteBancaire, banque) Contrat (numContrat, primeAnnuelle, datePaiement, marque, modèle, immatriculation, valeurVoiture, dateAcquisition, #numClient) - Représentation graphique :
┌─────────────┐ ┌─────────────┐ │ Client │ │ Contrat │ ├─────────────┤ ├─────────────┤ │numClient(PK)│──────│#numClient │ │nomClient │ │numContrat(PK)│ │prénomClient │ │primeAnnuelle│ │adresseClient│ │datePaiement │ │téléphone │ │marque │ │numCompteBanc│ │modèle │ │banque │ │immatricul. │ └─────────────┘ │valeurVoiture│ │dateAcquisit.│ └─────────────┘
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.