62 Modèle relationnel et algèbre relationnelle INT Management.

Slides:



Advertisements
Présentations similaires

Advertisements

Programme Introduction aux BD et aux SGBD Le modèle relationnel
Chap 4 Les bases de données et le modèle relationnel
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
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.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
1- Introduction 2ème partie Modèle Conceptuel des Données 2- Entités- Associations 4- Associations plurielles 3- Cardinalités 5- Associations réflexives.
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Algèbre relationnelle - 1 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle.
BUR Tableur Tableur : Open Office Calc. BUR Tableur 2 Qu’est-ce qu’un tableur ?  Un logiciel permettant de manipuler des feuilles de calcul  Fonctionnalités.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
LE MODELE RELATIONNEL Inventé par T. Codd (IBM Recherche) Publication ACM Concepts pour la description 2. Concepts pour la manipulation 3. Concepts.
LE MODÈLE CONCEPTUEL DES DONNÉES Encadré par: Pr. LAMARI SIHAM Présenté par DAOUI CHAIMAA NEBLI HIND NMER ABDELMOUNIM OUTALAB SIHAM.
Les Bases de données Définition Architecture d’un SGBD
Cours Initiation aux Bases De Données
Initiation à la conception des systèmes d'informations
L2A Semestre 4 Mehdi Benzine
Construire des requêtes
Introduction aux Systèmes de Gestion de Bases de données
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Initiation aux bases de données et à la programmation événementielle
Université Stendhal - Grenoble
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Algèbre relationnelle
Base de données: Généralité IFT6800 Jian-Yun Nie.
Les Bases de données Définition Architecture d’un SGBD
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
1 Présentation projet Base de Données & Langage SQL Bakary DIABY, Insa Rouen Promo. MS-ESD 16/17.
SQL LID – INTERROGATIN DES DONNEES
Initiation aux bases de données sous Access. Plan I.Structure d’une base de données II.Langages de manipulation de données –Algèbre relationnelle (théorique)
Maria Berger - Maîtrise d'AES Algèbre relationnelle.
Fonctions Logiques & Algèbre de BOOLE
Cyber-Sphinx Séance 2.
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Calcul Relationnel Chapitre 4, Section 4.3.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Langage d’interrogation des Données LID
Modèle entité-association Exercice client : Une petite entreprise souhaite concevoir une base de données pour la gestion des commandes de ses clients,
SQL Structured Query Language
Calcul Scientifique Initiation à SCILB
Conception d’une BD.
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Algèbre relationnelle
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
5 Introduction au modèle relationnel 5.1 Concepts de base
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
Conception d’unebasede données MERISE ( MÉTHODE D’ ETUDE ET DE RÉALISATION INFORMATIQUE POUR LES SYSTÈMES D’ENTREPRISE )
© Robert Godin. Tous droits réservés.
Systèmes d’Information et Application
© Robert Godin. Tous droits réservés.
Bases de Données Relationnelles(1)
Algèbre Relationnelle
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Systèmes d’Information et Application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
LINQ. LINQ (Language-Integrated Query) est une nouveauté du.NET Framework 3.5 C’est le nom d’un ensemble de technologies basé sur l’intégration de fonctions.
Transcription de la présentation:

62 Modèle relationnel et algèbre relationnelle INT Management

63 Plan du document Modèle relationnelslide 64 Opérateurs de l’algèbreslide 78 Exemples de requêtesslide 94 Optimisationslide 99

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

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

66 Produit cartésien Définition  Le produit cartésien de D 1,...., D n est l'ensemble des n- uplets (tuples) tel que V i  D i Notation  D 1 X....X D n Exemple :  D 1 = {‘BD’, ‘IO’} (Code UV)  D 2 = {‘Carpentier’, ‘Lalevée’, ‘Millot } (Prof) D 1 X D 2 D1D1 D2D2 BDCarpentier BDLalevée BDMillot IOCarpentier IOLalevée IOMillot Modèle relationnel

67 Relation Définition  Sous-ensemble du produit cartésien d'une liste de domaines  Caractérisée par un nom Exemple  D 1 = Code UV  D 2 = Prof Modèle relationnel UVD1D1 D2D2 BDCarpentier IOLalevée

68 Relation (2) 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 Modèle relationnel UVcodecoord BDCarpentier IOLalevée

69 Exemples de relations ElèveNumNomAdresseAge 1BélaïdMaisel20 2MillotCROUS20 3MeunierMaisel21 InscritNumElèveCodeUVNote 2BD10 1BD20 2IO17 3IO18 Modèle relationnel

70 Clé 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) Modèle relationnel

71 Schéma de relation 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 Modèle relationnel

72 Clé étrangère 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 Modèle relationnel

73 Clé étrangère (2) 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 Modèle relationnel

74 Clé étrangère 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) Modèle relationnel

75 Métabase 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 Modèle relationnel

76 Résumé des notions Modèle relationnel Clé Table Schéma Intention Tuple / n-uplet Relation2 Clé étrangère Relation1Attributn Attribut1 Attributa Attribut2 vn v1 v3 w1 v1 w2 w1 w2 Attributb xi wn BD Schém a BD NomRelAttribut Relation 1 Attribut1 Relation 1 Attribut2 Métabase …

77 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

78 Les opérateurs de manipulation 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 Algèbre relationnelle

79 Restriction 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) Algèbre relationnelle Cond. ResuNumElèveCodeUVNote 2BD10 1BD20 ResuNumElèveCodeUVNote 1BD20 R T

80 Projection 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) Algèbre relationnelle attributs. ResuAdresse Maisel CROUS ResuCodenbh IO45 BD15 Pas de doublon

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

82 Intersection 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 Algèbre relationnelle  R S T ProfNom Lalevée Carpentier Millot Elève2Nom Bélaïd Millot Meunier ResuNom Millot

83 Différence 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 Algèbre relationnelle - R S T ProfNom Lalevée Carpentier Millot Elève2Nom Bélaïd Millot Meunier RésuNom Bélaïd Meunier

84 Produit cartésien 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: Algèbre relationnelle X R S T

85 Produit cartésien (2) Algèbre relationnelle ElèveNumNomAdresseAge 1BélaïdMaisel20 2MillotCROUS20 3MeunierMaisel21 UVCodeNbhCoord IO45Lalevée BD15Carpentier Elève X UVNumNomAdresseAgeCodeNbhCoord 1BélaïdMaisel20IO45Lalevée 2MillotCROUS20IO45Lalevée 3MeunierMaisel21IO45Lalevée 1BélaïdMaisel20BD15Carpentier 2MillotCROUS20BD15Carpentier 3MeunierMaisel21BD15Carpentier

86 Jointure 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: Algèbre relationnelle RSRS T condition

87 Elève  Chambre NumNomAdresseAgeNoPrixnumElève 2MillotCROUS MeunierMaisel ChambreNoPrixnumElève Elève.Num=Chambre.numElève 1er exemple de jointure 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 ! ElèveNumNomAdresseAge 1BélaïdMaisel20 2MillotCROUS20 3MeunierMaisel21

88 Inscrit  Elève NumNomAdresseAgeNumElèveCodeUVNote 1BélaïdMaisel201BD20 2MillotCROUS202IO17 2MillotCROUS202BD10 3MeunierMaisel213IO18 InscritNumElèveCodeUVNote 2BD10 1BD20 2IO17 3IO18 ElèveNumNomAdresse Age 1BélaïdMaisel 20 2MillotCROUS 20 3MeunierMaisel 21 Inscrit.NumElève=Elève.Num 2ème exemple de jointure 1 tuple de Inscrit  1 tuple de résultat 1 tuple de Elève  0 à n tuples de résultat On a dupliqué Millot !

89 Division But  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 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) Algèbre relationnelle  R S T

90 Division (2) Exemple  Quels sont les élèves inscrits à toutes les UVs ? Algèbre relationnelle InscritNumElèveCodeUVNote 2BD10 1BD20 2IO17 3IO18

91 Division (3) 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 RNumElèveCodeUV 2BD 1 2IO 3 SCodeUV BD IO ResuNumElève 2 Algèbre relationnelle

92 Bilan : sémantique et notations des opérateurs Algèbre relationnelle OpérateurSémantiqueNotation textuelle Notation graphique Restriction« Sélectionner » des tuples T   cond (R) Projection« Sélectionner » des attributs T   attributs (R) UnionFusionner les extensions de 2 relations T  R  S IntersectionObtenir l’ensemble des tuples communs à deux relations T  R  S DifférenceTuples 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 JointureEtablir le lien sémantique entre les relations T  R  S condition DivisionRépondre aux requêtes de type « tous les » T  R   S Cond. attributs.    X  condition

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

94 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) Exemples VRPBCLVRPBCL

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

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

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

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

99 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 Optimisation

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

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

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

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

104 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 Optimisation

105 Restructuration 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 Optimisation

106 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é Optimisation