Parc informatique
[30 minutes]
Vous avez en charge la réalisation d'un modèle de base de données pour la gestion d'un parc informatique.
L'analyse des besoins révèlent les informations suivantes : tout matériel informatique est identifié de façon unique par un numéro de série et est décrit par une désignation. Il existe trois types de matériel informatique distincts : les PC, les serveurs et les imprimantes. Pour les PC, les informations que l'on veut gérer sont la taille de la mémoire vive et la cadence du micro-processeur, pour les serveurs on veut gérer leur volume de disque dur et pour les imprimantes leur résolution maximale d'impression.
On veut également gérer les connexions au réseau sachant que tout PC peut être relié à un ou plusieurs serveurs et que chaque serveur sert bien entendu plusieurs PC ; et qu'un PC peut être relié à une imprimante, qui est également utilisée par plusieurs PC.
Question
Réaliser le modèle conceptuel UML de ce problème.
Solution

Question
Réalisez le passage au modèle logique relationnel.
Solution
L'héritage n'est pas complet, on exclut a priori l’héritage par la classe mère.
La classe mère est abstraite, mais comporte une clé.
Nous choisissons ici un héritage par les classes filles qui sera plus simple que la solution par référence (qui comportera une table et une contrainte de plus).
Imprimante(#numeroSerie:integer, designation:string, resolution:integer)
PC(#numeroSerie:integer, designation:string, memoire:integer, processeur:integer, imprimante=>Imprimante)
Serveur(#numeroSerie:integer, designation:string, espaceDisque:integer)
Connexion(#numeroServeur=>Serveur, #numeroPC=>PC)
Contrainte complexe : INTERSECTION (Imprimante.numeroSerie, PC.numeroSerie, Serveur.numeroSerie) = {}
Complément : Solution avec transformation par référence
Materiel(#numeroSerie:integer, designation:string)
Imprimante(#numeroSerie=>Materiel, resolution:integer)
PC(#numeroSerie=>Materiel, memoire:integer, processeur:integer, imprimante=>Imprimante)
Serveur(#numeroSerie=>Materiel, espaceDisque:integer)
Connexion(#numeroServeur=>Serveur, #numeroPC=>PC)
Contraintes complexes :
- INTERSECTION (Imprimante.numeroSerie, PC.numeroSerie, Serveur.numeroSerie) = {}
- PROJECTION (Materiel, numeroSerie) = PROJECTION (Imprimante, numeroSerie) UNION PROJECTION (PC, numeroSerie) UNION PROJECTION (Serveur, numeroSerie)