Vous êtes sur la page 1sur 15

Module : BDD

Enseignant : Mahseur Mohammed

MCD, MLD, MPD


Exercice 1
On désire réaliser un SI pour la gestion des projets (Budget communal), pour cela on a collecté les informations
suivantes :
• Un projet est caractérisé par : IdProjet, Intitulé, Montant, DateDébut, DateFin, Taux d’avancement des travaux.
• Une commune peut lancer plusieurs projets et un projet est lié a une seule commune, une commune est carac-
térisée par : IdCommune, Désignation, Population, Superficie.
• Une wilaya est composée de plusieurs communes, elle est caractérisée par : IdWilaya, Désignation.
• Un projet est aussi lié a un secteur exemple : (santé, éducation, travaux publics,...) , ce dernier est caractérisé
par : IdSecteur, Désignation.
• Un projet est réalisé par une seule entreprise qui est caractérisée par : IdEntreprise, Nom.
• Un projet est suivi par des bureaux d’études, qui sont caractérisés par un identifiant, un nom, et une adresse.
Travail à faire : Établir le MCD, MLD, MPD.

Exercice 2
Vous désirez gérer un club de prêt de DVD. Les clients (adhérents du club) versent une somme sur leur compte
lors de leur adhésion. Ils peuvent réserver le film avant de le louer et peuvent le garder une semaine au maximum. Le
prix de location du film est forfaitaire par jour emprunté. Il leur est possible de se faire livrer le film chez eux : cette
opération est facturée forfaitairement en plus.
Le film est décrit par son titre, le genre du film, le réalisateur et les trois acteurs principaux. On précise également
le nombre de DVD (il peut y en avoir plusieurs dans la pochette : « making of », autres versions, etc.) et leur prix
d’achat qui permettra de débiter le compte du client en cas de non-retour du film.
Vous voulez pouvoir annuler et mettre à jour les réservations et gérer les comptes des adhérents (par exemple ne plus
prêter au-delà d’un certain seuil ...). Vous vous servirez également de cette base de données pour effectuer des bilans
(tels que le chiffre d’affaires en fin de mois...), des relances (les films non rendus à temps...) et des statistiques (film le
plus emprunté, meilleur client...).
Travail à faire : Établir le MCD, MLD, MPD.

1
Module : BDD
Enseignant : Mahseur Mohammed

Dépendances Fonctionnelles
Dépendance fonctionnelle
Soit R(A1 , A2 ...An ) un schéma de relation, et X et Y des sous-ensembles de {A1 , A2 , ...An }. On dit que X → Y
(X détermine Y, ouQ Y dépendQfonctionnellement de X) si pour toute extension r de R, pour tout tuple t1 et t2 de r,
on a : X(t1 ) = X(t2 ) ⇒ Y (t1 ) = Y (t2 ).
Q Q

Propriétés des dépendances fonctionnelles


Les DF obéissent à plusieurs règles d’inférences triviales. Les trois premières règles suivantes composent les axiomes
des dépendances fonctionnelles et sont connues dans la littérature sous le nom d’axiomes d’Armstrong, les autres règles
se déduisent de ces axiomes de base :
1. Réflexivité : Y ⊆ X ⇒ X → Y
2. Augmentation : X → Y ⇒ XZ → Y Z
3. Transitivité : (X → Y et Y → Z) ⇒ X → Z
4. Union : (X → Y et X → Z) ⇒ X → Y Z
5. Pseudo-transitivité : (X → Y et W Y → Z) ⇒ W X → Z
6. Décomposition : (X → Y et Z ⊆ Y ) ⇒ X → Z
Autrement dit : A → BC ⇒ (A → B et A → C)
7. Composition : (A → B et C → D) ⇒ AC → BD

Dépendance fonctionnelle élémentaire


Dépendance fonctionnelle de la forme X → A, où A est un attribut unique n’appartenant pas à X (A ∈
/ X) et où
il n’existe pas X ′ ⊂ X tel que X ′ → A

Fermeture transitive
À partir d’un ensemble de DF élémentaires, on peut composer par transitivité d’autres DF élémentaires. On aboutit
ainsi à la notion de fermeture transitive d’un ensemble F de DF élémentaires : c’est l’ensemble des DF élémentaires
considérées enrichi de toutes les DF élémentaires déduites par transitivité. Par exemple, à partir de l’ensemble de DF :
F = {N v → T ype ; T ype → M arque ; T ype S → P uissance ; N v → Couleur}
on déduit la fermeture transitive : F + = F {N v → M arque ; N v → P uissance}

Couverture minimale
Ensemble F de DF élémentaires associé à un ensemble d’attributs vérifiant les propriétés suivantes :
1. Aucune dépendance dans F n’est redondante, ce qui signifie que pour toute DF f de F, F – f n’est pas équivalent
à F.
2. Toute DF élémentaire est dans la fermeture transitive de F (notée F + ).

Clé de relation
Sous-ensemble X des attributs d’une relation R(A1 , A2 ..., An ) tel que :
1. X → A1 A2 ...An
2. Il n’existe pas de sous-ensemble Y ⊂ X telque Y → A1 A2 ...An
Un ensemble d’attributs qui inclut une clé est appelé super-clé. Par exemple, Nv est une clé de la relation VOITURE,
alors que (Nv, Type) n’est pas une clé mais une super-clé. Il peut y avoir plusieurs clés pour une même relation : on
en choisit en général une comme clé primaire. On parle parfois de clé candidate pour désigner une clé quelconque.

2
Exercice 3
Considerons le schema de la relation R(A,B,C,D,E), cette relation est definie en extension par les tuples suivants :
A B C D E
a1 b2 c2 d3 e2
a1 b2 c2 d1 e4
a2 b3 c2 d1 e5
a2 b4 c5 d1 e5
1. Parmi les DFs suivantes, lesquelles s’appliquent à l’extension de R :
⃝ E→D ⃝ E→A ⃝ {A, E} → C
⃝ D→E ⃝ B→C ⃝ {A, E} → D
⃝ C→A ⃝ B→A ⃝ {A, D} → E
⃝ E→B ⃝ B→D ⃝ {A, B} → A
2. Déterminer, parmi les groupes d’attributs suivant, lesquels sont des clés candidates/super-clé dans R selon
l’extension donnée :
⃝ A ⃝ C ⃝ E ⃝ {A, B, E} ⃝ {B, E}
⃝ B ⃝ D ⃝ {A, D} ⃝ {C, D} ⃝ {A, B, C, D, E}

Exercice 4
Soit R(A,B,C,D,E,G,H), F = {AB → C; B → D; CD → E; CE → GH; G → A}.
En utilisant les axiomes d’Armstrong, montrer que l’on peut déduire de cet ensemble :
1. AB → E
2. BG → C
3. AB → G

Exercice 5
Soit R(A,B, E,G,H,I,J) et F = {AB → E; AG → J; BE → I; E → G; GI → H} En utilisant les axiomes
d’Armstrong, montrer que l’on peut déduire de cet ensemble :
1. ABG → EGJ
2. AB → GH
3. BE → H

Exercice 6
Soit la relation R (A,B,C,D,E,F) avec les Dfs F= {A → BC, E → CF, B → E, CD → EF }
Calculer la fermeture {A, B}+ de l’ensemble des attributs {A, B} pour cet ensemble de Df F.

Exercice 7
Soit la relation R (A,B,C,D,E,F,G,H,I) avec les Dfs F= {ABD → E, AB → G, B → F, C → J, CJ → I, G → H}.
Cet ensemble est-il irréductible ?

Exercice 8
Soit la relation R(A,B,C,D,E,G) avec les Dfs F ={AB → C, C → A, BC → D, ACD → B, D → EG, BE →
C, CG → BD, CE → AG}
1. Montrer que les Dfs CE → A et CG → B sont redondantes.
2. Montrer qu’il y a un attribut étranger dans ACD → B.
3. Donner une couverture minimale.
4. En reprenant F montrer que CG → D est redondante ainsi que ACD → B.
5. En déduire une seconde couverture non redondante réduite ayant moins d’éléments que la première.

Exercice 9
Soit R(A,B,C,D,E,G,H) et l’ensemble des DFs :
F={G → A, AB → C, B → D, CD → E, CE → GH}
1. Calculer G+
2. Calculer BC +
3. Trouver deux clés candidates

3
Exercice 10
Soit R(A,B,C,D,E,F) et l’ensemble des DFs :
F1={A → BC, B → E, CD → EF }
F2={A → B, CDE → F, B → E, A → CE, CD → E}
1. F1 et F2 sont ils équivalents
2. Trouver une clé candidate des deux ensembles
3. Trouver une couverture minimale

Exercice 11
Soit R(A,B,C,D,E,F) et l’ensemble des DFs :
F={AC → D, B → AF, C → BE, F → EC}
1. Trouver les clés candidates de F
2. Trouver deux couvertures minimales

Exercice 12
Soit R(A,B,C,D,E,F) et l’ensemble des DFs :
F={AB → C, C → A, BC → D, ACD → B, BE → C, CE → BD, CE → F A, D → EF }
1. Déterminer une couverture minimale de F
2. Trouver une clé primaire

4
Module : BDD
Enseignant : Mahseur Mohammed

Conception-Normalisation-Décomposition d’une BDD


Exercice 13
Soit R(A,B,C,D,E,F) et l’ensemble des DFs :
F={AB → C, AB → D, AB → E, AB → F, B → C, D → E, D → F }
1. Déterminer une couverture minimale de F
2. Trouver une clé primaire
3. Quelle est la plus grande forme normale de R ?
4. Proposer une décomposition de R en 3FN

Exercice 14
Pour chaque relation ci-dessous :
1. Donner la couverture minimale,
2. Définir son (ses) identifiant(s)(Clé(s)),
3. Définir sa forme normale et la justifier,
4. Si nécessaire, proposer une décomposition optimale.
a. Pièce : Description des pièces employées dans un atelier de montage.
Pièce (N°pièce, prix_unit, TVA, libellé, catégorie)
Avec les dépendances fonctionnelles suivantes :
— N°pièce → prix_unit
— N°pièce → TVA
— N°pièce → libellé
— N°pièce → catégorie
— Catégorie → TVA
b. Prime : Liste des primes attribuées au personnel technique en fonction des machines sur lesquelles il travaille.
Prime (N°machine, atelier, N°techn, montant_prime, nom_techn)
Avec les dépendances fonctionnelles suivantes :
— N°machine → atelier
— N°techn → nom_techn
— (N°machine, N°techn) → montant_prime
c. Employé1 : Description d’un employé travaillant sur un projet d’un laboratoire.
Employé ( N°Emp, N°Lab, N°Proj, NomEmp, NomProj, adresse)
Avec les dépendances fonctionnelles suivantes :
— (N°Emp, N°Lab) → N°Proj
— (N°Emp, N°Lab) → NomProj
— (N°Emp, N°Lab) → NomEmp
— N°Emp → NomEmp
— N°Emp → adresse
— N°Proj → NomProj

Exercice 15
On considère un ensemble de DF relatif à la gestion d’un ensemble des centres de formation.
— Num_centre → Nom_centre
— Num_centre → Superficie
— Num_centre → Nbre_locaux
— Num_centre → Num_directeur
— Num_centre → Nom_directeur
— Num_centre → Nbre_d’élèves
— Num_centre → Adresse
— Num_centre, adresse → Nom_centre
— Num_directeur → Nom_directeur
— Num_spécialité → Libellé_spec
1. Trouver la couverture minimale
2. En appliquant l’algorithme de synthèse, proposez un schéma de relation en 3FN.

5
Exercice 16
Soit R(A, B, C, D, E, F, G) une relation, avec les dépendances : AB → C, AB → D, AB → E, AB → F, B → C,
D → E, D → F, G → A
1. Trouver la couverture minimale. Quel(s) est (sont) l’identifiant(s) de R ?
2. Quelle est la forme normale de R ? Justifier votre réponse.
3. Proposer une décomposition optimale de R.

Exercice 17
Un établissement scolaire d’une bibliothèque permettant à ses adhérents d’emprunter des livres. Un adhérent peut
être un étudiant ou un enseignant, il est identifié par un numéro (Num_adh), possède un nom, un prénom et appartient
à une catégorie (enseignant ou étudiant). Un livre est identifié par un numéro de référence (côte), possède un titre,
une spécialité, une année d’édition et une maison d’édition. Un livre est écrit par un ou plusieurs auteurs dont un
est principal. Un auteur est identifié par un numéro (code_auteur), il possède un nom, un prénom et une nationalité.
Un livre possède un ensemble de mots clés, un mot clé peut appartenir à plusieurs livres et est identifié par un code
(code_motclé). Un livre peut être emprunté par plusieurs adhérents dans le temps, à chaque opération d’emprunt on
doit enregistrer la date (Date_emp) et chaque restitution, on doit enregistré la date (Date_rest).
Questions : En appliquant l’algorithme de synthèse, proposez un schéma de relation en 3FN.

Exercice 18
On désire concevoir un schéma relationnel en 3FN, pour stocker les informations nécessaires à la gestion des
soutenances des projets de fin d’études (PFE) des étudiants de la filière Informatique. Les données de ce problème
sont les suivantes : Un étudiant est identifié par un numéro unique (Matricule), il possède un nom et un prénom. Un
PFE est identifié par un numéro (NumPFE), il est décrit par un titre de sujet et une spécialité. Les soutenances de
PFE se déroulent dans des sessions différentes, une session est identifié par un numéro (Numsession) et se déroule entre
deux dates (Date_deb et Date_fin). Les soutenances se font en présence d’un jury qui doit évaluer le travail effectué.
Un jury est identifié par un numéro de jury (Numjury), et est composé de trois enseignants : un président identifié
par Code_Enspr et deux membres désignés respectivement par Code_EnsM1 et Code_EnsM2. Une soutenance est
sanctionnée par une décision de jury (admis ou ajourné) et une mention. Un enseignant est identifié par un numéro
(Code_Ens), possède un nom, un prénom et une spécialité.
En appliquant l’algorithme de synthèse, trouvez le schéma de relations en 3FN.

Exercice 19
Une auto-école souhaite construire une base de données pour gérer les examens théoriques du code de la route de
ses élèves. Chaque élève est identifié par un numéro unique et est caractérisé par un nom, un prénom, une adresse
et une date de naissance. Chaque élève assiste à plusieurs séances de code (autant qu’il le souhaite). Chaque séance
est caractérisée par une date et une heure. A chaque séance de code, le directeur de l’auto-école choisit une série de
questions sur un CD-ROM. Chaque CD-ROM est identifié par un numéro et est caractérisé par un nom d’éditeur
(éditeur d’une série (une série appartient à un seul CD-ROM)). Chaque CD-ROM est composé de plusieurs séries,
numérotées. Chaque série est composée de plusieurs questions. Chaque question est identifiée par un intitulé et est
caractérisée par une réponse, un niveau de difficulté et un thème. Une même question peut apparaître dans plusieurs
séries avec un numéro d’ordre pour chaque série ; par exemple une même question peut apparaître comme question 2
dans la série 5 du CD-ROM 15 et comme question 12 dans la série 3 du CD-ROM 4. Lorsqu’un élève a obtenu, un
certain nombre de fautes, le directeur de l’auto-école l’autorise à passer l’examen théorique du code de la route à une
date donnée (un élève est autorisé à passer 3 examens). L’auto-école peut présenter 8 élèves à chaque examen.
Question : En appliquant l’algorithme de synthèse, donner le schéma relationnel en 3FN

Exercice 20
Le tribunal de Bab Ezzouar veut se doter d’une base de données permettant de gérer, efficacement avant les
audiences, l’important flux des affaires judiciaires à juger. Une affaire judiciaire est inscrite au tribunal à travers les
informations initiales suivantes : Un numéro unique (numa), une date d’enregistrement (data), un type d’affaire (typa).
Le type d’affaire peut être crime crapuleux, crime passionnel, fraude financière, crime économique etc...
Une affaire peut concerner plusieurs personnes. Une personne est caractérisée par un numéro unique (nump), un nom
(nomp), un prénom (prep), une date de naissance (datp), une adresse (adrp), un numéro de téléphone (telp). Chaque
personne concernée par une affaire donnée possède la qualité soit de "victime", "accusée", ou "témoin". On enregistre
ainsi les faits subis ou reprochés ou récités. Un fait d’une personne vis-à-vis d’une affaire est caractérisé par une date
(datf), une heure (heuf), une durée (durf), une description (desf). Chaque personne "accusée" dans une affaire est
défendue par un avocat selon une position (innocent ou coupable). Les données concernant un avocat sont : un numéro
unique (numv), nom (nomv), prénom (prev), adresse (adrv), téléphone (telv). Pour une affaire donnée, un avocat peut

6
convoquer un ou plusieurs témoins. Chaque affaire est suivie par un jury. Chaque jury identifié par un code (codj),
est constitué de plusieurs juges, dont l’un est président et les autres membres. Un juge est caractérisé par un numéro
unique (numj), un nom (nomj), un prénom (prej), une adresse (adrj), un numéro de téléphone (telj). Un jury peut
suivre plusieurs affaires à la fois. Pour chaque affaire, un jury effectue une à plusieurs audiences à des dates différentes
durant lesquelles les victimes, accusés ou témoins donnent leurs déclarations. Le jury annonce une décision à chaque
fin d’audience.
1. Donner l’ensemble des dépendances fonctionnelles
2. Déterminer un schéma relationnel 3 FN pour cette BD en appliquant l’algorithme de synthèse

Exercice 21
Un Parc zoologique est composé de plusieurs zones. Chaque zone est caractérisée par un code unique (codz), un
nom (nomz), une localisation (loc), une surface (surf) et un type d’animaux (typa). Une zone contient plusieurs enclos.
Un enclos est un espace de terrain entouré d’une clôture. Chaque enclos est localisé dans une zone et il est décrit
par un numéro unique (nenc), un type (tenc) et la position vis-à-vis de la zone (pos). Chaque enclos est constitué
de plusieurs cages. Chacune contenant un ou plusieurs animaux d’une même espèce (esp) pendant une durée limitée
allant d’une date de début (dated) à une date de fin (datef). Une cage est décrite par (ncag) : numéro séquentiel dans
l’enclos. On enregistre les données suivantes spécifiant un animal du parc : code unique (coda), nom (noma), espèce
(esp), origine (origin), date et lieu de naissance (dateN et lieuN) et description (desc). Un enclos est pris en charge par
un ou plusieurs employés du parc pendant une durée selon un planning d’affection annuel. Ce planning, correspondant
à une année, contient les informations suivantes : matricule de l’employé (mat), son nom, son prénom, les différents
enclos affectés avec la date d’affectation et la date de fin de tâches vis-à-vis de ces derniers. Une espèce d’animal à
un régime alimentaire quotidien bien spécifique. Ce régime est composé d’un nombre de litres d’eau, une quantité de
viande et une quantité de légumes bien précises. Le suivi médical des animaux se fait de façon périodique. On enregistre
ainsi, dans une fiche médicale, les informations suivantes : code de l’animal, la date du contrôle, son état de santé, la
température prélevée, les résultats des tests sanguins (testA, testB et testC), les médicaments prescrits. Pour chaque
médicament (med), on précise la quantité (qtemed) et la durée du traitement (durmed). Par ailleurs, des entreprises
(une ou plusieurs) peuvent sponsoriser une ou plusieurs zones du parc pendant une ou plusieurs années en garantissant
un montant financier important. On notifie ce sponsoring par les données suivantes : matricule électronique du registre
de commerce de l’entreprise (matent), nom de l’entreprise, son chiffre d’affaires, année du début de sponsoring ainsi
que le nombre d’années, le montant financier assuré (mta).
1. Déterminer l’ensemble des DF
2. Déterminer le schéma relationnel en 3FN en appliquant l’algorithme de synthèse

7
Module : BDD
Enseignant : Mahseur Mohammed

Algèbre relationnel
Opérateurs de l’algèbre relationnel
• Union : Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une relation
de même schéma R3 ayant pour tuples ceux appartenant à R1 ou R2 ou aux deux relations : R3 = R1 ∪ R2,
ou R3 = U N ION (R1, R2), ou R3 = AP P EN D(R1, R2)
• Différence : Opération portant sur deux relations de même schéma R1 et R2, consistant à construire une relation
de même schéma R3 ayant pour tuples ceux appartenant à R1 et n’appartenant pas à R2 : R3 = R1 − R2, ou
R3 = DIF F EREN CE(R1, R2), ou R3 = REM OV E(R1, R2), ou R3 = M IN U S(R1, R2)
• Produit cartésien : Opération portant sur deux relations R1 et R2, consistant à construire une relation R3
ayant pour schéma la concaténation de ceux des relations opérandes et pour tuples toutes les combinaisons des
tuples des relations opérandes :R3 = R1 × R2, ou R3 = P RODU CT (R1, R2), ou R3 = T IM ES(R1, R2)
• Intersection : Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une
relation de même schéma R3 ayant pour tuples ceux appartenant à la fois à R1 et R2 : R3 = R1 ∩ R2, ou
R3 = IN T ERSECT (R1, R2), ou R3 = AN D(R1, R2)
• Division : Opération consistant à construire le quotient de la relation D(A1 , A2 ...Ap , Ap+1 ...An ) par la relation
d(Ap+1 ...An ) comme la relation Q(A1 , A2 ...Ap ) dont les tuples sont ceux qui concaténés à tout tuple de d
donnent un tuple de D : Q = D ÷ d, ou Q = DIV ISION (D, d)
• Complément : Ensemble des tuples du produit cartésien des domaines des attributs d’une relation n’appartenant
pas à cette relation : R3 = N OT (R1), ou R3 = COM P (R1)
• Projection : Opération sur une relation R1 consistant à composer une relation R2 en enlevant à la relation
initiale tous les attributs non mentionnés en opérandes (aussi bien au niveau du schéma que des tuples) et en
éliminant les tuples en double qui sont conservés une seule fois : R2 = Attributi , Attributj ...Attributm (R1),
Q
ou R2 = R1[Attributi , Attributj ...Attributm ], ou R2 = P ROJECT (R1, Attributi , Attributj ...Attributm )
• Restriction : Opération sur une relation R1 produisant une relation R2 de même schéma, mais comportant les
seuls tuples qui vérifient la condition précisée en argument : R2 = σcondition (R1), ou R2 = R1[Condition], ou
R2 = REST RICT (R1, Condition),
Les conditions possibles sont du type : <Attribut> <Opérateur> <Valeur> où l’opérateur est un opérateur
de comparaison choisi parmi {=, <, ⩽, ⩾, >, ̸=}.
L’attribut doit appartenir à la relation sur laquelle s’applique le critère. Il est aussi possible d’utiliser des
compositions logiques de critères simples, c’est-à-dire des « et » et « ou » de conditions élémentaires.
• Jointure : Opération consistant à rapprocher selon une condition les tuples de deux relations R1 et R2 afin
de former une troisième relation R3 qui contient l’ensemble de tous les tuples obtenus en concaténant un
tuple de R1 et un tuple de R2 vérifiant la condition de rapprochement : R3 = R1 1 R2, ou R3 =
Condition
JOIN (R1, R2, Condition)
• Jointure externe : Opération générant une relation R3 à partir de deux relations R1 et R2, par jointure de ces
deux relations et ajout des tuples de R1 et R2 ne participant pas la jointure, avec des valeurs nulles pour les
attributs de de l’autre relation : R3 = R1 1 R2, ou R3 = EXT _JOIN (R1, R2)

• Semi-jointure : Opération portant sur deux relations R1 et R2, donnant en résultat les tuples de R1 qui
participent à la jointure des deux relations :R3 = R1 ⋉ R3, ou R3 = SEM I − JOIN (R1, R2)

Représentation graphique des opérateurs

8
Exercice 22
Soit le MLD suivant :
Emplyé(M at, N om, P rénom, Adresse, service)
P roduit(Codep, Desig, T ype, U M esure, N ature)
Consommer(M at∗, Codep∗, Date, QT T )
En utilisant des expressions d’opérations de l’algèbre relationnelle,
1. Donner la liste des produits consommés par les employés du service "Maintenance"
2. Donner la liste des produits de nature="Liquide" consommés par les employés du service "Comptabilité"
3. Donner les natures des produits de Type "Détergent" et mesurés en "KG"
4. Donner les noms et prénoms des employés qui ont consommé des produits de type "Fourniture" ou "Détergent"
5. Donner les noms et adresses des employés ayant consommé a la fois plus de 5 unités de produits mesurés en
"KG" de nature "Poudre"
6. Donner les Noms des employés n’ayant consommé que des produits de type "Fourniture"
7. Donner la liste des services dont les employés ont consommé des produits de type "Pharmaceutique"
8. Donner la liste des employés qui n’ont rien consommé
9. Donner la liste des employés qui ont consommé des produits de type "Fourniture" et des produits de type
"Détergent"
10. Donner la liste des employés ayant consommé au moins un produit le "31/12/2022"

9
Module : BDD
Enseignant : Mahseur Mohammed

SQL : Langage de définition de données LDD


La commande CREATE
1. Création d’une BDD : CREATE DATABASE N om_BDD
2. Création d’une table : CREATE TABLE N om_T able(Col1 type1 , ...Coln typen ) ;

La commande ALTER
Modification d’une table : ALTER TABLE N om_T able
1. Ajout d’un attribut : ALTER TABLE N om_T able ADD Colk typek
2. Modification d’un type d’un attribut : ALTER TABLE N om_T able MODIFY Colk typej
3. Suppression d’un attribut : ALTER TABLE N om_T able DROP Colk
4. Modifier le nom d’une colonne : ALTER TABLE N om_T able RENAME COLUMN Encien_N om TO N ouv_N om
5. Modifier le nom d’une table : ALTER TABLE N om_T able RENAME TO N ouv_N om_T able

La commande DROP
1. Suppression d’une BDD : DROP DATABASE N om_BDD
2. Suppression d’une table : DROP TABLE N om_T able

Les Contraintes de domaine


1. NOT NULL : on impose que l’attribut possède une valeur
2. DEFAULT : on spécifie une valeur par défaut
3. UNIQUE : interdit qu’une colonne contienne deux valeurs identiques
4. CHECK (Condition)

Les contraintes d’intégrité d’entité


1. PRIMARY KEY : Une clé primaire doit toujours avoir une valeur déterminée et unique
2. Quand une clé primaire est constituée de plusieurs attributs, la clause PRIMARY KEY est placée après la
définition des attributs, séparée par une virgule.

Les contraintes d’intégrité référentielle


1. REFERENCES N om_T able_Réf érencée(Colonne)
2. Utilisation de FOREIGN KEY pour spécifier une clé étrangère constituée de plusieurs attributs
Exemple :
CREATE TABLE Enseignant(IdE Integer Primary key, Nom Varchar(30) Not Null,
Prenom Varchar(25) Not Null, Datenaiss Date Not Null,
Nationalite Varchar(30) default ’Algerienne’, NCarte integer not null unique,
Echelon integer Not Null check(Echelon between 0 and 20),
Sitfam char(1) check (Sitfam in(’M’,’D’,’C’,’V’)));

CREATE TABLE Module(IdM Integer Primary key, Designation Varchar(25) Not null);

CREATE TABLE Enseigner(


IdE Integer Not null REFERENCES Enseignant(IdE),
IdM Integer Not null,
Primary key(IdE,IdM),
foreign key IdM REFERENCES Module(IdM));

10
Exercice 23
Dans la base de données de l’exemple précédent :
1. Créer la table Département(IDD, Designation)
2. Supprimer la colonne Nationalite de la table Enseignant
3. Modifier la taille de la colonne Prenom de la table Enseignant ( nouvelle taille=30)
4. Modifier le nom de la colonne Datenaiss vers DateN dans la table Enseignant
5. Ajouter une Clé étrangère IDD a la table Enseignant
6. Supprimer la table Etudier
7. Modifier le nom de la table Module vers Matiere

11
Module : BDD
Enseignant : Mahseur Mohammed

SQL : Langage de manipulation de données de données LMD


La commande INSERT
1. Insertion d’un nouveau tuple (tous les champs sont fournis dans l’ordre de déclaration) :
INSERT INTO N om_T able VALUES (V al1 , ..., V aln )
2. Insertion d’un nouveau tuple (les champs ne sont pas tous fournis ou bien l’ordre de déclaration n’est respecté) :
INSERT INTO N om_T able (Colk , Coli , Colj )VALUES (V alk , V ali , V alj )

La commande UPDATE
1. Changement de la valeur d’un champs d’un tuple existant :
UPDATE N om_T able SET N om_Colonne= Expressionouvaleur WHERE Condition

La commande DELETE
1. suppression d’un tuple existant :
DELETE FROM N om_T able WHERE Condition

La commande SELECT
1. Projection d’un ensemble de colonnes sans élimination des doublons :
SELECT Coli , Colj , Colk FROM N om_T able
2. Projection d’un ensemble de colonnes avec élimination des doublons :
SELECT DISTINCT Coli , Colj , Colk FROM N om_T able
3. Projection de tous les colonnes d’une Table : SELECT ∗ FROM N om_T able

La clause WHERE
1. Restriction suivie d’une projection :
SELECT Coli , Colj , Colk FROM N om_T able WHERE Condition
2. La Condition peut contenir :
(a) Les opérateurs de comparaison : ≤; ≥; >; <; =; ! =
(b) L’intervalle : WHERE Colk BETWEEN V al1 AND V al2
(c) Comparaison de texte : LIKE
Exemple1 le nom commence par ’BEN’ : WHERE N om LIKE ’BEN%’
Exemple2 le nom se termine par ’EUR’ : WHERE N om LIKE ’%EUR’
Exemple3 le nom contient ’A’ : WHERE NOM LIKE ’%A%’
(d) Test de nullité : WHERE Colk IS NULL ; ou bien IS NOT NULL
(e) Test d’appartenance : WHERE Colk IN (V al1 , V al2 , ...)

Expressions de jointure
1. C’est une restriction d’un produit cartésien par une condition dans la clause WHERE

Fonctions de calculs et agrégats


1. COUNT qui permet de compter le nombre de valeurs d’un ensemble
2. SUM qui permet de sommer les valeurs d’un ensemble
3. AVG qui permet de calculer la valeur moyenne d’un ensemble
4. MAX qui permet de calculer la valeur moyenne d’un ensemble
5. MIN qui permet de calculer la valeur moyenne d’un ensemble

12
Opérateurs ensemblistes
1. UNION : permet de concaténer les résultats de deux requêtes de même schéma sans doublons
2. UNION ALL : permet de concaténer les résultats de deux requêtes de même schéma avec doublons
3. INTERSECT : permet de donner l’intersection de des résultats de deux requêtes de même schéma
4. MINUS (Minus en oracle et mysql ou Except en postgresql) : permet de faire la différence des résultats de deux
requêtes de même schéma

Résultats regroupés
1. GROUP BY : permet de regrouper les résultats d’une requête et appliquer des statistiques sur chaque groupe
2. HAVING : permet d’appliquer un filtre sur les groupes de résultats

Exercice 24
Soit le MLD suivants :
FACULTE(IDF, Desig, Tel)
ENSEIGNANT(MAT, Nom, Prenom, DateNaiss, DateRecrt, Salaire, Adresse, Teleph, Email, Grade, IDF*)
MODULE(IDM, Desig)
ENSEGNER(MAT*,IDM*,Nchoix)
JOURNAL(IDJ, Desig, Classe)
PUBLIER(IDJ*,MAT*,Datep,Titre)
CONFERENCE(IDC, Theme, DateDeb, DateFin, Localite, Typec)
PARTICIPER(IDC*,MAT*,datep,Titre)
Exprimer les requêtes suivantes en SQL :
1. Donner la liste des enseignants (Nom,Prénom) de la Faculté ’INFORMATIQUE’ qui ne possèdent pas un Email
2. Donner la liste des enseignants (Nom, Prénom)nés entre 05/07/1962 et 31/12/2000 et leur Nom commence par
’BOU’, de la faculté Numéro 13
3. Donner la liste des enseignants (Nom,Prénom) déjà publier dans un journal de classe ’A’, ou ’B’ ou ’C’ durant
l’année 2022
4. Donner la liste des enseignants (Nom,Prénom) ayant au moins participer dans une conférence de type ’Inter-
national’ ou publier dans un journal de classe ’B’
5. Donner la liste des enseignants (Nom,Prénom) ayant au moins participer dans une conférence de type ’Inter-
national’ et publier dans un journal de classe ’B’
6. Donner la liste des enseignants (Nom,Prénom) n’ayant jamais publier dans un journal de classe ’A’
7. Donner la liste des matières enseignées par l’enseignant ’BOUADI DJAMEL’ en premier choix
8. Donner une liste contient le Nom et le nombre de matières enseignées par chaque enseignant de la faculté
’INFORMATIQUE’
9. Donner la liste des enseignants qui enseigne plus de 5 matières
10. Donner pour chaque faculté la somme des salaires de leurs enseignants
11. Donner la liste de facultés qui contiennent moins de 40 enseignants
12. Donner la liste des enseignants ayant publier plus de 10 articles et participer dans plus de 20 conférences
13. Donner la salaire maximal perçu au niveau de la faculté ’DROITS’
14. Donner la liste des enseignants de la Faculté ’DROITS’ qui touchent le salaire maximal de cette faculté
15. Donner le(s) nom de l’enseignant récemment recruté(s)
16. Donner le liste des enseignants ayant participé dans toutes les conférences
17. Donner le nombre d’enseignants moyen dans les facultés
18. Donner la désignation de la faculté qui contient le plus grand nombre d’enseignants

Exercice 25
Considérons le schéma relationnel suivant :

Etudiant(Matricule, Nom,Prénom, Groupe, Code_salle*)


Enseignant(Code_ens, Nom_ens,Prénom_ens, Grade)
PC(Code_PC, Modèle, RAM, DD)
Salle(Code_salle, superficie)
Séance(code_séance, Code_ens*, Code_salle*, Jour_semaine,Heure, Groupe)
Affectation(code_séance*, Matricule*, Code_PC*). Questions :

13
1. Quelles sont les groupes dont les enseignants ont le grade de Chargé de cours ?
2. Quels sont les étudiants (Matricule, Nom) non concerné par les séances du jeudi ?
3. Quels sont les Maîtres assistants (Code_ens, Nom, prénom) Assurant plus d’une séance de TP ?
4. Quels sont les enseignants qui n’assurent aucune séance à la salle 204 ?
5. Quels sont les groupes qui ont un nombre d’étudiants supérieure ou égal à 12 ?
6. Quelles sont les salles dont la superficie est maximale ?
7. Quel est le nombre de séances assurées par chaque enseignant ?

14
Révision générale : Examen blanc

Exercice 26
Une auto-école souhaite construire une base de données pour gérer les examens théoriques du code de la route de
ses élèves (qui sont ses clients). L’auto-école va dispenser des séances d’apprentissage du code de la route par le biais de
projections. Chaque élève est identifié par un numéro unique (NumCl) et est caractérisé par un nom (NomCl), prénom
(PrenCl), une adresse (AdrCl) et une date de naissance (DateNaiss). Chaque élève participe à plusieurs séances de code
(autant qu’il souhaite). Chaque séance est caractérisée par un numéro unique (NumSeanc), par une date (DatSeanc)
et une heure (HeurSeanc). Chaque série est composée de 40 questions. A chaque séance de code où plusieurs élèves
y participent, le directeur de l’auto-école choisit une série de question sur un CD-ROM qui est projeté aux élèves.
Chaque CD-ROM est identifié par un numéro (NumCD) et est caractérisé par un éditeur (EditCD). Chaque CD-ROM
est composé de 6 séries de questions, numérotées de 1 à 6 qui représente l’identification de la série (NumS) et est
caractérisée par un thème (ThemS). Chaque série est composée de 40 questions. Chaque question est identifiée par un
code (CodeQ) et est caractérisée par un intitulé (IntS), une réponse (RepS) et un niveau de difficulté (NivDiff). Une
même question ne peut apparaitre dans plusieurs séries. Une même série peut être projetée plusieurs fois à des séances
différentes, mais ne peut être projetée qu’une seule fois dans la même séance. Lorsqu’un élève participe à une séance,
il obtient le nombre de fautes (NbrFautS) qu’il a fait pour la série passée pendant la séance. Après un certain nombre
de séances, le directeur de l’auto-école autorise l’élève à passer l’examen théorique du code de la route à une date
donnée (un seul examen pour une date donnée). Un examen du code de la route est identifié par son code (CodEx) et
est caractérisé par une date (DatEx) et un lieu (LieuEx). Pendant le passage de l’examen, l’élève obtient un certain
nombre de fautes (NbrFautEX). Un élève peut passer plusieurs fois un examen de code tant qu’il n’a pas obtenu un
nombre de fautes minimal.
Question :
1. Construire l’ensemble des dépendances fonctionnelles de cette étude de cas.
2. En déduire le schéma relationnel en 3FN en appliquent l’algorithme de synthèse pas à pas.

Exercice 27
Soit la relation R (A, B, C, D,E ,G, H) et l’ensemble des DFs : F = {AB→C, B→D, CD→E, CE→GH, G→A}.
1. Représenter les DF par un diagramme.
2. Calculer AB+.
3. A-t-on : AB → E ? BG → C ? AB → G ? Justifiez vos réponses.
4. Quelles sont les clés candidates de F ?

Exercice 28
Soit le schéma relationnel suivant :
• Film (titre, NomRéalisateur, durée, Nationalité)
• Séance (NomSalle, titre, HeureDeb, Version)
• Joue (NomActeur, titre)
• Produit (NomProducteur, titre )
• Vu ( NomSpectateur, titre )
NomRéalisateur, NomActeur, NomProducteur, NomSpectateur sont du même domaine.
Exprimer les requêtes suivantes dans le langage algébrique :
1. Quels sont les titres des films réalisés par le réalisateur du film de titre : "Les hommes du président"
2. Dans quelle salle peut on voir un film dans lequel jouent "Martin Sheen" et "Tom Cruse".
3. Dans quels films joue "Martin Sheen" et ne joue pas "Tom Cruse".
4. Quels sont les acteurs qui ont joué dans tous les films réalisés par "Steven Spielberg"
5. Quels sont les acteurs qui ont joué dans un film, qu’ils ont réalisé et produit.
6. Quels sont les acteurs qui n’ont joué que dans des films réalisés par "Steven Spielberg"
7. Quels sont les acteurs qui ont vu tous les films dans lesquels ils ont joué.
8. Quels sont les acteurs qui n’ont vu que tous les films dans lesquels ils ont joué.
Exprimer les requêtes suivantes dans le langage SQL :
1. Quels sont les titres des films réalisés par le réalisateur du film de titre "Toy Story"
2. Dans quelle salle peut-on voir un film dans lequel jouent "Robert de niro" et "Clint Eastwood".
3. Dans quels films joue "Robert de Niro" et ne joue pas "Clint Eastwood".
4. Quels sont les acteurs qui ont joué dans tous les films réalisés par "Steven Spielberg"
5. Quels sont les acteurs qui ont joué dans un film, qu’ils ont réalisé et produit.

15

Vous aimerez peut-être aussi