Title: Alg
1Algèbre relationnelle
2La partie structurelle le modèle relationnel
- Produit cartésien de 2 ensembles
- Relation
- Sous-ensemble du produit cartésien dune 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
3La 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
dopé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)
4Opérations ensemblistes
- Union
- Les relations doivent avoir le même schéma
Professeur ? Maître de conférence
5Opérations ensemblistes
- Intersection
- Les relations doivent avoir le même schéma
- Exemple lintersection 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
(!)
6Opérations ensemblistes
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 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
7Opé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 ?
Relation résultat
R SELECTION(COUREUR, CodePays
SUI) NOTATION ?CodePays SUI(COUREUR)
8Opé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
9Opérations spécifiques
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
10Opérations spécifiques
- Jointure (suite)
- Notation Coureur ?? Pays
- ?-jointure jointure sous condition autre que
légalité
11Opé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 (?)
Participer
Epreuve
Relation résultat de Particier ? Epreuve
Quels sont les athlètes qui ont participé à
toutes les épreuves ?
12Union
Intersection
Différence
x y
a a b b c c
x y
x y
Sélection
Projection
Produit cartésien
13Remarques 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 (mn 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.
14- 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 (Nfno, Nom, Adresse, Ville)
- Produit (Nprod, Designation, Prix, Poids,
Couleur) - Commande (Ncomm, Nfno, Nprod, , 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 ?
15- R1 JOINTURE(Commande, Produit, Produit.Nprod
Commande.Nprod) - R2 SELECTION(R1, Quantité gt 10)
- R3 PROJECTION(R2, Nprod, Prix, Quantité)
- R1 jointure sur la table Commande et la table
Produit 400400 160 000 char
16- R1 PROJECTION(SELECTION(Commande,
Quantitégt10), Nprod, Quantité) - R2 JOINTURE(R1, PROJECTION(Produit, Nprod,
Prix), R1.Nprod PROJ.Nprod) - R3 PROJECTION(R2, Nprod, Prix, Quantité)
- R2 jointure sur le couple (Nprod, Prix) de la
table Produit 8210 160 char et sur le
couple (Nprod, Quantité) de la table Commande
2210 40 char - Total 40160 6400 char
- Gain de 75 (facteur 25) en taille mémoire
17Clés dune relation
- Clé primaire
- Colonne(s) dont les valeurs permettent de repérer
une seule ligne. - Exemple dans la table COUREUR, cest la colonne
Numéro_Coureur qui est la clé. - Clé étrangère
- Colonne constituée de la clé primaire dune autre
table - Traduit lexistence dun lien entre 2 tables
18Exercices
- 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 (!)
-
19- Req2 Tous les crus rouges
- La liste des noms de crus rouges
PROJECTION(SELECTION(CRU, couleurrouge), NomCru)
20Contraintes 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,...)