Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
L’algèbre relationnelle
◦ Opérations de base
◦ Opérations additionnelles
◦ Composition d’opérateurs
Le langage SQL
◦ Généralités
◦ SQL langage de description de données (LDD)
◦ SQL pour les mises à jour (LMD)
◦ SQL langage de manipulation de données (LMD)
Opérations de base
◦ Opérations binaires ensemblistes opérant sur deux relations
◦ Opérations unaires spécifiques
Opérations additionnelles
◦ Ces opérations se déduisent des opérations de base
Notation
· T = R U S T
· T = UNION (R,S) U
· Notation graphique
R S
Langages de manipulation de données relationnelles 9
Exemple
R Num Nom Adr S Num Nom Adr
2140 Ahmed Batna 2510 Omar Batna
1123 Ali Biskra 2140 Ahmed Batna
342 Leila Annaba 2450 Lynda Skikda
5
T = RUS Num Nom Adr
2140 Ahmed Batna
1123 Ali Biskra
342 Leila Annaba
5
2510 Omar Batna
2450 Lynda Skikda
Notation
T
· T = RS
· T = MINUS (R,S)
· Notation graphique R S
Langages de manipulation de données
relationnelles 11
Exemple
R Num Nom Adr S Num Nom Adr
2140 Ahmed Batna 2510 Omar Batna
1123 Ali Biskra 2140 Ahmed Batna
342 Leila Annaba 2450 Lynda Skikda
5
T=RS Num Nom Adr
1123 Ali Biskra
342 Leila Annaba
5
Notation Q
· R’ = Q (R)
R
· R’ = RESTRICT ( R / Q)
· Notation graphique
Langages de manipulation de données relationnelles 18
Exemple R Dési NomFour Adr
Brosse Amir Batna
Stylo Amir Batna
Bureau Ahmed Batna
Chaise Khaled Biskra
Cahier Lynda Skikda
·T = JOIN (R, S / Q)
·T = R S [Q] /* restriction du produit cartésien
· Notation graphique
Langages de manipulation de données relationnelles 20
Exemple Adr fonction
R Num Nom Adr S Batna Enseignant
2140 Ahmed Batna Batna Médecin
1123 Ali Biskra Annaba Commerçant
3425 Leila Annaba Biskra Mécanicien
Notation :
·T = R ∩ S
T
·T = INTERSECT ( R , S )
· Notation graphique
∩
Remarque : R S
R ∩ S = R (R S)
R ∩ S = S (S R)
Notation :
÷
·Q = R ÷ S R S
· Q = DIVISION ( R , S )
· Notation graphique
Langages de manipulation de données relationnelles 24
Exemple : Schéma de la Base de Données Relationnelle:
PROD (NP, NOP, COUL, QTES)
ACHAT (NP, NCLI, QTEA)
CLIENT (NCLI, NOM, ADR)
CREATE TABLE ACHAT (NP INTEGER, NCLI CHAR (4), QTEA FLOAT,
FOREIGN KEY (NP) REFERENCES (PRODUIT.NP),
FOREIGN KEY (NCLI) REFERENCES (CLIENT.NCLI)) ;
Exemple :
DROP TABLE CLIENT
Projection
L’expression de cette opération se fait par la syntaxe suivante:
SELECT liste_attributs
FROM nom_relation
Opérateurs arithmétiques: +, -, /, %
NP LIB
SELECT NP, LIB 212 Stylo
FROM PRODUIT 443 Crayon
WHERE COUL = ‘noir’ 243 Cartouche
543 Stylo
OR QTES > 80 ;
Exemple: NP LIB
SELECT NP, LIB 212 Stylo
FROM PRODUIT 243 Cartouche
WHERE COUL = ‘noir’ 443 Crayon
OR QTES > 80 543 Stylo
ORDER BY NP DESC;
Langages de manipulation de données relationnelles 49
Produit cartésien
SELECT
FROM relation1 , relation2 ;
Exemple:
SELECT
FROM PRODUIT , ACHAT ;
Exemple:
SELECT
FROM PRODUIT , ACHAT
WHERE PRODUIT. NP = ACHAT. NP; Langages de manipulation de données relationnelles 51
Jointure
Il est possible d’exprimer la jointure par des requêtes imbriquées
avec l’opérateur IN
SELECT LIB
FROM PRODUIT
WHERE NP IN
(SELECT NP
FROM ACHAT);
Exemple:
SELECT NP FROM PRODUIT
INTERSECT
SELECT NP FROM ACHAT;
NB: L'opérateur INTERSECT n'étant pas implémenté dans tous les SGBD,
Langages de manipulation de données relationnelles 56
La différence:
Opérateur EXCEPT ou MINUS
Cet opérateur permet d'effectuer une DIFFERENCE entre les tuples
sélectionnés par deux clauses SELECT,
Sélectionner les tuples de la première table n'appartenant pas à la
seconde (les deux tables devant avoir le même schéma)
SELECT . . FROM . . WHERE . .
EXCEPT
SELECT . . FROM . . WHERE . .
NB: L'opérateur EXCEPT n'étant pas implémenté dans tous les SGBD
Langages de manipulation de données relationnelles 57
Fonctions SQL standards
SUM : Permet de calculer la somme des valeurs d’une colonne
Groupe toutes les lignes pour lesquelles exp1, exp2, . . . ont la même valeur
GROUP BY exp1, exp2, . . .
groupe 1
groupe 2
groupe 3
groupe 4
Langages de manipulation de données relationnelles 60
Clause GROUP BY
Cette clause se place juste après la clause WHERE, ou après la clause FROM si
la clause WHERE n’existe pas
EXEMPLES:
1. Afficher le salaire moyen de chaque catégorie d’employés
SELECT categ, AVG(salaire)
FROM employé
GROUP BY categ
Cette clause sert à préciser des critères de sélection sur les groupes
de valeurs
Elle se place après la clause GROUP BY
La qualification ne porte que sur des caractéristiques de groupe:
fonction ou expression figurant dans la clause GROUP BY
Exemple:
Donner le nombre de commandes passées par client uniquement dans le cas où il
y a plus de 10 commandes.
Exemple: donner les noms des étudiants ayant le même âge que ‘Atef’
SELECT nom
FROM Etudiant
WHERE âge = (SELECT âge
FROM Etudiant
WHERE nom = ‘Atef’)