Ce document présente la solution détaillée d'un examen en informatique de gestion, spécifiquement conçu pour les étudiants universitaires. Il s'adresse notamment aux étudiants inscrits en parcours de gestion souhaitant approfondir leurs compétences en conception et manipulation de bases de données relationnelles.
Il couvre les notions suivantes:
- La modélisation conceptuelle des données (MCD)
- La modélisation logique des données (MLD)
- Les principes fondamentaux des bases de données relationnelles (clés primaires, clés étrangères)
- L'interrogation de bases de données via des requêtes SQL
Modélisation Merise : Solution Examen 2 en informatique de gestion
Télécharger PDFExamen en Informatique de Gestion : Solutions Détaillées
Ce document présente les solutions détaillées d'un examen d'informatique de gestion, divisé en trois exercices, d'une durée d'1h30.
Exercice 1 : Modélisation Conceptuelle et Relationnelle
Considérons le schéma relationnel suivant :
- Employé (Matricule, Nom, Prénom, Poste, #Grade, Datemb, #Supr, #Snum)
- Service (Snum, Snom)
- Salaire (Grade, Salmin, Salmax)
Informations clés :
- Chaque attribut souligné est une clé primaire.
- Chaque # correspond à une clé étrangère.
- L'attribut Supr correspond au matricule du supérieur hiérarchique de l'employé.
Question 1 : Modèle Conceptuel de Données (MCD)
Le MCD correspondant au schéma relationnel ci-dessus implique les entités et relations suivantes, basées sur la structure fournie :
- Entités :
- Employé (Matricule, Nom, Prénom, Poste, Datemb)
- Service (Snum, Snom)
- Salaire (Grade, Salmin, Salmax)
- Relations :
- Un Employé (1,N) travaille dans (1,1) un Service.
- Un Employé (0,N) a (1,1) un Salaire basé sur son grade.
- Un Employé (0,N) est supervisé par (0,1) un autre Employé (relation récursive pour #Supr).
Question 2 : Vrai ou Faux sur les relations des employés
Un employé peut avoir plusieurs supérieurs hiérarchiques ?
Réponse : Faux. Dans la table Employé, le `Matricule` est une clé primaire. Une clé primaire ne peut pas se répéter et détermine de manière unique tous les attributs de la relation. Cela signifie que pour chaque matricule, il n'y a qu'une seule valeur pour chacun des autres attributs, y compris l'attribut `#Supr` (le supérieur hiérarchique direct).
Deux employés différents peuvent avoir le même poste avec deux grades différents ?
Réponse : Vrai. Dans la table Employé, le `Matricule` est une clé primaire unique pour chaque employé. Étant donné que `Poste` et `Grade` ne sont pas des clés primaires, ils peuvent prendre des valeurs identiques ou différentes pour des employés distincts. Ainsi, deux employés avec des matricules différents peuvent tout à fait occuper le même poste tout en ayant des grades différents.
Question 3 : Évolution du schéma pour la gestion des postes
Modifiez le schéma de la base de données pour permettre à un employé d'évoluer dans l'entreprise en changeant de poste. On souhaite enregistrer les différents postes occupés par l'employé et leur date d'embauche (Datemb).
Réponse : Si un employé peut occuper plusieurs postes au fil du temps et que l'on souhaite historiser ces informations (poste et date d'embauche), ces attributs ne peuvent pas rester directement dans la table Employé. La solution consiste à créer une nouvelle table d'association :
- Employé (Matricule, Nom, Prénom, #Grade, #Supr, #Snum)
- Travail (#Matricule, Poste, Datemb)
La clé primaire composée (`#Matricule`, `Poste`) dans la table `Travail` permet d'enregistrer qu'un employé peut avoir plusieurs postes différents, chacun avec sa propre date d'embauche.
Exercice 2 : Gestion des consultations médicales et requêtes SQL
Voici le schéma relationnel (MLD) utilisé pour la gestion des consultations dans un cabinet médical :
- Medecin (Matricule, MNom, Prénom, Spécialité, Prix)
- Consultation (Matricule, PNum, Date)
- Patient (PNum, PNom, Tel, Fonction)
Questions Vrai ou Faux
Un Patient peut être consulté par plusieurs médecins différents ?
Réponse : Vrai. Dans la table `Consultation`, la clé primaire est composée des attributs `#Matricule` (clé étrangère vers Medecin) et `#PNum` (clé étrangère vers Patient). Cette composition indique une relation de type N:M (plusieurs à plusieurs) entre `Medecin` et `Patient`, signifiant qu'un patient peut consulter plusieurs médecins et qu'un médecin peut consulter plusieurs patients.
Un médecin peut enregistrer toutes les dates de consultation d'un même patient ?
Réponse : Faux. Dans la table `Consultation`, la clé primaire est composée de (`#Matricule`, `#PNum`). Une clé primaire garantit l'unicité de chaque enregistrement. Cela signifie qu'une combinaison spécifique de médecin et de patient ne peut apparaître qu'une seule fois. Si l'on souhaite enregistrer plusieurs consultations d'un même patient par le même médecin, il faudrait inclure l'attribut `Date` dans la clé primaire (par exemple, (`#Matricule`, `#PNum`, `Date`)) ou introduire un identifiant de consultation unique.
Requêtes SQL
Afficher la liste des médecins de spécialité "Cardiologie".
SELECT * FROM Medecin WHERE Spécialité = 'Cardiologie';Afficher le nom des patients, la date et le prix des consultations du Médecin 'Bennouna'.
SELECT P.PNom, C.Date, M.Prix FROM Medecin M, Patient P, Consultation C WHERE (M.Matricule = C.Matricule) AND (C.PNum = P.PNum) AND (M.MNom = 'Bennouna');Afficher pour chaque spécialité le nombre de médecins et le prix moyen des consultations.
SELECT Spécialité, COUNT(*), AVG(Prix) FROM Medecin GROUP BY Spécialité;Afficher le nom des médecins ayant le prix le plus élevé (Max).
SELECT MNom FROM Medecin WHERE Prix = (SELECT MAX(Prix) FROM Medecin);
Exercice 3 : Conception d'un système de gestion de consultations
Ce système d'information gère les consultations d'un cabinet médical. Plusieurs médecins y travaillent, chacun identifié par un matricule, un nom et une spécialité. Chaque consultation d'un patient (identifié par un numéro et un nom) est enregistrée avec un code unique, une date et une heure. Un médecin peut consulter le même patient plusieurs fois à des dates différentes. Pour chaque consultation, une ordonnance est générée, contenant un code, le nom des médicaments prescrits et leur dose respective.
Question 1 : Modèle Conceptuel de Données (MCD)
Le Modèle Conceptuel de Données (MCD) est le suivant :
- Entités :
- Patient (PNum, PNom)
- Medecin (Matricule, MNom, Spécialité)
- Consultation (CodeConsultation, Date, Heure)
- Ordonnance (Ocode)
- Médicament (Mcode, Intitulé)
- Relations :
- Un Patient (1,N) effectue (1,1) une Consultation.
- Un Medecin (1,N) réalise (1,1) une Consultation.
- Une Consultation (1,1) génère (0,1) une Ordonnance.
- Une Ordonnance (1,N) contient (0,N) des Médicament(s), avec l'attribut `Dose` sur la relation.
Question 2 : Modèle Logique de Données (MLD)
Voici le Modèle Logique de Données (MLD) correspondant :
- Patient (PNum, PNom)
- Medecin (Matricule, MNom, Spécialité)
- Consultation (CodeConsultation, Date, Heure, #PNum, #Matricule)
- Ordonnance (Ocode, #CodeConsultation)
- Medicament (Mcode, Intitulé)
- Contient (#Ocode, #Mcode, Dose)
Foire Aux Questions (FAQ)
Qu'est-ce qu'un MCD (Modèle Conceptuel de Données) ?
Le MCD est une représentation graphique des données d'un système d'information, indépendante de toute contrainte technique. Il décrit les entités (objets réels ou abstraits) et les relations qui les unissent, ainsi que leurs propriétés et cardinalités.
Quel est le rôle d'une clé primaire dans une base de données ?
Une clé primaire est un attribut ou un ensemble d'attributs qui identifie de manière unique chaque enregistrement (ligne) dans une table. Elle garantit l'intégrité des données en empêchant les doublons et assure l'accès rapide et précis aux informations.
Quand doit-on utiliser une jointure (JOIN) en SQL ?
Une jointure en SQL est utilisée pour combiner les lignes de deux tables ou plus, basées sur une colonne liée entre elles. Elle est indispensable lorsque les informations nécessaires proviennent de différentes tables, permettant de reconstruire des données complètes à partir de relations définies.