Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Les Systèmes de Gestion de Bases de Données (SGBD) Algèbre relationnelle.
Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Informatique appliquée à la gestion Bases de données www. labri
Programme Introduction aux BD et aux SGBD Le modèle relationnel
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Les numéros 70 –
Le modèle logique des données relationnel MLD
Le Modèle Relationnel (Chapitre 4)
Fonctionnalités des SGBD
Algèbre relationnelle
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.

Optimisation de Requêtes
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Optimisation de Requêtes
Révision (p. 130, texte) Nombres (1-100).
Bases de Données Plan du cours : Année : 2009/10 A - Généralités :
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Initiation au système d’information et aux bases de données
Contrôles d'accès aux données
Eléments d ’algèbre relationnelle
LE LANGAGE SQL Langage de manipulation de données (LMD)
Algèbre relationnelle
B.Shishedjiev - Modèle relationnel
Modélisation E/R des Données
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Les nombres.
Le modèle relationnel.
3 Introduction au modèle relationnel 3.1 Concepts de base
Les chiffres & les nombres
MODELE RELATIONNEL concept mathématique de relation
Staf 2x Cours de bases de données
Algèbre Relationnelle
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Cours de Management des Systèmes d’Information
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Aire d’une figure par encadrement
Mardi 28 janvier Français I
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Plan UE Introduction aux Bases de Données
Bases de données.
70 : 72 : soixante -dix : soixante -douze: Le nombre du jour :73
ETAPE04 « Des besoins d’information… » « Des besoins d’information » En définissant son schéma relationnel, le Moulin des Costières définit une organisation.
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
DOSSIER G10 – La base de données Relationnelle
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Langage Relationnel Graphe de Requêtes
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle
Bases de données – Cours 2
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
62 Modèle relationnel et algèbre relationnelle INT Management.
Transcription de la présentation:

Modèle relationnel et algèbre relationnelle INT Management

Plan du document Modèle relationnel slide 64 Opérateurs de l’algèbre slide 78 Exemples de requêtes slide 94 Optimisation slide 99

Les concepts descriptifs Modèle relationnel Notion de domaine Produit cartésien Relation Attribut Clé Schéma de relation et de BD Clé étrangère Métabase

Notion de domaine Définition Exemples Ensemble de valeurs Modèle relationnel Définition Ensemble de valeurs Exemples Entier, réel, chaîne de caractères, booléen Salaire = 1000…100000 (€) Couleur = {‘rosé’, ‘blanc’, ‘rouge’}

Produit cartésien Définition Notation Exemple : Modèle relationnel Définition Le produit cartésien de D1, ...., Dn est l'ensemble des n-uplets (tuples) <V1, ...., Vn> tel que Vi  Di Notation D1 X ....X Dn Exemple : D1 = {‘BD’, ‘IO’} (Code UV) D2 = {‘Carpentier’, ‘Lalevée’, ‘Millot } (Prof) D1 X D2 D1 D2 BD Carpentier Lalevée Millot IO

Relation Définition Exemple Modèle relationnel Définition Sous-ensemble du produit cartésien d'une liste de domaines Caractérisée par un nom Exemple D1 = Code UV D2 = Prof UV D1 D2 BD Carpentier IO Lalevée

Relation (2) Modèle relationnel Plus simplement, une relation est un tableau à deux dimensions Une ligne est un n-uplet (tuple) On associe un nom à chaque colonne afin de la repérer indépendamment de l'ordre = attribut Prend ses valeurs dans un domaine Exemple : code UV code coord BD Carpentier IO Lalevée

Exemples de relations Modèle relationnel Elève Num Nom Adresse Age 1 Bélaïd Maisel 20 2 Millot CROUS 3 Meunier 21 Inscrit NumElève CodeUV Note 2 BD 10 1 20 IO 17 3 18

Clé Définition Exemple Contrainte d'intégrité Modèle relationnel Définition Une clé est un groupe d'attributs minimum qui détermine un n-uplet unique dans une relation (à tout instant) Exemple Clé de Elève ? Clé de UV ? Clé de Inscrit ? Contrainte d'intégrité Toute relation doit posséder une clé renseignée (sans valeur inconnue)

Schéma de relation Définition Exemple Intention vs. Extension Modèle relationnel Définition Le schéma d'une relation décrit : Son nom La liste des attributs qu'elle comporte et des domaines associés La liste des attributs composant la clé (la clé est soulignée) Exemple Elève(num : entier, nom : chaîne, adresse : chaîne, age : entier de 18 à 35) Intention vs. Extension Schéma de relation : intention de la relation Table : extension Schéma d'une BD relationnelle : ensemble des schémas des relations

Clé étrangère Définition Rôle Modèle relationnel Définition Une clé étrangère est un groupe d'attributs qui apparaît comme clé dans une autre relation R1(A1, A2, .... , Ap, Ap+1, ...., An) R2(B1, B2, ......, Bn) Rôle Les clés étrangères définissent des contraintes d'intégrités référentielles entre relations

Clé étrangère (2) Mises à jour et clés étrangères Modèle relationnel Mises à jour et clés étrangères Insertion: la valeur des attributs doit exister dans la relation référencée. Insertion de (4, ‘BD’, 15) dans Inscrit ? Suppression dans la relation référencée; les n-uplets référençant doivent disparaître. Suppression de l’élève 2 dans Elève ? Les clés étrangères sont la traduction des associations du modèle E/A

Clé étrangère Exemples Élève(num, nom, adresse, age) Modèle relationnel Exemples Élève(num, nom, adresse, age) UV(code, nbh, coord) Inscrit(numElève, codeUV, note) Livre(côte, titre,numElève, datePrêt) Chambre(no, prix, numElève)

Métabase Définition Principe Modèle relationnel Définition base de données contenant l'ensemble des schémas et des règles de correspondances associées à une base de données Principe Une base décrivant les autres bases, c'est-à-dire: les relations les attributs les domaines les clés ..... Notion de dictionnaire de données Base particulière, système, gérée par l'administrateur de BD

Résumé des notions … Modèle relationnel Schéma Intention Relation1 Attribut1 Attribut2 Attributn Schéma BD NomRel Attribut Relation1 Attribut1 Attribut2 v1 w1 v1 w2 Tuple / n-uplet Table v3 w2 vn … Clé Relation2 Attributa Attributb Clé étrangère w1 w2 BD Métabase xi wn

Langages associés au modèle relationnel Langages de Définition de Données (LDD) : Définition /mise à jour des schémas des relations Langages de manipulation de données (LMD) : Interrogation : recherche de données Mises à jour : insertion, suppression, modification 2 classes de langages : Algébriques  SQL Prédicatifs  QBE Des langages de définition et de manipulation sont associés au modèle relationnel. De façon formelle on trouve deux classes de langages. Les langages algébriques et les langages prédicatifs. Ces langages sont strictement équivalents sur le plan de la puissance d'expression (n'importe quelle requête qui peut s'exprimer dans un de ces langages peut s'exprimer dans l'autre). Sur un plan industriel, les langages algébriques ont dérivé SQL (Structured Query Language, défini par IBM et qui s'impose comme la norme supportée par tout SGBD du commerce) et les langages prédicatifs QBE (Query By Example).

Les opérateurs de manipulation Algèbre relationnelle Tout résultat d'une opération est une relation; peut donc être réutilisée en entrée d'un nouvel opérateur. Les opérateurs peuvent être classifiés en : opérateurs ensemblistes / opérateurs relationnels opérateurs de base / opérateurs dérivés opérateurs unaires / opérateurs binaires Unaires : sélection (restriction), projection, Binaires : union, intersection, différence, produit cartésien, jointure, division

Restriction But Contraintes Notation Algèbre relationnelle But Permet de "sélectionner" des tuples La restriction réduit la taille de la relation verticalement Contraintes Unaire Spécifier une condition Notation Notation textuelle: Tcond(R) Notation graphique: Inscrits en BD : codeUV=‘BD’(Inscrit) Majors (note > 15) de BD : codeUV=‘BD’ et note >15(Inscrit) Resu NumElève CodeUV Note 2 BD 10 1 20 R Resu NumElève CodeUV Note 1 BD 20 Cond. T

Projection But Adresses des élèves : Adresse(Elève) Contraintes Algèbre relationnelle But Permet de "sélectionner" des attributs La projection réduit la taille de la relation horizontalement Contraintes Unaire Spécifier une liste d'attributs Notation Notation textuelle: Tattributs(R) Notation graphique: R T Adresses des élèves : Adresse(Elève) Code et nb heures des UV : code,nbh(UV) Resu Adresse Maisel CROUS Pas de doublon Resu Code nbh IO 45 BD 15 attributs.

Union Nom des profs, des élèves  But Contraintes Notation Algèbre relationnelle Nom des profs, des élèves Nom des personnes à l’INT : ProfEleve2 But Permet de fusionner 2 relations Contraintes Binaire Même schéma Notation Notation textuelle: T  R S Notation graphique: Prof Nom Lalevée Carpentier Millot Elève2 Nom Bélaïd Millot Meunier Resu Nom Lalevée Carpentier Millot Bélaïd Meunier R S  Pas de doublon T

Intersection But Nom des profs, des élèves Contraintes Notation Algèbre relationnelle But Permet d’obtenir l’ensemble des tuples appartenant à deux relations Contraintes Binaire Même schéma Notation Notation textuelle: T R S Notation graphique: Nom des profs, des élèves Noms communs élèves-profs : ProfElève2 Prof Nom Lalevée Carpentier Millot Elève2 Nom Bélaïd Millot Meunier R S Resu Nom Millot  T

Différence - But Nom des profs, des élèves Contraintes Notation Algèbre relationnelle But Obtenir l’ensemble des tuples d’une relation qui ne figurent pas dans une autre Contraintes Binaire Même schéma Non commutatif Notation Notation textuelle: T  R -S Notation graphique: Nom des profs, des élèves Noms des élèves qui ne portent pas le nom d’un prof : Eleve2-Prof Prof Nom Lalevée Carpentier Millot Elève2 Nom Bélaïd Millot Meunier - R S T Résu Nom Bélaïd Meunier

Produit cartésien X But Contraintes Notation Algèbre relationnelle But Ensemble de tous les tuples obtenus par concaténation de chaque tuple de R avec chaque tuple de S Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an), S(b1, b2, ..., bp) T  R X S, T(a1, a2, ...., an, b1, b2, ..., bp) Card (R X S) = Card (R) * Card (S) Notation Notation textuelle: T  R X S Notation graphique: X R S T

Produit cartésien (2) Algèbre relationnelle Elève Num Nom Adresse Age 1 Bélaïd Maisel 20 2 Millot CROUS 3 Meunier 21 UV Code Nbh Coord IO 45 Lalevée BD 15 Carpentier Elève X UV Num Nom Adresse Age Code Nbh Coord 1 Bélaïd Maisel 20 IO 45 Lalevée 2 Millot CROUS 3 Meunier 21 BD 15 Carpentier

Jointure But Contraintes Notation Algèbre relationnelle But Permet d’établir le lien sémantique entre les relations Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an), S(b1, b2, ..., bp) T  R  S T(a1, a2, ...., an, b1, b2, ..., bp) Notation Notation textuelle: T  R  S condition Notation graphique: R S condition T

1er exemple de jointure 1 tuple de Chambre  1 tuple de résultat Elève Num Nom Adresse Age 1 Bélaïd Maisel 20 2 Millot CROUS 3 Meunier 21 Elève.Num=Chambre.numElève Chambre No Prix numElève 10 200 3 21 150 2 Elève Chambre Num Nom Adresse Age No Prix numElève 2 Millot CROUS 20 21 150 3 Meunier Maisel 10 200 1 tuple de Chambre  1 tuple de résultat 1 tuple de Elève  0 ou 1 tuple de résultat On a perdu Bélaïd !

2ème exemple de jointure Inscrit NumElève CodeUV Note 2 BD 10 1 20 IO 17 3 18 Inscrit.NumElève=Elève.Num Elève Num Nom Adresse Age 1 Bélaïd Maisel 20 2 Millot CROUS 3 Meunier 21 Inscrit Elève Num Nom Adresse Age NumElève CodeUV Note 1 Bélaïd Maisel 20 BD 2 Millot CROUS IO 17 10 3 Meunier 21 18 1 tuple de Inscrit  1 tuple de résultat 1 tuple de Elève  0 à n tuples de résultat On a dupliqué Millot !

Division  But Contraintes Notation Dérivation Algèbre relationnelle Répondre aux requêtes de type « tous les » Un tuple t est dans T si et seulement si pour tout tuple s de S, le tuple <t,s> est dans R Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an, b1, b2, ..., bp), S(b1, b2, ..., bp) T  R  S, T(a1, a2, ...., an) Notation Notation textuelle: T = R  S Notation graphique: Dérivation Projection + Produit cartésien + Différence. R  S  T1 - T2 avec: T1  schéma(R) - schéma(S) (R) T2   schéma(R) - schéma(S) (( schéma(R) - schéma(S) (R) X S) - R)  R S T

Division (2) Exemple Quels sont les élèves inscrits à toutes les UVs ? Algèbre relationnelle Exemple Quels sont les élèves inscrits à toutes les UVs ? Inscrit NumElève CodeUV Note 2 BD 10 1 20 IO 17 3 18

Division (3) Exemple RNumElève,CodeUV(Inscrit) Algèbre relationnelle Exemple Construire R : ensemble de toutes les informations dont on a besoin = attributs NumElève et CodeUV de Inscrit (R) Construire S : ensemble correspondant à "tous les" (UV) = codeUV (S) Résultat  R  S Vérification : Résultat X S  R RNumElève,CodeUV(Inscrit) SCode(UV) Résultat R NumElève CodeUV 2 BD 1 IO 3 S CodeUV BD IO Resu NumElève 2

Bilan : sémantique et notations des opérateurs Algèbre relationnelle Opérateur Sémantique Notation textuelle Notation graphique Restriction « Sélectionner » des tuples Tcond(R) Projection « Sélectionner » des attributs Tattributs(R) Union Fusionner les extensions de 2 relations T  R S Intersection Obtenir l’ensemble des tuples communs à deux relations T R S Différence Tuples d’une relation qui ne figurent pas dans une autre T  R -S Produit cartésien Concaténer chaque tuple de R avec chaque tuple de S T  R XS Jointure Etablir le lien sémantique entre les relations T  R  S condition Division Répondre aux requêtes de type « tous les » T  R S Cond. attributs. condition   - X 

Bilan : contraintes des opérateurs Algèbre relationnelle Opérateur Unaire/Binaire Schémas « Paramètres » Restriction Tcond(R) Unaire Schéma(T) = Schéma(R) Condition sur attributs de R Projection Tattributs(R) Schéma(T)  Schéma(R) Liste d’attributs de R Union T  R S Binaire Schéma(R)=Schéma(S)=Schéma(T) Intersection T R S Différence T  R -S Produit cartésien T  R XS Schéma(T)=Schéma(S)Schéma(R) Jointure T  R  S condition Condition de jointure sur attributs de R et S Division T  R S Schéma(R)=Schéma(S)+Schéma(T)

Exemples de requêtes en algèbre relationnelle Base de données exemple : les vins Vins(num, cru, annee, degre) Recoltes(nvin, nprod, quantite) Producteurs(num, nom, prenom, region) Buveurs(num, nom, prenom, ville) Commandes(ncde, date, nb, nvin, qte) Livraisons(ncde, no_ordre, qteLivree) V R P B C L

Modèle E/A de la BD des vins Exemples Vins Buveurs num num cru nom degré prenom annee ville 0,n 0,n 0,n concerne recoltes Passer quantite 0,n 1,1 1,1 Producteurs Livraisons Commandes Donner_lieu num ncde 0,n (1,1) No_ordre nom qteLivrée qté prenom date date region

Composition des opérateurs Exemples Ecriture textuelle : Temp   annee=1995 (Vins) Resultat   num(Temp) Resultat   num( annee=1995 (Vins)) Arbre algébrique : Vins. annee=1995 num Résultat

Noms des producteurs de Muscadet Exemples Mus   cru=‘Muscadet’ (V) RecMus  Mus  R Mus.num=R.nvin ProdMus  RecMus  P Rec.nprod=P.num Resultat   nom(ProdMus) Vins cru=‘Muscadet’. Recoltes num=nvin Producteurs nprod=num nom Résultat

Numéros des vins ne faisant l’objet d’aucune commande Exemples NumVins   num(V) VinsCdes   nvin(C) Resultat  NumVins – VinsCdes Vins Commandes num nvin - Résultat

Optimisation Optimisation Noms et prénoms des buveurs habitant Paris ayant commandé du Mâcon 1995 avant le 01 janvier 2000 Plusieurs réponses possibles Optimiser = choisir la meilleure façon

Réponse 1 Optimisation num=nb nvin=num ville=‘Paris’ Buveurs date < 01/01/2000 Commandes Vins cru=‘Mâcon’ et annee=1995 num=nb nvin=num nom, prenom Résultat

Réponse 2 Optimisation nvin=num num=nb ville=‘Paris’ Buveurs date < 01/01/2000 Commandes Vins cru=‘Mâcon’ et annee=1995 nvin=num num=nb nom, prenom Résultat

Réponse 3 Optimisation num=nb nvin=num Buveurs Commandes Vins ville=‘Paris’ et date < 01/01/2000 et cru=‘Mâcon’ et annee =1995 nom, prenom Résultat

Réponse 4 Optimisation num=nb nvin=num ville=‘Paris’ Buveurs nb, nom, prenom date < 01/01/2000 Commandes nvin,nb cru=‘Mâcon’ et annee=1995 Vins num num=nb nvin, nom, prenom nvin=num nom, prenom Résultat

Optimisation par le SGBD Optimiser : Le nombre d’E/S Le temps UC … Facteurs déterminants : Ordre d'exécution des opérations algébriques Algorithme implantant les opérations algébriques Placement des données sur le disque Taille des relations intermédiaires

Restructuration Heuristique la plus employée Propriétés utilisées Optimisation Heuristique la plus employée Remonter les opérateurs unaires (restriction, projection) => diminution de la taille des relations Descendre les jointures Propriétés utilisées Associativité des jointures Commutativité restriction / projection Commutativité restriction / jointure Commutativité projection / jointure

Problème Libérer l’utilisateur des problèmes d’optimisation Exprimer une question sans préciser l’enchaînement des opérations algébriques  langage non procédural  langage déclaratif Responsabilités du SGBD : Traduction sous la forme d’un arbre algébrique Optimisation de l’arbre Exécution de l’arbre optimisé