Interroger les bases de donnes Les donnes ont
Interroger les bases de données • Les données ont été décrites : de l’analyse à la mise en œuvre sous un SGBDR: Ø Le schéma conceptuel a été validé Ø Le passage au modèle logique a été fait Ø Le modèle physique de données construit 1
Interroger les bases de données • Parcourir les tables afin d’obtenir l’information demandée exprimée sous forme de requêtes. • Ces requêtes sont écrites avec un petit nombre d’opérateurs , qui constituent : ALGEBRE RELATIONNELLE 2
Un langage de manipulation de données • Des langages mettent en œuvre cette algèbre relationnelle comme SQL : Structured query language • L’algèbre relationnelle contient 7 opérateurs 3
Interroger Papa. Noël • Question 1 : « Quels sont les prénoms des enfants qui ont obtenu une poupée Bardi ? » 4
Navigation dans la BD Papa. Noël 1ère étape du parcours : trouver le numéro de ce cadeau : la ligne adéquate dans la table CADEAU F 1 Poupée Bardi 1203 5
Une navigation dans Papa. Noël 2 de étape du parcours Trouver les enfants qui ont obtenu ce cadeau dans OBTENIR : EPIN 3 F 1 6
Interroger la BD Papa. Noël 3ème étape du parcours Obtenir le prénom de cet enfant dans ENFANT: EPIN 3 Bardi Sandrine EPI 02 O 7
Résultat de la requête • C’est Sandrine qui a obtenu une poupée Bardi à Noël. • Question 2 : « Quels sont les cadeaux obtenus par les enfants pas gentils ? » 8
Les étapes du parcours • Déterminer les numéros des enfants pas gentils • Déterminer les numéros des cadeaux qu’ils ont tout de même obtenu. • Déterminer les caractéristiques de ces cadeaux. • Afficher l’information souhaitée sur ces cadeaux. 9
Plan d’étude de l’algèbre relationnelle • Les sept opérateurs : Ø Les opérateurs portant sur une seule table Ø Les opérateurs portant sur deux tables de structure différente Ø Les opérateurs portant sur deux tables de même structure. Ø L’opérateur division………. . 10
Les opérateurs sur une seule table • La projection : retenir d’une table les propriétés voulues ( colonnes) DECOUPAGE VERTICAL de table 1: p 1 p 2 p 3 p 4 p 5 . . …. . . . . 11
Projection d’une table • Résultat de la projection de table 1 sur p 2 et p 5 : table 1 P = projection (Table 1; p 2, p 5) p 2 p 5 12
Exemples de projection « Quelles sont les villes où habitent les enfants de la base Papa. Noël » ? Res = projection ( ADRESSE, ville. Adresse) ville. Adresse Epinal Luneville Nancy 13
Exemples de projection « Quels sont les noms et prix des cadeaux proposés par Papa. Noël » ? table de deux colonnes et 26 lignes • Quelles sont les adresses des fournisseurs ? adr. Fsseur ciel terre 14
Opérateur sur une table • La sélection: retenir d’une table les lignes qui répondent aux critères de la sélection. DECOUPAGE HORIZONTAL de table 2 p 1. . p 2. . p 3. . p 4. . p 5. . …. . . 15
La sélection dans une table • Le résultat d’une sélection : table 2 S = sélection ( table 2 ; critères ) P 1 P 2 P 3 P 4 p 5 16
Sélection des lignes • Les lignes retenues satisfont les critères de la sélection. • Ces critères portent sur les propriétés de la table reliées par les opérations logiques, arithmétiques, de comparaison, etc…. 17
Exemples de sélection « Quels sont les enfants qui ont une cheminée et un souterrain » ? cinq lignes de la table ENFANT satisfont ces critères. Res = selection (ENFANT ; cheminée. Adr=‘O’ et souterrain. Adr=‘N’) 18
résultat d’une sélection Code Rue Cp EPIN 1 2 rue Ville Che Fen 88000 Epinal O O sout O EPIN 4 EPIN 6 EPIN 9 EPIN 1 3 19
Exemples de sélection et projection • « Quels sont les enfants méchants » ? • « Quels sont les enfants qui ont obtenu le cadeau F 1 » ? • « Quels sont les fournisseurs qui habitent au ciel » ? 20
Opérateurs sur deux tables de structure différente • Le produit cartésien de deux relations: exemple: AGENDA = JOURS_SEMAINE x HEURES_ OUVRABLES 21
Le produit cartésien de deux tables • Relation R • Relation S A B C D E a b c m g d a f p l c b d 22
Le résultat du produit • Tx R= A a a d d c c B b b a a b b C c c f f d d D m p m p E g l g l 23
La jointure de deux tables • La jointure générale permet de juxtaposer les lignes de deux tables respectant les conditions posées sur les constituants de la jointure. Exemple : Jointure de Plantes et régions par rapport à l’égalité de SOL: PLANTES_REGIONALES = Jointure ( PLANTES, REGIONS, SOLPLANTES=SOLREGIONS) 24
La jointure naturelle: exemple • BIDOCHON nom ville • CADEAUX ref. Cad Toto Brest 12 Juju Landerneau 5 Riri Plouguerneau 6 ref. Cad design 2 12 5 4 6 Avion Camion Robot Poupée fusil 25
Résultat de la jointure • Tab. Jointe(BIDOCHON, CADEAUX, BIDOCHON. refcad=CADEAUX. refcad) Nom Ville Refcad design Toto Brest 12 Camion Juju Landerneau 5 Robot Riri Plouguerneau 6 fusil Quels sont les noms des jouets commandés par la famille Bidochon 26
Syntaxe d’une jointure naturelle • La charnière de la jointure présente dans les deux tables : une seule colonne C. • L’équi-jointure : égalité sur les valeurs prises par la colonne charnière. • Tab. Jointe = Jointure (T 1, T 2 ; T 1. C = T 2. C) 27
Exemple jointure • « Quels sont les numéros des enfants qui ont obtenu une poupée Bardi » ? R = Jointure ( CADEAU, OBTENIR ; CADEAU. no. Cadeau=OBTENIR. no. Cadeau) R 2= Sélection ( R ; nom. Cadeau = ‘Poupée Bardi’) R 3 = Projection ( R 2; no. Enfant) 28
Fin de l’exemple • « Quels sont les prénoms des enfants qui ont obtenu une poupée Bardi » ? R 1 = Jointure ( CADEAU, OBTENIR ; CADEAU. no. Cadeau=OBTENIR. no. Cadeau) R 2= Sélection ( R ; nom. Cadeau = ‘Poupée Bardi’) R 3 = Jointure ( R 2, ENFANT ; R 2. no. Enfant = ENFANT. no. Enfant) Res = projection ( R 3 ; prénom. Enfant) 29
Ré-écriture de l’exemple • Sélection, jointures, projection R 1 = Sélection ( CADEAU ; nom. Cadeau = ‘Poupée Bardi’) R 2= Jointure ( R 1, OBTENIR ; R 1. no. Cadeau=OBTENIR. no. Cadeau) R 3= Jointure( R 2 , ENFANT ; R 2. no. Enfant= ENFANT. no. Enfant) Res = Projection ( R 2; no. Enfant) • 2 jointures pour 3 tables à parcourir 30
Des requêtes de toutes sortes • « Quels sont les cadeaux ( no et nom) obtenus par les enfants méchants » ? • « Quels sont les noms des cadeaux fournis par le fournisseur CIEL » ? • « Quels sont les adresses des enfants qui ont obtenu leur poids en chocolat » • « Quels sont les prénoms des enfants qui ont commandé des cadeaux à des fournisseurs terrestres » ? 31
Opérateurs ensemblistes sur deux tables de même structure • Intersection, union, différence sur deux tables ayant les mêmes colonnes A A et B B 32
Intersection et union de deux tables Tab 1: noms de la famille Dupont noms Jacques Rémi Jean Pierre Tab 2: noms de la famille Durand noms Hercule Rémi Gargantua Jacques Théodule Hubert 33
Résultat de l’intersection et de la réunion • Res= intersection (Tab 1, Tab 2) • Res = union (Tab 1, Tab 2) nom Nom Jacques Théodule Rémi Jacques Hubert Rémi Jean Pierre Gargantua Hercule 34
Différence de deux tables • Res = différence ( Tab 1 , Tab 2) nom Jean Pierre 35
Différence de deux tables • Res = différence ( Tab 2 , Tab 1) Nom Hercule Gargantua Théodule Hubert 36
Exemple d’union • Quels sont les noms et les adresses des personnes présentes chez « sucreries » R 1 = projection (Clients; nom. Client, adresse. Client) R 2= projection (Vendeurs; nom. Vendeur, adresse. Vendeur) Res= union(R 1, R 2) 37
Exemple d’intersection • « quels sont les cadeaux (numéro) qui ont été à la fois commandé et obtenu » ? R 1= projection (OBTENIR, refcadeau) R 2 = projection (COMMANDER, ref. Cadeau) Res = intersection (R 1, R 2) 38
Exemple de différences • « Quels sont les produits ( référence) qui n’ont pas fait l’objet d’une commande » ? R 1=projection (Produits; référence) R 2 = projection (Lignes. Commandes; référence) Res = différence ( R 1, R 2) 39
Différences … • « Quels sont les clients Requête en langage qui n’ont passé algébrique : commande » ? • « Quels sont les noms des clients de Reims qui n’ont passé commande » ? 40
- Slides: 40