Maria Berger - Maîtrise d'AES 2001-2002
1
Algèbre relationnelle
Maria Berger - Maîtrise d'AES 2001-20022
La partie structurelle : le modèle relationnel Produit cartésien de 2 ensembles :
Relation :– Sous-ensemble du produit cartésien d’une liste de
domaines– Une relation est caractérisée par un nom– Représentation commode : table à 2 dimensions– Exemple : la relation Coureur est un sous-ensemble
du produit cartésien :numéro X nom X CodeEquipe X CodePays
E E x x x E x E1 2 1 2 1 1 2 2 ( , ) / ,
Maria Berger - Maîtrise d'AES 2001-20023
La partie opérationnelle : l'algèbre relationnelle
Une algèbre est un ensemble avec des opérations fermées sur cet ensemble.– Une algèbre relationnelle est un ensemble
d’opérations agissant sur des relations et produisant des relations
4 opérations ensemblistes (union, intersection, différence, produit cartésien)
3 opérations spécifiques des BD relationnelles (sélection, projection, jointure)
Maria Berger - Maîtrise d'AES 2001-20024
Opérations ensemblistes Union
– Les relations doivent avoir le même schéma
PROFESSEUR MAITRE DE CONFERENCE
N°Ens Nom Prénom Matière N°Ens Nom Prénom Matière12 CHARPIN Françoise Economie 5 BEL Liliane Mathématiques15 THERY Philippe Droit 8 TOPOR Lucienne Droit16 VOGEL Louis Droit 58 SKALLI Ali Economie17 BALLE Francis Politique 67 BERGER Maria Informatique
N°Ens Nom Prénom Matière12 CHARPIN Françoise Economie15 THERY Philippe Droit16 VOGEL Louis Droit17 BALLE Francis Politique
5 BEL Liliane Mathématiques8 TOPOR Lucienne Droit
58 SKALLI Ali Economie67 BERGER Maria Informatique
Professeur Maître de conférence
Maria Berger - Maîtrise d'AES 2001-20025
Opérations ensemblistes
Intersection– Les relations doivent avoir le même schéma– Exemple : l’intersection de Professeur et Maître de
conférence est une relation nulle (!)
Différence– Les relations doivent avoir le même schéma– Exemple : la différence Professeur - Maître de
conférence est la relation Professeur elle-même (!)
Maria Berger - Maîtrise d'AES 2001-20026
Opérations ensemblistes
Produit cartésien
Numéro coureur
Nom Coureur Code
équipe
Code
pays
8 ULLRICH Jan TEL ALL
31 JALABERT Laurent ONC FRA
61 ROMINGER Tony COF SUI
91 BOARDMAN Chris GAN G-B
Code
pays
Nom Pays
ALL Allemagne
FRA France
SUI Suisse
G-B Grande -Bretagne
Numéro coureur
Nom Coureur Code
équipe
Code
pays
Code
pays
Nom Pays
8 ULLRICH Jan TEL ALL ALL Allemagne
8 ULLRICH Jan TEL ALL FRA France
8 ULLRICH Jan TEL ALL SUI Suisse
8 ULLRICH Jan TEL ALL G-B Grande -Bretagne
31 JALABERT Laurent ONC FRA ALL Allemagne…
Maria Berger - Maîtrise d'AES 2001-20027
Opérations spécifiques
Sélection (ou restriction) : relation composée de n-uplets vérifiant une condition
Numéro coureur
Nom Coureur Code
équipe
Code
pays
8 ULLRICH Jan TEL ALL
31 JALABERT Laurent ONC FRA
61 ROMINGER Tony COF SUI
91 BOARDMAN Chris GAN G-B
114 CIPOLLINI Mario SAE ITA
Quels sont les coureurs suisses ?
R = SELECTION(COUREUR, CodePays = ‘‘SUI’’)
NOTATION : CodePays = ‘‘SUI’’(COUREUR)
Relation résultat
Maria Berger - Maîtrise d'AES 2001-20028
Opérations spécifiques
Projection : relation restreinte aux attributs spécifiés dans la projection– Exemple : Nom et nationalité des coureurs ?
R = PROJECTION(COUREUR, NomCoureur, Nationalité)
NOTATION : {NomCoureur,Nationalité}(COUREURS)Nom Coureur Code
pays
ULLRICH Jan ALL
JALABERT Laurent FRA
ROMINGER Tony SUI
BOARDMAN Chris G-B
CIPOLLINI Mario ITA
Relation résultat
Maria Berger - Maîtrise d'AES 2001-20029
Opérations spécifiques
Jointure : Code
pays
Nom Pays
ALL Allemagne
FRA France
SUI Suisse
G-B Grande -Bretagne
Numéro coureur
Nom Coureur Code
équipe
Code
pays
8 ULLRICH Jan TEL ALL
31 JALABERT Laurent ONC FRA
61 ROMINGER Tony COF SUI
91 BOARDMAN Chris GAN G-B
Numéro coureur
Nom Coureur Code
équipe
Code
pays
Nom Pays
8 ULLRICH Jan TEL ALL Allemagne
31 JALABERT Laurent ONC FRA France
61 ROMINGER Tony COF SUI Suisse
91 BOARDMAN Chris GAN G-B Grande -Bretagne
Relation résultat
Maria Berger - Maîtrise d'AES 2001-200210
Opérations spécifiques
Jointure (suite)– Notation : Coureur Pays
-jointure : jointure sous condition autre que
l’égalité
Maria Berger - Maîtrise d'AES 2001-200211
Opérations spécifiques
Division : relation composée des n-uplets tels que le produit cartésien avec le diviseur soit un sous-ensemble de la relation dividende (…?)
Athlète Epreuve Epreuve AthlèteDupont 200 m 200 m DupontDurand 400 m 400 mDupont 400 m 110 m HMartin 110 m H Dupont 110 m H Martin 200 m
Participer Epreuve
Relation résultat de Particier Epreuve
Quels sont les athlètes qui ont participé à toutes les épreuves ?
Maria Berger - Maîtrise d'AES 2001-200212
a
b
c
x
y
a
a
b
b
c
c
x
y
x
y
x
y
Produit cartésien
Sélection Projection
Union Intersection Différence
Maria Berger - Maîtrise d'AES 2001-200213
Remarques sur l'algèbre relationnelle
L'algèbre relationnelle permet l‘étude des opérateurs entre eux (commutativité, associativité, groupe d'opérateurs minimaux,...)
– équivalence de certaines expressions– programmes d'optimisation qui transforment toute requête en
sa forme équivalente la plus efficace
L'opération de jointure est très coûteuse : proportionnelle au nombre de n-uplets (m*n pour deux relations jointes)
– toujours préférable de faire les restrictions le plus tôt possible afin de manipuler des tables les plus réduites possibles.
Maria Berger - Maîtrise d'AES 2001-200214
Pourquoi une requête est-elle meilleure qu'une autre ?
– Une requête n'est pas l'unique solution d'un problème. efficacités différentes
– Exemple :
Fournisseur (N°fno, Nom, Adresse, Ville)
Produit (N°prod, Designation, Prix, Poids, Couleur)
Commande (N°comm, N°fno, N°prod, , Quantité)
Produit = 8 lignes * 5 colonnes * 10 char = 400 char
Commande = 10 lignes * 4 colonnes * 10 char = 400 char
Références, prix et quantités des produits commandés en plus de 10 exemplaires par commande ?
Maria Berger - Maîtrise d'AES 2001-200215
– R1= JOINTURE(Commande, Produit, Produit.N°prod = Commande.N°prod)
– R2 = SELECTION(R1, Quantité > 10)
– R3 = PROJECTION(R2, N°prod, Prix, Quantité)
R1 = jointure sur la table Commande et la table Produit
= 400*400 = 160 000 char
Maria Berger - Maîtrise d'AES 2001-200216
– R1 = PROJECTION(SELECTION(Commande, Quantité>10), N°prod, Quantité)
– R2 = JOINTURE(R1, PROJECTION(Produit, N°prod, Prix), R1.N°prod = PROJ.N°prod)
– R3 = PROJECTION(R2, N°prod, Prix, Quantité)
R2 = jointure sur le couple (N°prod, Prix) de la table Produit = 8*2*10 = 160 char et sur le couple (N°prod, Quantité) de la table Commande = 2*2*10 = 40 char
– Total = 40*160 = 6400 char Gain de 75% (facteur 25) en taille mémoire
Maria Berger - Maîtrise d'AES 2001-200217
Clés d’une relation
Clé primaire– Colonne(s) dont les valeurs permettent de repérer
une seule ligne.– Exemple : dans la table COUREUR, c’est la colonne
Numéro_Coureur qui est la clé.
Clé étrangère– Colonne constituée de la clé primaire d’une autre
table– Traduit l’existence d’un lien entre 2 tables
Maria Berger - Maîtrise d'AES 2001-200218
Exercices
CRU(NomCru,Commune,Région,Couleur) VINS(Région,Couleur,Millésime,Qualité) CEPAGE-REGION(Cépage,Couleur)
Req1 : Tous les crus ?
Réponse : CRU (!)
Maria Berger - Maîtrise d'AES 2001-200219
Req2 : Tous les crus rouges La liste des noms de crus rouges”
PROJECTION(SELECTION(CRU, couleur=rouge), NomCru)
Maria Berger - Maîtrise d'AES 2001-200220
Contraintes d'intégrité
Un des outils les plus importants d'un SGBD Contraintes de clé :
– Vérification de l'unicité des clés Contraintes de types de données :
– Vérification des types de données saisies (entiers, réels, dates, chaînes de caractères, booléens...)
– Vérification des domaines de validité (entier compris entre 0 et 20 pour une note d‘étudiant,...)
Contraintes d'intégrité référentielles :– Vérification à partir des clés étrangères (la clé primaire
associée n'existe pas, note d'un étudiant qui n'existe pas, conséquences d'une suppression d'une fiche,...)