230 likes | 432 Views
Algèbre relationnelle. 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
E N D
Algèbre relationnelle Maria Berger - Maîtrise d'AES 2001-2002
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 Maria Berger - Maîtrise d'AES 2001-2002
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-2002
Opérations ensemblistes • Union • Les relations doivent avoir le même schéma Professeur Maître de conférence Maria Berger - Maîtrise d'AES 2001-2002
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-2002
Opérations ensemblistes • Produit cartésien Maria Berger - Maîtrise d'AES 2001-2002
Opérations spécifiques • Sélection (ou restriction) : relation composée de n-uplets vérifiant une condition Quels sont les coureurs suisses ? Relation résultat R = SELECTION(COUREUR, CodePays = ‘‘SUI’’) NOTATION :CodePays = ‘‘SUI’’(COUREUR) Maria Berger - Maîtrise d'AES 2001-2002
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) Relation résultat Maria Berger - Maîtrise d'AES 2001-2002
Opérations spécifiques • Jointure : Relation résultat Maria Berger - Maîtrise d'AES 2001-2002
Opérations spécifiques • Jointure (suite) • Notation : Coureur Pays • -jointure : jointure sous condition autre que l’égalité Maria Berger - Maîtrise d'AES 2001-2002
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 (…?) 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-2002
a b c x y Union Intersection Différence x y a a b b c c x y x y Sélection Projection Produit cartésien Maria Berger - Maîtrise d'AES 2001-2002
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-2002
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-2002
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-2002
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-2002
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-2002
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-2002
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-2002
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,...) Maria Berger - Maîtrise d'AES 2001-2002