Unité02
Unité02
Conception de bases
de données relationnelles
1
Unité Didactique 2. Conception de bases de données relationnelles IES Celia Viñas (Almería) - 2018/2019
3 Crédits 43
4 Licence 44
3
Indice des figures
4
Chapitre 1
Fournisseurs
Nous devons concevoir une base de données sur les fournisseurs et nous disposons des informations suivantes :
• De chaque fournisseur, nous connaissons son nom, son adresse, sa ville, sa province et un code fournisseur qui
sera unique pour chacun d'eux.
• Nous sommes intéressés à garder un contrôle des pièces fournies par chaque fournisseur. Il est important de connaître
la quantité des différentes pièces que vous nous fournissez et à quelle date vous le faites. Veuillez noter qu'un
le même fournisseur peut nous fournir une pièce avec le même code à des dates différentes. Le design
La base de données doit permettre de stocker un historique avec toutes les dates et les quantités que nous
a fourni un fournisseur.
• Il peut exister plusieurs catégories et pour chaque catégorie, il y a un nom et un code de catégorie unique.
5
Unité Didactique 2. Conception de bases de données relationnelles IES Celia Viñas (Almería) - 2018/2019
Les règles de transformation de E/R au modèle relationnel nous disent que la relation Suministra génère une
nouveau tableau car c'est une relation de cardinalité N:N. Ce nouveau tableau reçoit les clés primaires des
deux entités qui participent à la relation et participent également en tant que clé primaire. La solution théorique serait
la suivante
(code_fournisseur, code_pièce, date, quantité)
–code_fournisseur: FK (Clé étrangère) de FOURNISSEUR
–código_pieza: FK (Clé Étrangère) de PIEZA
Avec cette solution, nous pouvons avoir un problème dans le cas où un fournisseur nous fournirait des pièces avec le
même code à des dates différentes. Dans ce cas, nous ne pourrions pas stocker cette information dans la table parce que
il se produirait une erreur de clés dupliquées.
code_fournisseur quantité
1 1 01/01/2018 100
1 1 20/01/2018
Pour résoudre cela, nous pouvons inclure l'attribut date comme partie de la clé primaire de la table, de sorte que la
La clé primaire serait composée de code_fournisseur, code_pièce et date. La solution serait la suivante :
Dans ce cas, il n'y aurait plus aucun problème pour stocker qu'un fournisseur nous fournit des pièces avec le
même code à des dates différentes.
code_fournisseur quantité
1 1 01/01/2018 100
1 1 20/01/2018
Une autre façon de résoudre ce problème peut être de créer un nouvel attribut qui soit une valeur numérique auto-
incrémenté et qu'il soit la seule clé primaire de la table. La solution serait la suivante :
• PROVEEDOR_SUMINISTRA_PIEZA(id, código_proveedor, código_pieza, fecha, cantidad)
–code_fournisseur: FK (Clé Étrangère) de FOURNISSEUR
–code_pièce: FK (Clé étrangère) de PIÈCE
Dans ce cas, il n'y aurait également aucun problème pour stocker qu'un fournisseur nous fournit des pièces avec le
même code à des dates différentes.
id_code_fournisseur quantité
1 1 1 01/01/2018 100
2 1 1 20/01/2018
• CATEGORÍA(código, nombre)
• CATEGORÍA(código, nombre)
Chaîne éditoriale
Chaque succursale a plusieurs employés, dont nous aurons le nom, le prénom, le NIF et le téléphone.
l'employé travaille dans une seule succursale.
• Dans chaque succursale, plusieurs revues sont publiées, dont nous stockerons le titre, le numéro d'enregistrement,
périodicité et type.
FK de SUCURSAL(código)
• SUCURSAL_PUBLICA_REVISTA(código_sucursal,número_registro_revista)
• JOURNALISTE_RÉCRIT_REVUE(id_journaliste,numéro_enregistrement_revue)
FK de REVISTA(número_registro)
FK de REVISTA(número_registro)
Nous devons concevoir une base de données pour une entreprise de matériel informatique, dont nous avons ceci
information
• Une équipe se compose de plusieurs composants. Plusieurs composants du même type peuvent être nécessaires.
ra monter une équipe, il sera donc nécessaire de stocker la quantité de composants nécessaires
dans chaque cas.
• Un client peut acheter des équipements complets ou des composants à l'unité. Il faudra stocker la quantité
de équipements ou la quantité de composants de chaque type que chaque client achète. Il faudra également
conserver la date de l'achat.
• Veuillez noter qu'un même client peut acheter le même équipement ou le même composant dans des
rentes dates. Le design de la base de données doit permettre de stocker un historique avec toutes les dates et
les quantités d'équipements ou de composants qu'il a achetés.
Chaque équipement est étiqueté avec un code d'équipement, une description, un prix et le stock disponible.
Chaque composant est étiqueté avec un code de composant, une description, un prix et le stock.
disponible.
• Les données que nous stockons pour les clients sont le NIF, le nom, le prénom, l'adresse, la ville, la province et le...
léfono.
Les données que nous stockons sur les employés sont le NIF, le nom, le prénom et la section où ils travaillent.
• Dans chaque achat effectué par un client, un employé intervient et il sera nécessaire de garder trace de quel employé.
C'est celui qui a pris en charge chaque client pour chacune des achats.
• EQUIPO_CONSTA_COMPONENTE(código_equipo,código_componente, cantidad)
FK de ÉQUIPE(código)
–code_composant: FK de COMPOSANT(code)
• SECCIÓN(id, nombre)
FK de SECCIÓN(id)
Dans cette solution, nous avons ajouté l'attribut date comme partie de la clé primaire.
• EQUIPO_CONSTA_COMPONENTE(código_equipo,código_componente, cantidad)
–code_appareil: FK d'ÉQUIPE(code)
–code_composant: FK de COMPOSANT(code)
• SECCIÓN(id, nombre)
FK de SECTION(id)
Dans cette solution, nous avons ajouté un nouvel attribut autnumérique incrémenté appelé id qui sera le
clé primaire.
Nous devons concevoir une base de données pour gérer les réservations d'hôtels et de vols effectuées par les clients.
d'une agence de voyages :
• L'agence de voyages est composée d'un ensemble de succursales. Chaque succursale est définie par le
identifiant de succursale
Un client peut réserver des vols et des séjours dans des hôtels par l'intermédiaire de l'une des succursales qu'il a.
agence de voyages
• Un cadavre est défini par un identifiant, une date/heure de sortie, une date/heure d'arrivée, une origine, une destination
et le nombre total de places.
• Chaque hôtel est défini par l'identifiant de l'hôtel, le nom, l'adresse, la ville, la province, le téléphone et
nombre d'étoiles.
L'information que l'on souhaite stocker pour chaque client est un nif, un nom, un prénom, un téléphone et un email.
• L'agence de voyages souhaite connaître par quelle agence chaque client a contracté les services
de vol et d'hébergement.
• Au moment de réserver un vol, le client peut choisir n'importe quel vol proposé par l'agence et en
Quelle classe (touriste ou première) souhaitez-vous voyager.
• Le client peut séjourner dans l'un des hôtels proposés par l'agence et choisir le régime de
hébergement (demi-pension ou pension complète). La date d'entrée et de sortie est significative.
1.5 Examens
Les enseignants du module de Bases de Données décident de créer une base de données contenant les informations de
résultats des tests réalisés par les élèves :
Les élèves sont définis par un identifiant unique, NIF, nom, prénom et le groupe auquel ils assistent.
à la classe. Les groupes sont identifiés par une lettre majuscule qui peut être entre laUnet laZ.
–Pratiques. Un nombre indéterminé de pratiques est réalisé durant l'année académique. Ils sont définis
par un identifiant, un titre et le niveau de difficulté. Les niveaux de difficulté possibles qui peuvent
devenir apparaître son :Baja, MédiasyHaute. Dans ce cas, les élèves peuvent passer des examens de n'importe quel
pratique quand ils le souhaitent, en devant stocker la date et la note obtenue.
Les examens théoriques sont conçus par un seul professeur et un professeur peut concevoir plusieurs examens.
théoriques tout au long du cours.
FK de ALUMNO(id)
FK de PRATIQUE(id)
FK de PROFESSEUR(id)
• ALUMNO_HACE_EXAMEN_TEÓRICO(id_alumno,id_examen_teórico, nota)
FK de ALUMNO(id)
FK de EXAMEN_THÉORIQUE(id)
(id_professeur,id_pratique, date)
FK de PROFESSEUR(id)
FK de PRATIQUE(id)
Pratique
Réalise Élève Il y a ExamenThéorique
id PK id_élève PK FK id PK
id PK id_alumno PK FK
titre id_pratique PK FK titre
nif id_examen_théorique
difficulté date nombre_de_questions
nombre note
note nom de famille1 date
nom de famille 2
groupe
Conçois
Professeur
id_pratique id PK
id_professeur PK FK nif
date nombre
nom de famille1
nom2
Un concessionnaire automobile souhaite informatiser sa gestion des ventes de véhicules. En particulier, il veut
avoir stocké les informations concernant les clients qui achètent chez le concessionnaire, les véhicules vendus
dos, ainsi que les vendeurs qui réalisent les différentes ventes. Pour cela, il sera tenu compte que :
Il existe différentes marques de voitures, pour chaque marque un identifiant unique et un nom sont stockés.
par exemple, il peut exister les marques Audi, BMW, Volkswagen, etc.
• Une marque peut avoir de nombreux modèles différents mais un modèle ne peut appartenir qu'à une mar-
Chaque modèle a un identifiant unique et un nom. Par exemple, pour la marque Audi,
nous pouvons avoir les modèles A1, A3, A4, etc.
• Pour chaque modèle, il peut exister différentes versions. Pour chaque version, un identifiant unique est stocké.
co, un numéro de version, la puissance, un prix de base et le type de carburant qui peut être de l'Essence ou
Diesel. Par exemple, pour la marque Audi, modèle A3, il peut exister les versions AUDI A3 1.0 TFSI 85kW
(116 ch), AUDI A3 1.6 TDI 85 kW (116 ch), etc.
• Chacune des versions disposera d'options supplémentaires (climatisation, peinture métallisée,
etc). Les extras sont définis par un identifiant, un nom et une description. Il faut prendre en compte
qu'un extra peut être commun à plusieurs versions en ne variant que le prix dans chaque cas.
En ce qui concerne les clients, les informations d'intérêt sont le nom, le prénom, le NIF, l'adresse et le téléphone, le
même que pour les vendeurs.
• Les clients peuvent céder leur voiture d'occasion lors de l'achat d'un véhicule neuf. La voiture d'occasion sera définie
pour sa marque, son modèle, son immatriculation et son prix d'estimation. Il est important de connaître la date à laquelle le client
Un club nautique souhaite avoir informatisés les données correspondantes à ses installations, employés, membres.
et les embarcations qui se trouvent dans ce club. Le club est organisé de la manière suivante :
• Les membres du club sont définis par leur nom, adresse, NIF, téléphone et date d'in-
progrès dans le club.
Les embarcations sont définies par leur immatriculation, leur nom, leur type et leurs dimensions.
• Les amarres ont comme données d'intérêt le numéro d'amarre, la lecture du compteur d'eau et d'électricité, et
s'ils ont ou non des services de maintenance contractés.
Il faut tenir compte du fait qu'un bateau appartient à un membre même si un membre peut en avoir plusieurs.
embarcations. Un bateau occupera un amarre et un amarre est occupé par un seul bateau.
Il est important de noter la date à laquelle un bateau est attribué à un quai.
Les partenaires peuvent être propriétaires de places de port, il est important de connaître la date d'achat de la place.
que tenir en compte qu'un amarre appartient à un seul associé et qu'il n'y a aucune relation directe entre
la date à laquelle un amarrage est acheté et à laquelle un bateau est assigné à un amarrage.
• Le club nautique est divisé en plusieurs zones définies par une lettre, le type de bateaux qu'il a, le nombre
de bateaux qu'il contient, la profondeur et la largeur des quais. Une zone aura plusieurs quais et un
amarre appartient à une seule zone.
• En ce qui concerne les employés, ils sont définis par leur code, nom, adresse, téléphone et spécialité.
papa. Un employé est assigné à plusieurs zones et dans une zone, il peut y avoir plus d'un employé, étant
de l'intérêt le nombre de navires dont il s'occupe dans chaque zone. Il faut tenir compte que un
un employé ne peut pas s'occuper de tous les bateaux d'une zone.
La police veut créer une base de données sur la sécurité dans certaines institutions bancaires. Pour cela, elle dispose de
raconte que :
Chaque entité bancaire se caractérise par un code et par l'adresse de son siège.
Chaque établissement bancaire a plus d'une succursale qui se caractérise également par un code et par le do-
domicile, ainsi que par le nombre d'employés de cette succursale.
Chaque succursale peut embaucher plusieurs agents de sécurité, qui se caractérisent par leur code de vigile.
et son âge. Un agent de sécurité peut être engagé par différentes succursales (même de différentes entités)
à des dates différentes. Il est également nécessaire de stocker si un contrat a été établi avec une arme ou non.
La police s'intéresse à contrôler les personnes qui ont été arrêtées pour avoir braqué des agences.
Les personnes s'identifient par un NIF et leur nom complet.
• Certains de ces braqueurs sont intégrés dans certaines bandes organisées et c'est pourquoi on souhaite savoir
à quelle bande ils appartiennent, sans qu'il soit d'intérêt de savoir si la bande a participé au délit ou non. Les bandes se
définir par un code de bande et par le nombre de membres.
Il est nécessaire de savoir quel juge a été en charge de chaque affaire, en sachant qu'un braqueur peut être
jugé par différents juges pour différents délits. Il est nécessaire de stocker si pour chaque délit la personne
la détenue a été condamnée ou non, et si elle l'a été, combien de temps elle passera en prison. Un juge se carac-
teriza par un code interne du tribunal, son nom et les années de service.
• En aucun cas il n'est intéressant de savoir si un agent de sécurité a participé à l'arrestation d'un braqueur.
Considérant que :
nom de famille1
nom de famille 2
nombre spécialité
id téléphone
Professeur
(1,1)
id année_de_début
Imparte 1:N
Année Scolaire
(1,n)
téléphone
date_de_naissance
N:N:N (1,n)
numéro d'inscription (10,20) (1,n)
Étudiant S'inscrire Matière
nombre
code nombre nombre_d'heures
nom1 nom de famille 2
FK de PROFESSEUR(id)
• MATRÍCULA(número_matrícula,id_curso_escolar,código_asignatura)
FK d'ÉTUDIANT(número_matrícula)
FK de CURSO_ESCOLAR(id)
FK de ASIGNATURA(código)
.
Élève S'inscrire Matière Professeur
numéro_inscription PK numéro_matricule_élève PK FK code PK id PK
nombre código_asignatura nombre nif
nom de famille 1 id_cours_scolaire id_professeur nombre
nom de famille 2 nom1
date de naissance nom de famille 2
.
téléphone spécialité
Année Scolaire
téléphone
id PK
année_de_début
année_fin
La Société Publique de Location dépendant du Ministère du Logement a besoin d'une base de données pour ges-
tionar les loyers des logements des particuliers. Les exigences de cette base de données sont celles qui sont détaillées
à la suite.
Il est nécessaire de stocker des informations sur la durée de chaque location d'un logement avec
la fin de connaître l'historique des locations.
• Les informations conservées pour chaque location sont un identifiant unique de location, la date de début, la date
de fin, importe mensual, fiança et date de la signature.
• On souhaite stocker des informations sur le renouvellement d'un contrat de location d'un logement. Il est nécessaire de savoir
si un loyer est un renouvellement d'un autre loyer antérieur ou non, afin de pouvoir suivre facilement la
séquence de locations d'un logement avec la même personne.
• Un loyer est réalisé par un locataire et pour chaque locataire, un identifiant unique, NIF, est enregistré.
nom, prénom, date de naissance et numéro de téléphone de contact.
Il est nécessaire de stocker des informations sur les agences immobilières qui gèrent les locations des
habitations.
• De chaque agence immobilière, un identifiant d'agence, un CIF, une adresse et un téléphone sont stockés.
• Un logement n'est proposé que par une seule agence immobilière. Une agence ne peut gérer que les
alquileres des logements proposés par elle.
• Pour chaque logement, un identifiant de logement, la rue, le numéro, l'étage, le code postal, la population est stocké.
et une description.
• Un identifiant unique, NIF, nom, prénom, téléphone, adresse est stocké pour chaque propriétaire.
email.
Le département d'informatique de l'Université d'Almería souhaite concevoir une base de données pour gérer
les enseignants qui participent aux projets de recherche.
• Pour chaque projet de recherche, il est souhaité de stocker un identifiant unique, un nom, un budget total,
le programme de R&D qui le finance, date de début, date de fin et une description.
Dans les projets de recherche, des professeurs du département travaillent pendant une période de temps,
déterminé par une date de début et une date de fin. Notez qu'un même professeur peut
travailler sur le même projet à différentes époques.
• Pour chaque enseignant, on souhaite stocker un identifiant unique, un prénom, un nom de famille, un bureau et un téléphone.
Un professeur peut travailler sur plusieurs projets à la fois et plusieurs professeurs peuvent travailler sur un projet.
rés.
• Les professeurs du département peuvent être docteurs ou non docteurs.
• Un professeur n’ayant pas de doctorat doit être supervisé par un professeur ayant un doctorat. Le temps de supervision est déterminé par...
miné par une date de début et une date de fin. Nous devrons stocker les [Link] qui ont
supervisé un professeur non docteur pendant quels périodes ils ont été.
Parmi tous les enseignants impliqués dans le projet, il y en a un qui est le chercheur principal, qui sera le
chargé de coordonner le projet. Il est nécessaire de conserver qui est le chercheur principal de chaque
un des projets. Veuillez noter que le chercheur principal ne peut pas changer au cours de la
la vie du projet, sera toujours la même.
• Le chercheur principal d'un projet doit être un professeur docteur, en aucun cas il ne pourra l'être un
professeur ou docteur.
• Les professeurs, docteurs et non-docteurs écrivent des publications. Une publication se compose d'un code unique.
et un titre. Et une publication peut être de deux types, elle peut être une publication dans une revue ou dans un
25
Unité Didactique 2. Conception de bases de données relationnelles IES Celia Viñas (Almería) - 2018/2019
congrès.
• Si la publication est dans une revue, en plus du code unique et du titre, nous allons enregistrer le volume, le
numéro, la page d'accueil et la page de fin.
• Si la publication est dans un congrès, en plus du code unique et du titre, nous allons stocker le type de
congrès
Le département de formation d'une entreprise souhaite concevoir une base de données pour planifier et gérer la
formation de ses employés.
• L'entreprise organise des cours internes de formation dont on souhaite connaître le code de cours, le
nom
• Un cours peut avoir comme prérequis d'avoir réalisé un ou plusieurs autres au préalable, et à son tour la réalisation de
Un cours peut être un prérequis pour d'autres. Un cours qui est un prérequis pour un autre peut l'être de façon
obligatoire ou seulement recommandé.
• Un même cours a différentes éditions, c'est-à-dire qu'il est dispensé à différents endroits, à différentes dates et avec différentes
horaires de rentes (intensif, le matin ou l'après-midi). À une même date de début, il ne peut être dispensé que
une édition d'un cours.
Les cours sont dispensés par le personnel de l'entreprise.
• Des employés, on souhaite stocker leur code d'employé, nom et prénom, adresse, téléphone,
NIF, date de naissance, nationalité et salaire, ainsi que s'il est apte à dispenser des cours.
• Un même employé peut être enseignant dans une édition d'un cours et étudiant dans une autre édition, mais jamais
cela peut être les deux à la fois (dans une même édition de cours, soit il dispense, soit il reçoit).
Le club d'échecs de Huércal de Almería a été chargé par la Fédération Internationale des Échecs de la
organisation des prochains championnats du monde qui se dérouleront dans la localité. Pour cette raison, souhaite
porter dans une base de données toute la gestion relative aux participants, hébergements et matchs. En tenant compte
que
• Dans le championnat, des joueurs et des arbitres participent, il est nécessaire que les deux connaissent le numéro d'adhérent.
nom, adresse et numéro de contact. Pour les joueurs, il est également nécessaire de préciser le niveau de jeu dans un
échelle de 1 à 10.
• Aucun arbitre ne peut participer en tant que joueur.
Les pays envoient au championnat un ensemble de joueurs et d'arbitres, bien que tous les pays n'envoient pas.
participants. Every player and referee is sent by a single country. A country can be represented by
un autre pays.
• Chaque pays est identifié par un numéro corrélatif selon l'ordre alphabétique et il est également intéressant de connaître
son nom et le nombre de clubs d'échecs existants dans celui-ci.
Chaque partie est identifiée par un numéro consécutif (CodePartie), elle est jouée par deux joueurs et arbitrée.
un arbitre. Il est intéressant d'enregistrer les parties jouées par chaque joueur et la couleur (blanches ou noires) avec laquelle
joue. Il convient de noter qu'un arbitre ne peut pas arbitrer des joueurs envoyés par le même pays
que lui a envoyé.
• Chaque participant participe à au moins une partie.
• Tant les joueurs que les arbitres séjournent dans l'un des hôtels où se déroulent les matchs, se
Il souhaite savoir dans quel hôtel et à quelles dates chaque participant a séjourné. Les participants
ils ne peuvent pas rester à Huércal de Almería pendant tout le championnat, mais venir quand ils ont
que jouer une partie en séjournant dans le même ou un autre hôtel. Pour chaque hôtel, on souhaite connaître le
nom, l'adresse et le numéro de téléphone.
• Le championnat se déroule sur une série de journées (année, mois, jour) et chaque match a lieu
Lors d'une des journées, même s'il n'y a pas de matchs, toutes les journées ont lieu.
• Chaque match se déroule dans l'une des salles dont disposent les hôtels, on souhaite connaître le
nombre de places vendues dans la salle pour chaque match. Pour chaque salle, il est souhaité de connaître la capacité et
moyens à disposition (radio, télévision, vidéo,…) pour faciliter la retransmission des rencontres. Une
la salle peut disposer de plusieurs moyens différents.
• De chaque partie, il est prévu d'enregistrer tous les mouvements qui la composent, l'identification de mo-
Le mouvement est établi sur la base d'un numéro d'ordre dans chaque lot, pour chaque mouvement se
gardant le coup (5 positions) et un bref commentaire fait par un expert.
2.4 Banque
Nous voulons concevoir une base de données pour une banque avec les exigences suivantes :
• La banque est organisée en agences. Chaque agence est située dans une ville particulière et s'identifie
il reste par un nom unique. La banque supervise les actifs de chaque succursale.
• Les clients de la banque s'identifient par unid-client. La banque stocke chaque nom de client.
vous, rue et ville où vous vivez. Les clients peuvent avoir des comptes et peuvent demander des prêts. Un client
peut être associé à un banquier particulier, qui peut agir comme responsable des prêts ou
banquier personnel pour un client.
• Les employés de la banque s'identifient par un identifiant-employé. La direction de la banque stocke
le nom, le numéro de téléphone de chaque employé, et l'identifiant de l'employé du chef de l'employé. La banque
il maintient également un enregistrement de la date de début du contrat de l'employé, ainsi que de son ancienneté.
• La banque propose deux types de comptes : des comptes d'épargne et des comptes courants. Les comptes peuvent
ciarse à plus d'un client et un client peut avoir plus d'un compte. Chaque compte est attribué à un
numéro de compte unique. La banque tient un registre du solde de chaque compte et de la date la plus récente
en que la compte a été accédée par chaque client qui maintient le compte. De plus, chaque compte d'épargne
il y a un taux d'intérêt et pour chaque compte courant, le découvert est enregistré.
• Un prêt immobilier dans une succursale particulière peut être associé à un ou plusieurs clients. Un prêt-
mo se identifie par un numéro de prêt unique. Pour chaque prêt, la banque tient un registre
du montant du prêt et des paiements du prêt. Bien qu'un numéro de paiement du prêt n'identifie pas
Identifie de manière unique un paiement parmi tous les prêts de la banque, un numéro de paiement identifie un paiement
particulier pour un prêt spécifique. Pour chaque paiement, la date et le montant sont stockés.
Dans le développement d'une banque réelle, la banque conserverait des informations sur les crédits et les débits des comptes.
d'épargne et sur les comptes courants, tout comme il est tenu un registre des paiements pour les prêts. Pour
Pour garder notre exemple réduit, dans ce modèle, aucun suivi de tels crédits et charges n'est effectué.
La coordinatrice nationale des Organisations Non Gouvernementales (ONG) souhaite maintenir une base de données
des associations de ce type qui existent dans notre pays. Pour cela, il doit stocker des informations sur
chaque association, les membres qui la composent, les projets qu'elles réalisent et les travailleurs qui y sont associés.
• Des associations, on souhaite stocker leur CIF, dénomination, adresse et province, leur type (écologiste,
intégration, développement, etc.), ainsi que si elle est déclarée d'utilité publique par le Ministère de l'Intérieur.
• Chaque association est composée de membres pour lesquels il est nécessaire de connaître leur NIF, nom, adresse, province-
cia, date d'adhésion à l'association, la cotisation mensuelle avec laquelle ils collaborent et la contribution annuelle qu'ils réalisent
(ce qui sera obtenu en multipliant la mensualité par les mois de l'année).
• Les travailleurs de ces organisations peuvent être de deux types : salariés et bénévoles.
Les salariés sont des travailleurs qui perçoivent un salaire et occupent un certain poste dans l'association. Il est souhaité
stockez le montant qu'ils paient à la sécurité sociale et le pourcentage d'IRPF qui leur est retiré
compte.
Les bénévoles travaillent dans l'organisation de manière désintéressée, il est donc nécessaire de connaître leur âge, profession
sion et les heures qu'ils consacrent à l'association aux fins de calcul des statistiques.
Chaque travailleur est identifié par son NIF, a un nom et une date d'entrée.
Un membre ne peut pas être employé de l'association.
Les associations réalisent des projets. Pour chaque projet, on souhaite stocker son numéro d'identification.
ction au sein de l'association, dans quel pays cela se déroule et dans quelle zone de celui-ci, ainsi que l'objectif que
poursuit et le nombre de bénéficiaires qu'il affecte. Un projet se compose à son tour de sous-projets
qui ont la nature de projets, c'est-à-dire qu'un projet peut être un sous-projet d'un autre projet.
Une entreprise dédiée à la commercialisation de cuisines souhaite accroître son contrôle sur les éléments qui l'affectent.
Du résultat de l'analyse, les données suivantes sont obtenues :
• Il existe une série de fabricants de meubles de cuisine. Pour chaque fabricant, on dispose d'un nom, d'un
adresse, un téléphone et un code de fabricant. Chacun d'eux fabrique plusieurs meubles de cuisine. Un
Le meuble de cuisine a une certaine couleur, des dimensions données (largeur, hauteur, longueur), un code de
muebleyademáspuedeserdealgunodelossiguientestipos:mueblealto,mueblebajo,panelyencimera.
Concernant les meubles bas, il est important de connaître la hauteur du sol et pour les plans de travail, il est important de savoir le type de
Une entreprise décide d'informatiser sa paie. Nous disposons des informations suivantes :
• À chaque employé sont remis plusieurs justificatifs de paie au cours de sa vie professionnelle dans l'entreprise.
presa et au moins un par mois.
À chaque employé, un numéro de matricule est attribué au moment de son intégration dans l'entreprise.
et c'est le numéro utilisé à des fins d'identification interne. De plus, le NIF de l'employé est enregistré,
nom, nombre d'enfants, pourcentage de retenue pour l'Administration fiscale, coordonnées de compte courant dans lequel se
le dépose l'argent (banque, agence et numéro de compte) et les départements dans lesquels il travaille. Un employé-
vous pouvez travailler dans plusieurs départements et dans chacun d'eux, vous travaillerez avec une fonction différente.
• D'un département, on conserve le nom et chacune de ses éventuelles succursales. Le nom du département
mento sera unique.
• Ce sont des données propres à un justificatif de paie, le revenu total perçu par l'employé et la déduction
total appliqué. La distinction entre deux justificatifs de salaire se fera, en plus du numéro de
matricule de l'employé, par le biais de l'exercice fiscal et du numéro de mois auquel il appartient et avec un numéro
de l'ordre dans le cas de plusieurs justificatifs de paie reçus le même mois.
Chaque justificatif de paie se compose de plusieurs lignes (au moins une de revenus) et chaque ligne est identifiée
pour un numéro de ligne du justificatif correspondant. Une ligne peut correspondre à un revenu ou à
une remise. Dans les deux cas, on collecte le montant correspondant à la ligne (en positif s'il s'agit
d'un revenu ou en négatif s'il s'agit d'une remise), dans le cas des remises, on collecte la base
sur laquelle s'applique et le pourcentage qui s'applique au calcul de ceux-ci.
• Le total des revenus d'un justificatif de nom répond à un unique concept de redevance. Dans un même
justificatif, il peut y avoir plusieurs lignes qui répondent au même concept de rémunération. Des concepts
retributifs se maintient un code et une description.
• En ce qui concerne la comptabilité de l'entreprise, chaque ligne d'un justificatif de paie est imputée à au moins un
élément de coût. Plusieurs lignes peuvent être imputées au même élément de coût. Pour chaque élément
de coût, un code, une description et un solde sont collectés.
• Parmi les éléments de coût, une hiérarchie est établie, dans le sens où un élément de coût peut
contenir d'autres éléments de coût, mais un élément de coût ne peut être contenu que dans, au maximum,
un autre élément de coût.
• À certaines dates, qui doivent être collectées, chaque élément de coût est réglé à la charge de plusieurs.
apports comptables (code et quantité) et à un ou plusieurs virements bancaires, dont on collecte les
données de compte courant (banque, agence et numéro de compte) et le montant. Pour chaque écriture comptable
Par virement bancaire, plusieurs éléments de coût peuvent être réglés.
Un client vous a engagé pour concevoir un site web permettant d'acheter des livres en ligne. Tenez compte des
indications suivantes pour modéliser à quoi ressemblerait la base de données du projet :
• Chaque livre a un identifiant unique, un titre, un isbn, une année de publication et une description. Il est également intéressant de...
santé stocker les données de l'auteur/des auteurs et de l'éditeur qui a publié le livre.
Les livres qui pourront être achetés sur le site peuvent être des livres papier ou des livres électroniques (ebooks).
Dans le cas des livres papier, il est important de conserver l'endroit où ils ont été imprimés et la date d'impression. Dans le
Dans le cas d'un ebook, nous conserverons la taille du fichier. Il faut prendre en compte qu'un même livre a
prix différents sur papier et en format ebook.
• Des auteurs, nous souhaitons stocker le nom, les prénoms, l'adresse, la localité, la province, l'URL de leur page
gina web et un identifiant unique d'auteur.
• Pour les éditeurs, nous conserverons un identifiant, un nom, une adresse, une localité, une province, un numéro de
téléphone et l'URL de votre page web.
• Le magasin disposera de plusieurs entrepôts, pour chacun nous garderons un identifiant, une adresse, lo-
qualité, province et un numéro de contact.
• Un entrepôt peut stocker différents livres. Un même livre peut être stocké dans différents
entrepôts. Nous souhaitons connaître le nombre d'exemplaires de chaque livre qui se trouve dans chaque entrepôt.
• La base de données doit stocker les données des clients. Pour chaque client, nous conservons son nom, son prénom.
dos, adresse, localité, province, email et téléphone.
Un client peut tenir plusieurs cestas de la compra dans le site web. Chaque cesta de la compra est identifiée
par un identifiant unique, contient la date d'achat et peut contenir plusieurs livres. Quelques paniers
de l'achat peuvent avoir plus d'une copie du même livre, il sera donc nécessaire de stocker la
quantité d'exemplaires achetés de chaque livre dans chaque panier.
nom de famille1
id nombre nombre id date_achat
nom de famille 2
id
adresse
1:N
quantité
N
Vive :
1 1
: Appartient à Contient N:N
N
nom1 isbn
nom de famille 2 id nombre
url nom
année_publication adresse
N:N identifiant N:N
1:N
Entrepôt
téléphone adresse id
2.9 Spotify
Nous allons essayer de créer un modèle simple de ce à quoi ressemblerait la base de données nécessaire pour Spotify.
• Pour chaque utilisateur, nous enregistrons un identifiant unique, un e-mail, un mot de passe, un nom d'utilisateur, une date de naissance, un sexe,
pays
Pour les utilisateurs premium, il faudra conserver les données nécessaires à l'abonnement, qui sont : une date.
de renouvellement du service et un mode de paiement, qui peut être par carte de crédit ou PayPal.
• Nous conservons le numéro de carte, le mois et l'année d'expiration, ainsi que le code de sécurité des cartes de crédit.
papa. Parmi les utilisateurs qui paient avec PayPal, nous conservons le nom d'utilisateur PayPal.
Nous avons intérêt à tenir un registre de tous les paiements qu'un utilisateur premium a effectués.
Le paiement enregistre la date, un numéro de commande (qui est unique) et un total.
• Un utilisateur peut avoir de nombreuses playlists. Pour chaque playlist, nous sauvegardons un titre, le nombre de chansons.
qui contient un identifiant unique et une date de création.
• Lorsqu'un utilisateur supprime une playlist, celle-ci n'est pas supprimée du système, mais est marquée comme ayant été éliminée.
rien. De cette manière, l'utilisateur peut récupérer à nouveau ses playlists au cas où il les aurait supprimées.
par erreur. Il est nécessaire d'enregistrer la date à laquelle une playlist a été marquée comme supprimée.
Nous pouvons dire qu'il existe deux types de playlists : actives et supprimées.
• Une playlist active peut être partagée avec d'autres utilisateurs, cela signifie que d'autres utilisateurs
vous pouvez y ajouter des chansons. Dans une liste partagée, nous sommes intéressés de savoir quel utilisateur a été celui qui
a ajouté chaque chanson et à quelle date il l'a fait.
• Une chanson ne peut appartenir qu'à un seul album. Un album peut contenir plusieurs chansons. Un
Un album a été publié par un seul artiste. Un artiste peut avoir publié de nombreux albums.
De chaque chanson, nous gardons un identifiant unique, un titre, une durée et le nombre de fois qu'elle a été reproduite.
dirigé par les utilisateurs de Spotify.
De chaque album, nous conservons un identifiant unique, un titre, une année de publication et une image de la couverture.
• Pour chaque artiste, nous conservons un identifiant unique, un nom et une image de l'artiste.
Un artiste peut être lié à d'autres artistes qui font de la musique similaire. Ainsi, Spotify
puisse-t-il nous montrer une liste d'artistes liés aux artistes que nous aimons.
• Nous sommes également intéressés à conserver les albums et les chansons préférés d'un utilisateur. Un utilisateur
vous pouvez sélectionner plusieurs albums et plusieurs chansons comme favoris.
nombre
image
N N
identifiant Lié
N N
Continue Artiste
titre
année
image
id
N 1
Publie
N N
Guarda A. Album
N N
Guarda C.
1 N
Contient
code_postal nombre_de_chansons
titre
nom d'utilisateur
pays
id date de création
id
mot de passe N
1 N N N
Utilisateur Crée Liste de lecture Ajoute Chanson
email
sexe
date
Identifiant
date de naissance
nombre_de_reproductions
titre durée
Éliminée Activa
Gratuit Premium
date_de_retrait es_partagée
date_de_renouvellement
code_de_sécurité nom_utilisateur_paypal
numéro_de_commande
date total
mois_d_expiration
année_d'expiration
Nous allons essayer de créer un modèle simple de à quoi ressemblerait la base de données pour une version réduite de You-
Tube.
• Pour chaque utilisateur, nous conservons un identifiant unique, email, mot de passe, nom d'utilisateur, date de naissance, sexe,
pays
Un utilisateur publie des vidéos.
• De chaque vidéo, nous conservons un ID unique, un titre, une description, une taille, le nom du fichier de
vidéo
désaccords.
• Une vidéo peut avoir trois états différents : public, caché et privé.
• Une vidéo peut avoir de nombreuses étiquettes. Une étiquette est identifiée par un identifiant unique et un nom d'éti-
quête.
Il est important de garder qui est l'utilisateur qui publie la vidéo et à quelle date/heure il le fait.
• Un utilisateur peut créer une chaîne. Une chaîne a un identifiant unique, un nom, une description et une date de
création.
• Un utilisateur peut donner un dislike à une vidéo une seule fois. Il faudra tenir un registre des
utilisateurs qui ont aimé ou n'ont pas aimé une vidéo donnée et à quelle date/heure ils l'ont fait.
• Un utilisateur peut créer des playlists avec les vidéos qu'il aime. Chaque playlist a un identifiant unique, un nom,
une date de création, et un état qui indique qu'il peut être public ou privé.
• YouTube peut te recommander des vidéos en fonction des vidéos que tu as regardées, donc il faudra garder
de manière à relier les vidéos qui sont associées entre elles par des contenus similaires.
• Un utilisateur peut écrire des commentaires sur une vidéo déterminée. Chaque commentaire est identifié par
un id unique
• Un utilisateur peut marquer un commentaire comme j'aime ou je n'aime pas. Il faudra tenir un registre des
utilisateurs qui ont marqué un commentaire j'aime / je n'aime pas, et à quelle date / heure ils l'ont fait.
Certains attributs des entités Utilisateur et Vidéo ont été omis afin de simplifier le diagramme.
Les attributs que contiennent chacune de ces entités sont les suivants :
•Usuario: id, email, password, username, fecha_nacimiento, sexo, país, código_postal.
•Vídeo: id, título, descripción, tamaño, nombre_archivo, duración, thumbnail, reproducciones, likes, dis-
aime
FK de USUARIO(id)
• ETIQUETA(id, nombre)
• VIDEO_TIENE_ETIQUETA(id_video,id_etiqueta)
FK de VIDEO(id)
FK de ETIQUETA(id)
FK de UTILISATEUR(id)
• UTILISATEUR_ABONNE_CANAL(id_utilisateur,id_canal)
FK de UTILISATEUR(id)
FK de CANAL(id)
• UTILISATEUR_EVALUE_VIDET(id_utilisateur,id_video, évaluation, date_heure)
FK de UTILISATEUR(id)
FK de VIDEO(id)
(id_playlist, id_video)
FK de PLAYLIST(id)
FK de VIDEO(id)
(id_video,id_video_relacionado)
FK de VIDEO(id)
FK de VIDEO(id)
FK de USUARIO(id)
FK de VIDEO(id)
USAGER_VALORE_COMMENTAIRE
FK de USUARIO(id)
FK de COMENTARIO(id)
Vidéo associée
id_video
id_video_relacionné
2.11 Pizzeria
Un client vous a engagé pour concevoir un site web permettant de passer des commandes de nourriture à domicile par Internet.
Veuillez tenir compte des indications suivantes pour modéliser à quoi pourrait ressembler la base de données du projet :
• Pour chaque client, nous stockons un identifiant unique, un nom, un prénom, une adresse, un code postal, une loca-
ville, province et numéro de téléphone.
• Les données de localité et de province seront stockées dans des tables séparées. Nous savons qu'une localité
appartient à une seule province, et qu'une province peut avoir de nombreuses localités.
• Paracadalocalidad, nous stockons un identifiant unique et un nom. Paracada province, nous stockons
un identifiant unique et un nom.
• Un client peut passer plusieurs commandes, mais une seule commande ne peut être passée que par un seul.
client. Pour chaque commande, un identifiant unique est stocké, date/heure, si la commande est pour livraison à
domicile ou à récupérer en magasin, la quantité de produits qui ont été sélectionnés de chaque type et le
prix total.
• Une commande peut comprendre un ou plusieurs produits. Les produits peuvent être des pizzas, des hamburgers et
boissons. Pour chaque produit, on stocke : un identifiant unique, un nom, une description, une image et un prix.
• Dans le cas des pizzas, il existe plusieurs catégories qui peuvent changer de nom au cours de l'année.
Une pizza ne peut appartenir qu'à une seule catégorie, mais une catégorie peut avoir plusieurs pizzas.
chaque catégorie est stockée avec un identifiant unique et un nom.
• Une commande est gérée par un seul magasin et un magasin peut gérer de nombreuses commandes. De chaque
Un identifiant unique, une adresse, un code postal, une localité et une province sont stockés dans le magasin.
Dans un magasin, de nombreux employés peuvent travailler et un employé ne peut travailler que dans un seul magasin.
Chaque employé est stocké avec un identifiant unique, un prénom, un nom de famille, un NIF, un téléphone et s'il travaille comme
cuisinier ou livreur.
• Pour les commandes de livraison à domicile, il est important de garder le nom du livreur qui effectue la livraison.
commande et la date/heure du moment de la livraison.
Les élèves de 1ᵉ ʳ ASIR et 1ᵉ ʳ DAW de l'IES Celia Viñas ont décidé de développer un site web qui leur permettra de réaliser
examens à choix multiples pour préparer les examens des différents modules du cycle. Le fonctionnement est très
sencillo, en entrant sur le site, un formulaire apparaît où vous pouvez sélectionner le module sur lequel vous souhaitez
réaliserletest, lethème, ladifficultédesquestionsetlenombretotaldequestions. Le site générera unexamen
avec des questions aléatoires chaque fois qu'on le demande. Concevez le modèle entité/association nécessaire pour la base
des données du projet en tenant compte des indications suivantes :
Il est nécessaire de stocker des informations sur les modules. Pour chaque module, nous allons stocker un identifiant.
cadre unique et un nom.
• Un module se compose de plusieurs thèmes, mais un thème ne peut appartenir qu'à un seul module. De chaque
nous stockons un identifiant unique, le numéro du sujet et le titre.
• Un sujet se compose de plusieurs questions, mais une question ne peut appartenir qu'à un seul sujet.
Nous stockons un identifiant unique, l'énoncé de la question et le niveau de difficulté.
Les questions ne peuvent avoir qu'un certain degré de difficulté, qui doit être une valeur appartenant au ensemble suivant :
Bas, Moyen, Alto.
• Une question a plusieurs réponses associées, mais une réponse ne peut être associée qu'à une seule.
Cette question. Parmi toutes les réponses présentées, une seule sera correcte. Pour chaque réponse, nous allons...
à stocker un identifiant unique, le texte de la réponse et un champ indiquant si c'est la réponse
correcte ou non, c'est ça.
Il est nécessaire de stocker des informations sur les examens qui ont été réalisés. Veuillez noter qu'un
l'examen se compose de nombreuses questions et une même question peut apparaître dans de nombreux examens différents.
rentes. De chaque examen est stocké un identifiant unique, la date de création, un nom et le numéro
total de questions qu'il a.
• Un élève passe de nombreux examens et un examen peut être passé par de nombreux élèves. C'est nécessaire-
rassembler la date de réalisation et la note obtenue par l'élève pour chacun des examens
réalisés. Pour chaque élève, nous stockons un identifiant unique, un nom d'utilisateur, un mot de passe, un nom et un prénom.
dos.
2.13 Vidéos
Le diagramme E/R suivant représente une base de données simple d'une application web qui permet de visualiser
vidéos par Internet. Réalisez le passage aux tables relationnelles à partir du diagramme E/R.
La spécialisation où apparaissent les entités Utilisateur, FreeyPremium peut être résolue de 3 manières.
différentes.
–id : FK de USUARIO(id)
SOLUTION 3 : Faire une seule table contenant les attributs de toutes les entités.
Pour la spécialisation où apparaissent les entités Vidéo, Épisode et Film, nous allions créer une table pour
chacune des entités.
• SERIE(id, nombre)
FK de VIDÉO(id)
FK de SERIE(id)
FK DE VIDÉO(id)
• GÉNERO(id, nombre)
Pour la relationUtilisateur_Ve_Vidéo, nous pouvons proposer deux solutions :
(id_utilisateur,id_vidéo,datetime)
FK de UTILISATEUR(id)
FK de VÍDEO(id)
Solution 2 : Nous créons un identifiant auto-numérique.
• USUARIO_VE_VÍDEO(id,id_usuario,id_vídeo, fecha_hora)
FK de UTILISATEUR(id)
FK de VIDÉO(id)
(id_vidéo, id_genre)
FK de VIDÉO(id)
FK de GÉNERO(id)
Crédits
Beaucoup des exercices et diagrammes qui apparaissent dans ce texte ont été extraits des références suivantes
cias:
•Conception de Bases de Données. Problèmes résolus. Ra-Ma. Adoración de Miguel. Paloma Martínez. Elena
Castro.
•Développement de bases de données. Cas pratiques de l'analyse à la mise en œuvre. Ra-Ma. Dolo-
res Cuadra. Elena Castro. Ana Mª Iglesias. Paloma Martínez. Fco. Javier Calle. César de Pablo. Harith Al-
Jumaily. Lourdes Moreno. Sonia García Manzano. José Luis Martínez. Jesica Rivero. Isabel Segura.
• Introduction à l'informatique. Diplômé en ADE. UPVMiguel Rebollo, Javier Martín, Álvaro Hermida et
Mario González.
43
Chapitre 4
Licence
Cette œuvre est sous une licence Creative Commons Attribution-NonCommercial-Partage dans les Mêmes Conditions 4.0 Internationale.
national
44