Chapitre 2 Les langages de manipulation des données relationnelles Introduction

Chapitre 2 Les langages de manipulation des données relationnelles Introduction On peut distinguer trois grandes classes de langages de manipulation des données - Les Langages algébriques Ces langages sont basés sur l’algèbre relationnelle. Cette dernière a été définie par E.Codd comme une collection d’opérations sur les relations. Dans cette catégorie a été défini le langage SQL (Structured Query Langage) . - Le Calcul relationnel de tuples Il est Construit à partir de la logique de prédicats de premier ordre en associant à chaque variable des formules logiques les tuples d’une relation. On y a défini le langage QUEL du SGBD INGRES. - Le Calcul relationnel de domaines Ce type est construit à partir de la logique de prédicats en en variant les variables des formules logiques sur les domaines des relations. On y trouve le langage QBE (Query By Example) d’IBM. Ces langages sont équivalents : ils permettent de désigner les mêmes ensembles de données. 1. Algèbre relationnelle 1.1 Opérations de base 1.1.1 Opérations unaires Restriction La restriction d’une relation R par un prédicat Q est une relation R’ de même schéma contenant les nuplets (tuples) de R satisfaisant Q. Notation : R’= σ(R; Q) La Qualification Q est de la forme: (A1 θ1 c1)⋀(A2 θ2 c2)⋀…⋀ (Ap θp cp) Où : Ai attributs θi ∊ {=, < , ≤, ≻, ≥, ≠} et ci Constantes. Repésentation graphique R’ R Exemple Soit la relation Etudiant (ID-Etud, Nom, Prénom, Ville, DN, NbreAnnées) Etudiant ID_Etud Nom Prénom Ville DN NbreAnnées 001 Amir Ali Oran 15/01/1994 2 002 Bey Mohamed SBA 02/03/1992 3 003 Kadi Amal SBA 19/05/1993 3 004 Amar Ahmed Oran 20/04/1994 3 σ(Etudiant; Ville=‘Oran’) donne le résultat : ID_Etud Nom Prénom Ville DN NbreAnnées 001 Amir Ali Oran 15/01/1994 2 004 Amar Ahmed Oran 20/04/1994 3 σ(Etudiant;(Ville=‘Oran’)∧(NbreAnnées>2) ) donne : ID_Etud Nom Prénom Ville DN NbreAnnées 004 Amar Ahmed Oran 20/04/1994 3 Projection La projection d’une relation R de schéma R( A1, A2,…, An ) sur les attributs {A1, A2,…, Ap} ,p<n, est une relation R’ de schéma R’(A1, A2,…, Ap ) contenant les tuples obtenus à partir des tuples de R par élimination des valeurs des attributs de R n’appartenant pas à R’ et suppression des tuples en doubles. Notation : R’= Π A1, A2,…, Ap (R) Q Repésentation graphique R’ R R Exemple : l’opération ΠNom, Prénom(Etudiant) donne le résultat : Nom Prénom Amir Ali Bey Mohamed Kadi Amal Amar Ahmed 1.1.2 Opérations binaires Union : l’union de deux relations R et S de même schéma (mêmes attributs) est une relation T de même schéma contenant l’ensemble des tuples appartenant à R ou S ou aux deux relations. Notation : T=R ∪ S Repésentation graphique T R S Exemple Soit la relation : Enseignant (Enseignant_ID, Nom, Prénom, Département_ID, grade) ID_Enseignant Nom Prénom Département_ID grade 01 Amine Hichem D1 MCA 02 Benali Amira D2 MCA 03 Bekkar Reda D1 MAA 04 Azzi Mohamed D3 MCB U A1, …, Ap L’opération ΠNom,Prénom(Enseignant) ∪ ΠNom,Prénom(Etudiant) donne le résultat Nom Prénom Amine Hichem Benali Amira Bekkar Reda Azzi Mohamed Amir Ali Bey Mohamed Kadi Amal Amar Ahmed Différence : la différence de deux relations R et S de même schéma (dans l’ordre R-S) est une relation T de même schéma contenant l’ensemble des tuples appartenant à R et n’appartenant à S. Notation : T= R – S Repésentation graphique T R S Exemple R1 A B a1 b1 a2 b2 R2 A B a1 b1 a4 b4 a5 b5 R1-R2 A B a2 b2 Produit cartésien : le p.c de deux relations R et S de schémas quelconques est une relation T ayant pour attributs la concaténation des attributs de R et S et pour tuples toutes les concaténations d’un tuple de R à un tuple de S. Notation : T= R×S Repésentation graphique T R S Exemple R1 A B a1 b1 a2 b2 1.2 Autres opérations Les opérations qui suivent sont construites à partir des opérateurs de base. Sélection : cette opération est définie par une restriction suivie d’une projection. Par exemple si on veut obtenir les noms et prénoms des étudiants habitant Oran on écrira : ΠNom, Prénom (σ(Etudiant; Ville=‘Oran’)) . Appliqué à l’instance de relation Etudiant on aura : S1 C D c1 d1 c2 d2 R1xS1 A B C D a1 b1 c1 d1 a1 b1 c2 d2 a2 b2 c1 d1 a2 b2 c2 d2 Nom Prénom Amir Ali Amar Ahmed Intersection : l’intersection de deux relations R et S de même schéma est une relation T de même schéma contenant les tuples appartenant à la fois à R et à S. Notation : T= R ∩ S On peut démontrer que: R ∩ S = R - (R - S) = S- (S-R) Repésentation graphique T R S Exemple R1 A B a1 b1 a2 b2 a3 b3 La jointure : la jointure de deux relations R et S selon une qualification Q est l’ensemble des tuples du produit cartésien R×S satisfaisant Q. Notation : R ⋈ S = σ(R ×S; Q) Q Repésentation graphique T Q R S R2 A B a1 b1 a4 b4 a5 b5 R1∩R2 A B a1 b1 ∩ Exemple R1 A B a1 b1 a2 b2 a3 b3 On veut réaliser la jointure de R1 et S3 selon la qualification Q : R1.A=S3.C R1 ⋈ S3 A B C D a1 b1 a1 d1 Cas particuliers de jointure: • Equijointure: l’équijointure de R et S sur les attributs Ai et Bj est la jointure selon la qualification Ai=Bj. • Autojointure: l’autojointure de R selon un attribut Ai est la jointure de R avec R selon la qualification Ai=Ai. • Jointure naturelle : la jointure naturelle de R et S notée R ⋈ S est l’équijointure de R et S sur tous les attributs communs de R et S, suivie de la projection qui permet de conserver un seul de ces attributs égaux de même noms. • Semi-jointure : la s.j de R par S selon une qualification Q est l’ensemble des tuples de R participant à la jointure de R par S selon Q. Notation : R⋉S Q Division La division de S (A1,A2, …Ap, Ap+1,…, An) par S(Ap+1,…, An) est une relation Q(A1,A2,…Ap) formée de tous les tuples qui concaténés à chacun des tuples de S donne toujours un tuple de R. Notation : Q=R÷S Cette opération s’applique à une requête qui contient le terme « pour tous ». Repésentation graphique T ÷ R S S3 C D a1 d1 c4 d4 c5 d5 Exemple R1 A B C a1 b1 c1 a2 b2 c2 a3 b3 c3 a1 b1 c2 Le quotient des deux relations donne le résultat : La division peut être exprimée par une suite d’opérations de base : R÷S= T-U Où T= ΠA1,A2, …Ap (R) U= ΠA1,A2, …Ap ((T×S)-R) Expression de requête: Soit la base de données suivante : Client ( NC, Nom, Adresse) Produit (NP, désignation, type, année-prod) Achat ( NC, NP, Quantité) Soit la Requête (R): «Donnez les noms et adresses des clients ayant acheté plus de 50 produits de type ‘portable’ avec leurs années de productions’ Une expression en algèbre relationnelle de cette requête est : Π Nom, Adresse, année-prod (σ (((Client ⋈Q1 Achat) ⋈Q2Produit) ; (Quantite>50) ⋀ (type=" portable") ⋀ (c)). Q1 : Client.NC=Achat.NC ; Q2 : Produitt.NP=Achat.NP Une écriture optimisée de cette requête serait : Π Nom, Adresse , année-prod ((Client ⋈Q1 σ (Achat ; Quantite>50))⋈Q2 σ (Produit ; type="portable")). S4 A B a1 b1 a2 b2 R1÷S4 C c2 Représentation graphique: Résultat Q2 Q1 Client Achat Produit Un arbre algébrique de la requête R type= "portable" Nom, Adresse année-prod Quantite>50 2. Le langage SQL (Structured Query Language ) SQL est une évolution commercialisée par IBM du langage SEQUEL initialement développé comme un langage de recherche. Ce langage peut être perçu comme une expression très complète de séquences d’opérations relationnelles. SQL est un: • Langage de Manipulation de Données (LMD) : interroger et modifier les données de la base • Langage de Définition de Données (LDD) : définir le schéma de la base de données • Langage de contrôle d’accès aux données On distingue • SQL2 : standard adopté en 1992 • SQL3 : extension de SQL2 avec "gestion" d’objets. 2.1 Commandes de requête (LMD) Dans ce qui suit on va présenter les commandes SQL de manipulation des données. Pour cela on considère un exemple de schéma de base de données : CLIENT (NC, Nom, Adresse) PRODUIT (NP, designation, type, prix, couleur) ACHAT (NC, NP, qte) 2.1.1. Expression de projection Une projection s’exprime par la clause : SELECT DISTINCT liste-attributs FROM relation ; Le mot clé DISTINCT permet de supprimer les doubles. Exemple : «Listez les noms des clients» SELECT DISTINCT Nom FROM CLIENT ; 2.1.2. Expression des sélections Une sélection est une combinaison d’une restriction suivie d’une projection. Une restriction s’exprime par un bloc du type : SELECT * FROM nom de relation WHERE condition ; La combinaison avec une projection s’effectue en remplaçant * par une liste uploads/Geographie/chapitre2-bd.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager