1. Le modèle relationnel
8Les structures de données
8Les règles d’intégrité structurelle
8L’algèbre relationnelle
2. Le modèle relationnel
Inventé par E. F. Codd en 1970
Fondé sur la théorie mathématique des
ensembles et sur la notion de base qui lui
est rattachée : la relation.
2
3. Objectifs d’un modèle relationnel:
Rappel
Proposer une indépendance des données et
des traitements.
Permettre de gérer les problèmes de
cohérence et de redondance des données.
Utiliser des structures de données simples
et issues de la vie courante (tables).
Proposer des langages de manipulation de
données non procéduraux
Permettre des vues utilisateurs différentes
des relations implantées 3
4. Le modèle relationnel :
Les 10 concepts clés (1/2)
La définition du domaine d’un attribut
Le concept de relation
Les attributs
Les tuples
Le schéma d’une relation
4
5. Le modèle relationnel :
Les 10 concepts clés (2/2)
La clé
La contrainte référentielle
Les valeurs nulles
La contrainte d’entité
La contrainte de domaine
5
6. Les structures de données :
Domaine d’un attribut
Définition : ensemble des valeurs prises
par un attribut
Un domaine se définit soit :
• en extension
8ex. : couleur_yeux = {bleu, vert, marron, noir}
• en compréhension
8ex. : âge_enfants = {0, 15}
6
7. Définition du produit cartésien:
Rappel
Soient deux ensembles O et P, on appelle
Produit cartésien de O et P, l'ensemble
noté O×P , des couples (x,y) où x∈O et
y∈P.
Étudiants={ A , T , M }
Professeurs = { L , Y }
Étudiants ×Professeurs={ (A,L) , (A,Y) , (T,L) , (T,Y) ,
(M,L) , (M,Y) }
7
8. Les structures de données :
la relation
Définition : Sous-ensemble du produit cartésien d’un ensemble
Nom de la relation
d’attributs
Attributs , champs
PRODUIT
N u m _ p ro d N o m _ p ro d Q té _ sto c k
Occurrences , 24 C h a ise 63
Tuples, 141 T a b le 27
Enregistrements 67 L it 12
Caractérisée par :
♦ Cardinalité de la relation (nombre de lignes)
♦ Unicité du nom des attributs
♦ Indifférence de l’ordre des lignes et des colonnes
♦ Nombre de colonnes = degré
8
9. Les structures de données :
Schéma de relations
4 Le schéma de relation représente la structure invariante
d’une relation.
4Il est constitué du nom de la relation suivi de la liste des
attributs et de leurs domaines associés
PRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0)
Nom Attributs (clé)
Attributs non clé
relation (souligné)
9
11. Règles d’intégrité structurelle du
modèle relationnel
Unicité de clé
Contrainte de référence
Contrainte d’entité
Contrainte de domaine
11
12. Clé d’une relation
Une relation étant un ensemble de tuples, il
ne peut y avoir deux tuples identiques dans
une relation.
Clé : ensemble minimal d’attributs dont la
connaissance des valeurs permet d’identifier
un tuple unique
12
13. Contrainte référentielle(1/2)
Contrainte d’intégrité portant sur une relation R1,
consistant à imposer que la valeur d’un groupe
d’attributs apparaisse comme valeur de clé dans
une autre relation R2.
8Elles définissent des liens obligatoires
entre relations.
8Garantissent le succès des opérations de
mise à jour.
13
14. Contrainte référentielle(2/2)
Les contraintes de référence sont liées à la notion de clés
étrangères :
8Lors de l’insertion d’un tuple dans une relation
soumise à une contrainte référentielle (« relations
référençantes ») , il faut vérifier que les valeurs de
clés étrangères existent dans les relations référencées.
8Lors de la suppression d’un tuple dans une relation
référencée, il faut vérifier qu’aucun tuple de la
relation référençante ne fasse référence au tuple que
l’on souhaite supprimer.
– soit le SGBD refuse la suppression
– soit il la répercute en cascade. 14
15. Contrainte d’entité
Lorsque la valeur d’un attribut est inconnue,
on utilise une valeur conventionnelle appelée
valeur nulle
La contrainte d’entité impose que toute
relation possède une clé primaire et que tout
attribut participant à cette clé primaire soit
non null.
15
17. Algèbre relationnelle :
Définition
Collection d’opérations formelles qui
agissent sur des relations et produisent une
relation en résultat.
Dans la plupart des systèmes relationnels,
la réponse à une requête s’obtient par
l’utilisation d’un ou plusieurs opérateurs
relationnels.
17
19. Algèbre relationnelle :
Sélection (ou restriction) (1/3)
Elimination des occurrences de la relation qui ne satisfont
pas à une condition donnée.
Ex. : Considérons la relation Commande
N° COMMANDE DATE MONTANT
28 Octobre 1986
29 Octobre 2024
30 Novembre 1610
52 Décembre 512
La sélection permet de répondre à la question : Donnez les
commandes passées après le mois d’octobre
N° COMMANDE DATE MONTANT
30 Novembre 1610
52 Décembre 512
La condition peut contenir plusieurs critères
19
20. Algèbre relationnelle :
Sélection (ou restriction) (2/3)
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.
Notation : σcondition (R1)
R2=selection (R1,condition)
20
21. Algèbre relationnelle :
Sélection (ou restriction) (3/3)
Opérateurs de comparaison
=, ≠, <, >, ≤, ≥, BETWEEN, IN, LIKE
Combinaison de plusieurs conditions
reliées par des opérateurs logiques :
AND, OR, NOT
Valeurs NULL
21
22. Algèbre relationnelle :
Projection (1/2)
Consiste à supprimer des attributs d’une relation
Soit la relation ETUDIANT :
Num_étu Nom_étu Nom_départ Adr_départ
521 Nom1 Informatique Fes
632 Nom2 Mathématique Meknes
569 Nom3 Informatique Rabat
451 Nom1 Informatique Rabat
La projection sur nom_étu, La projection sur nom_départ,
nom_départ donne : adr_départ donne :
Nom_étu Nom_départ
Nom_départ Adr_départ
Nom1 Informatique
Nom2 Mathématique Informatique Fes
Nom3 Informatique Mathématique Meknes
Informatique Rabat
22
23. Algèbre relationnelle :
Projection (2/2)
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.
Notation: π A1, A2, …, An (R1)
R2=projection(R1;A1,A2,…,An)
23
24. Algèbre relationnelle :
Complément (1/2)
Consiste à construire la relation qui contient toutes les occurrences
qui n’existent pas (c’est la relation qui exprime le FAUX)
Soit la Professeur Elève
Le complément de R sera :
relation R : Prof1 Nom2
Prof1 Nom1
Professeur Elève
Prof2 Nom2
Prof2 Nom1 Prof1 Nom4
Prof3 Nom2
Prof2 Nom4
Prof3 Nom1
Prof3 Nom4
24
25. Algèbre relationnelle :
Complément (2/2)
Ensemble des tuples du produit cartésien
des domaines des attributs d’une relation
n’appartenant pas à cette relation
Notation: Not (R1)
R2=Comp (R1)
25
26. Algèbre relationnelle :
Union (1/2)
Permet de fusionner deux relations en une seule.
Cette opération n’est possible que sur des relations ayant les
mêmes attributs.
Soit la relation OUVRIER Soit la relation CADRE
Num_empl Nom_empl Num_empl Nom_empl
15 Nom1 3 Nom5
17 Nom3 21 Nom6
56 Nom2
L’union permet de construire la relation EMPLOYE
Num_empl Nom_empl
3 Nom5
21 Nom6
15 Nom1
17 Nom3
56 Nom2 26
27. Algèbre relationnelle :
Union (2/2)
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 (inclusif) R2.
Notation: R1∪R2
R3=Union (R1,R2)
27
28. Algèbre relationnelle :
Intersection (1/2)
Permet de fournir des occurrences présentes dans l’une et l’autre
des relations. Cette opération n’est possible que sur des relations
ayant les mêmes attributs.
Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE
Num_empl Nom_empl
Num_empl Nom_empl
3 Nom5
Nom6 3 Nom5
21
Nom1 15 Nom1
15
Nom2 28 Nom4
56
L’intersection permet de construire la relation suivante
Num_empl Nom_empl
3 Nom5
15 Nom1
28
29. Algèbre relationnelle :
Intersection (2/2)
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.
Notation: R1 ∩ R2
R3=Intersection (R1,R2)
29
30. Algèbre relationnelle :
Différence (1/2)
Permet d’obtenir les occurrences de la relation 1 qui n’appartiennent
pas à la relation 2. Les deux relations doivent avoir les mêmes
attributs. Cette opération n’est pas commutative.
Soit la relation INSCRITS Soit la relation RECUS
Nom_étu Nom_UV
Nom_étu Nom_UV
Nom2 Maths
Maths Nom2 Maths
Nom5
Physique Nom5 Maths
Nom2
Chimie Nom2 Chimie
Nom2
Nom5 Chimie
La différence permet de construire la relation suivante
Nom_étu Nom_UV
Nom2 Physique
Nom5 Chimie 30
31. Algèbre relationnelle :
Différence (2/2)
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.
Notation : R1 – R2
R3=Difference(R1,R2)
31
32. Algèbre relationnelle :
Produit cartésien (1/2)
Le produit cartésien se construit en combinant toutes les possibilités.
Soit la relation LIVRE Soit la relation EDITION
Titre Auteur Couleur Edition
X Nom2 Rouge Luxe
Y Nom1 Blanc Broché
Vert Cartonné
Le produit cartésien permet de construire la relation suivante
Titre Auteur Couleur Edition
X Nom2 Rouge Luxe
X Nom2 Blanc Broché
X Nom2 Vert Cartonné
Y Nom1 Rouge Luxe
Y Nom1 Blanc Broché
Y Nom1 Vert Cartonné
32
33. Algèbre relationnelle :
Produit cartésien (2/2)
Opération portant sur deux relation 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
Notation: R1 × R2
R3=Produit (R1,R2)
33
34. Algèbre relationnelle :
Thêta-produit (thêta-jointure) (1/4)
Le thêta-produit consiste en un produit cartésien doublé d’une sélection.
On ne retient que les occurrences qui vérifient une condition logique.
Thêta prend les valeurs : <, <=, >, >=, != ou <>
Soit la relation EMPLOYE Soit la relation CHEF
Nom_emp Salaire_emp Nom_chef Salaire_chef
E1 20000 Nom2 25000
E2 10000 Nom1 12000
E3 6000
Le thêta-produit permet de répondre à la question : Donnez le nom
des employés qui gagnent plus qu’un chef de service
On effectue d’abord un produit cartésien puis une sélection dont
la condition est salaire_emp > salaire_chef
34
36. Algèbre relationnelle :
Thêta-produit (thêta-jointure) (3/4)
Opérande consistant à rapprocher selon une
condition les tuples de deux relations R1 et
R2 afin de former une relation R3 qui
contient l’ensemble de tous les tuples
obtenus en concaténant un tuple de R1 et
un de R2 vérifiant la condition de
rapprochement.
36
38. Algèbre relationnelle :
Jointure naturelle (équijointure) (1/4)
La jointure naturelle permet de réaliser une liaison logique entre
deux tables. La condition de sélection est l’égalité entre les deux
clés des deux relations.
C’est un thêta-produit qui prend la valeur " = " entre des attributs
identiques.
Soit la relation EMPLOYE Soit la relation SERVICE
Num_emp Nom_emp Num_service
Num_service Nom_service
02 Nom2 S1 S1 Informatique
10 Nom1 S8 S6 Mathématiques
72 Nom2 S6 S8 Sociologie
62 Nom4 S1 S4 Anglais
38
39. Algèbre relationnelle :
Jointure naturelle (équijointure) (2/4)
La jointure naturelle permet de répondre à la question : Donnez le
nom des employés et le nom de leur service.
Num_emp Nom_emp Num_service Nom_service
02 Nom2 S1 Informatique
10 Nom1 S8 Sociologie
72 Nom2 S6 Mathématiques
62 Nom4 S1 Informatique
Rq : Le service S4 Anglais qui n’a pas « d’associé », n’est pas
présent dans la jointure.
La jointure naturelle est l’une des opérations fondamentales de
l’algèbre relationnelle.
39
40. Algèbre relationnelle :
Jointure naturelle (équijointure) (3/4)
Opérande consistant à rapprocher les tuples
de deux relations R1 et R2 afin de former
une troisième relation R3 dont les attributs
sont l’union des attributs de R1 et R2, et
dont les tuples sont obtenus en composant
un tuple de R1 et un tuple de R2 ayant
mêmes valeurs pour les attributs de même
nom.
40
42. Algèbre relationnelle :
Jointure externe (1/3)
Il s’agit d’une jointure naturelle qui permet de faire figurer les
occurrences qui n’ont pas « d’associé » dans l’autre relation. On
leur associe alors la valeur nulle (symbole ).
Soit la relation EMPLOYE Soit la relation SERVICE
Num_emp Nom_emp Num_service
Num_service Num_bâtiment
02 emp1 S1 S1 B8
10 emp2 S8 S6 B9
72 emp1 S6 S8 B3
62 emp3 S1 S4 B3
25 emp4 S5 S2 B1
42
44. Algèbre relationnelle :
Jointure externe (3/3)
R3 contient les tuples issus de la jointure
de R1 et R2 ainsi que ceux de R1 et R2 ne
participant pas à la jointure, avec des
valeurs nulles pour les attributs non
renseignés.
44
45. Algèbre relationnelle :
Jointure externe gauche (1/3)
Permet de faire apparaître en totalité les occurrences d’une des
deux relations.
On définira une semi-jointure gauche ou une semi-jointure droite.
Exemple de semi-jointure droite :
Soit la relation EMPLOYE Soit la relation SERVICE
Num_emp Nom_emp Num_service
Num_service Num_bâtiment
02 emp1 S1 S1 B8
10 emp2 S8 S6 B9
72 emp1 S6 S8 B3
62 emp3 S1 S4 B3
25 emp4 S5 S2 B1
45
46. Algèbre relationnelle :
Jointure externe gauche (2/3)
Le résultat de la semi-jointure gauche donne le résultat suivant :
Num_emp Nom_emp Num_service Num_bâtiment
02 emp1 S1 B8
10 emp2 S8 B3
72 emp1 S6 B9
62 emp3 S1 B8
25 emp4 S5 _
46
47. Algèbre relationnelle :
Jointure externe gauche (3/3)
Opération portant sur R1 et R2 donnant en
résultat les tuples de R1 qui participent à la
jointure des deux relations
47
48. Algèbre relationnelle :
Auto-jointure (1/2)
C’est une jointure naturelle dans laquelle
les deux relations initiales sont R1 et R1.
Soit la relation Enseignant
Num_ens Nom_ens Grade Salaire
12 emp1 Assistant 9 500
56 emp2 MDC 10 500
27 emp1 Assistant 11 500
43 emp3 MDC 12 000
51 emp4 MDC 12 500
48
49. Algèbre relationnelle :
Auto-jointure (2/2)
L’auto-jointure permet de répondre à la
question suivante : « Donnez le nom des
assistants qui gagnent plus qu’un MDC ? »
Relation résultat
Nom_ens
emp1
49
50. Algèbre relationnelle :
Division (1/3)
Permet d’obtenir les occurrences de R1 qui sont
associées à toutes les occurrences de R2. Une relation
est donc divisée par une autre relation contenant
exclusivement des attributs de la première relation
Soit la relation suivante Soit la relation suivante
Nom_étu Nom_prof Nom_étu
Etu1 Prof3
Etu1
Etu2 Prof1
Etu2
Etu3 Prof3
Etu4 Prof4
Etu1 Prof1
Etu2 Prof3
Etu3 Prof4
50
51. Algèbre relationnelle :
Division (2/3)
La division permet de répondre à la question suivante :
Donnez le nom des profs qui enseignent conjointement aux
élèves figurant dans la seconde relation.
La relation résultat est : Nom_prof
Prof3
Prof1
51
53. Fonctions de calcul (1/2)
Expression arithmétique construite à partir
d’attributs d’une relation, de constantes,
d’opérateurs arithmétiques et de fonctions
8Opérateurs arithmétiques
+ - / *
8Fonctions
» somme
» moyenne
» maximum, minimum
» compte
53
54. Fonctions de calcul (2/2)
Ces fonctions sont liées à une opération
• Par exemple, avec une projection on a :
π A1, A2*A4-10 (R1)
54
55. Les agrégats (1/2)
Partitionnement horizontal d’une relation
en fonction des valeurs d’un groupe
d’attributs, suivi d’un regroupement des
valeurs de chaque groupe par application
d’une fonction de calcul.
55
56. Les agrégats (2/2)
Notation :
Agrégat (R1 ; attribut de regroupement ; attribut de calcul)
• Cumul
R = cumul(relation, attribut de regroupement, attribut de calcul)
Ou
R=regrouper_calculer (relation,attribut de regroupement,
cumul(attribut de calcul))
• Compte
R = compte(relation, attribut de regroupement)
56