Appliquer la notion

Description du problème

Soit le modèle UML ci-après.

@startumlskinparam defaultFontName Inconsolataskinparam classFontStyle boldskinparam linetype polylineskinparam nodesep 100hide circleclass Medicament {nom: varchar {unique}description: varchardescription_longue: varcharconditionnement: integer}class a as "Contre-indication" {code: varchar {unique}description: varchar}Medicament "1"-right-"*" a: comporte@enduml

On souhaite ajouter la gestion des composants des médicaments. Un composant est identifié par un code unique et possède un intitulé. Tout médicament possède au moins un composant, souvent plusieurs. Tout composant peut intervenir dans la fabrication de plusieurs médicaments. Il existe des composants qui ne sont pas utilisés pour fabriquer des médicaments et que l'on veut quand même gérer.

Exemple de données

  • Les composants existants sont :

    • HG79 : « Vif-argent allégé » 

    • HG81 : « Vif-argent alourdi » ;

    • SN50 : « Pur étain ».

  • Le Chourix a pour composant le HG79 et le SN50.

  • Le Tropas a pour unique composant le HG79.

Question

Étendre le modèle conceptuel UML afin d'ajouter la gestion des composants.

Question

En mobilisant les règles adéquates, proposer un modèle logique de données correspondant en relationnel à partir du modèle conceptuel développé précédemment. Le repérage des domaines et des clés est obligatoire.

Solution

1
Medicament (#nom:varchar, description:varchar, description_longue:varchar, conditionnement:number)
2
Contre_indication (#code:varchar, description:varchar, medicament=>Medicament) 
3
Composant (#code:varchar, intitule:varchar)
4
Composition (#medicament=>Medicament, #composant=>Composant)
ComplémentContraintes liées à la cardinalité
1
Contre_indication.medicament non null

Question

On dispose de la table représentant les médicaments, ajoutez les tables de données correspondant aux composants.