SGBD
SGBD
SGBD
CHAPITRE I
L’ALGEBRE RELATIONNELLE
INTRODUCTION :
L’algèbre relationnelle est un support mathématique cohérent sur lequel repose le modèle relationnel. L’objet de
cette section est d’abordé l’algèbre relationnel dans le but de décrire les opérations qu’il est possible de d’appliqué
sur des relations pour produire de nouvelle relation.
Ce sont les opérateurs les plus simple, ils permettent de produire une nouvelle relation (table) à partir d’une autre
relation (table).
Ces opérateurs permettent de produire une nouvelle relation à partir de deux relation de même degré et de même
domaine.
Ils permettent de produire une nouvelle relation à partir de deux ou plusieurs entre relation.
1. SELECTION :
La sélection génère une relation regroupant exclusivement toutes les occurrences de la relation R qui satisfont
l’expression logique E, on la note : (E) R
Il s’agit d’une opération unaire essentielle, la signature est : relation * expression logique relation.
En d’autre termes, la sélection permet de choisir (sélectionner) des lignes dans la table. Le résultat de la sélection
est donc une nouvelle relation (R2) qui a les mêmes attributs que R1, si R1 est vide la relation qui résulte de la
sélection est vide.
3 Kaci Amina
Tableau 1 : relation personne
2. PROJECTION :
La projection consiste à supprimer les attributs autres que A1, A2, …, An d’une relation est à éliminer les n-uplets
en double apparaissant dans la nouvelle relation (A1, A2, …, An) R.
Il s’agit d’une opération unaire essentielle dont la signature est : relation * liste d’attributs relation.
En d’autres termes, la projection permet de choisir des colonnes dans la table. Si R est vide la relation qui résulte
de la projection est vide mais pas forcément équivalent. Elle contient généralement moins d’attribut ou colonne.
3. UNION :
L’union est une opération portant sur deux relation ayant le même schéma et construisant 3 ème relation constitué
des n-uplets appartenant à chacune des deux relation R1 et R2 sans doublant, on la note : R1 R2.
Il s’agit d’une opération binaire ensembliste commutative essentielle dont la signature est :
relation 1 * relation 2 relation 3
Si la relation R1 et relation R2 sont vide, la relation qui résulte (R3) est vide. Si R1 (respectivement R2) est vide la
relation qui résulte de l’union est identique à R2 (respectivement R1).
4. INTERSECTION :
L’intersection est une opération portant sur deux relations R1 et R2 ayant le même schéma et construisant une
3ème relation dont les n-uplets sont constitués de ce appartenant aux deux relations, on la note : R1 R2
Il s’agit d’une opération binaire ensembliste commutative dont la signature est : relation relation 2 relation 3.
5. DIFFERENCE :
La différence est une opération portant sur deux relation R1 et R2 ayant le même schéma et construisant une 3 ème
relation dont les n-uplets sont constitués de ce qui ne se trouve que dans la relation R1. On le note : R1 – R2.
Il s’agit d’une opération binaire ensembliste non commutative essentiel dont la signature est :
relation 1 – relation 2 relation 3.
MODULE : SGBD Enseignante : Mme HIMEUR
Si R1 est vide la relation qui résulte de la différence est vide. Si R2 est vide la relation qui résulte de la différence est
identique à R1.
MODULE : SGBD Enseignante : Mme HIMEUR
6. PRODUIT CARTESIEN :
Le produit cartésien est une opération portant sur deux relations qui construit une 3 ème relation regroupant
exclusivement toutes les possibilités des combinaisons des occurrences des relation R1 et R2, on la note : R1*R2.
Il s’agit d’une opération binaire commutative dont la signature est : relation 1 * relation 2 relation 3.
Le résultat du produit cartésien est une nouvelle relation qui a tous les attributs de R1 et tous ceux de R2. Si R1 ou
R2 ou les deux sont vides, la relation qui résulte du produit cartésien est vide. Le nombre d’occurrence de la
relation qui résulte du produit cartésien est le nombre d’occurrence de R1 multiplié par le nombre d’occurrence de
R2.
No_ID Article
101 A
225 B
757 C
Tab 1: R1
7. JOINTURE :
La jointure est une opération portant sur deux relation R1 et R2, qui construit une 3ème relation regroupant
exclusivement toute les possibilités de combinaison des occurrences des relations R1 et R2 qui satisfont
l’expression logique E. La jointure est notée :
Si R1 ou R2 ou les deux sont vident, la relation qui résulte de la jointure est vide.
Enfaite la jointure n’est rien d’autre qu’un produit cartésien suivit d’une sélection. R1 E R2 = (R1*R2).
MODULE : SGBD Enseignante : Mme HIMEUR
Tab 1 : R1
Tab 2 : R2 (cadeau)
La jointure d’égalité (également appelé jointure naturelle ou équijointure) est une opération binaire qui associe
deux relation qui ne sont pas obligatoirement différente sur tous leurs attributs communs. La jointure d’égalité est
un produit cartésien dont le quel on retiens tous les tuples résultant de la concaténation des tuples de la 1ère
relation avec ce de la 2nd qui ont des valeurs identiques pour un ensemble commun d’attributs. Les attributs
communs sont ceux qui ont le même domaine et la même signification, même s’ils n’ont pas le même nom.
MODULE : SGBD Enseignante : Mme HIMEUR
EXEMPLE :
R1 (personnel) :
R2 (Département) :
ID Nom Lien
100 Comptabilité Alger
200 Marketing Oran
300 Vente Alger
R3=R1 R2 (personnel.Dept = Departement.Nom)
Est basé sur le même principe que la jointure d’égalité à la différence qu’elle conserve les occurrences qui n’ont pas
d’associées dans l’autre relation. On associe au attribut non renseigné la valeur nulle symbolisé par ().
EXEMPLE :
33 Leïla 35
44 Sihem 45
No.Bureau Batiment
45
55
15 B
65 C
R2 (Bureau) :
R1 R2 (employe.NoBureau = Bureau.NoBureau)
8. LA DIVISION :
La division est une opération portant sur deux relations R1 et R2, tel que le schéma de R2 est strictement inclus
dans celui de R1, qui génère une 3ème relation regroupant toutes les partis d’occurrences de la relation R1 qui sont
associé à toutes les occurrences de la relation R2, on la note : R1R2
Il s’agit d’une opération binaire non commutative dont la signature est : relation 1*relation 2 relation 3
La relation R2 ne peut pas être vide. Tous les attributs de R2 doivent être présent dans R1 et R1 doit posséder au
moins un attribut de plus que R2. Le résultat de la division est une nouvelle relation qui a tous les attributs de R1
sans aucun de ce de R2. Si R1 est vide la relation qui résulte est vide.
EXEMPLE :
R1 (Enseignement)
Enseignant Etudiant
Germain Dubois
Fidus Pascal
Robert Dubois
Germain Pascal
Fidus Dubois
Robert Durand
Germain Durand
R2 (Etudiant)
Nom
MODULE : SGBD Enseignante : Mme HIMEUR
Dubois
Pascal
R3
Enseignant
Germain
Fidus
Robert
EXERCICE :
- (Date_CNT=10/02/2015) contrat
- (Objet, montant) Contrat
- ((Objet, montant, nb_produit)((nb_produit 10 nb_Produit20))
- (N_CNT,objet)((Date_CNT2015/03/01)(2015/03/31)(montant10000)) Contrat
EXERCICE 2 :
On considère la BD AIR_Base :
Q1. Donner la liste des Avions dont la capacité est supérieure à 350 passager.
Q2. Quels sont les numéros et nom des avions localisé à Nice.
Q3. Quels sont les numéros des pilotes en services et les villes de départ de leurs vols.
Q4. Quels sont les avions (numéros et nom) localisé à Nice ou dont la capacité est inférieure à 300 passager.
Q5. Afficher la liste des vols au départ de Nice allant à Paris après 18H.
Q6. Quels sont les numéros des pilotes qui ne sont pas en service.
Q7. Quels sont les vols effectués par un avion qui n’est pas localisé à Nice.
Réponse :
CHAPITRE II : SQL
INTRODUTION :
1. REGLES GENERALES :
2. TYPES DE DONNEES :
Strings :
o Délimiteurs : ‘ ‘ ou ‘’ ‘’ (apostrophes ou guillemets droit)
o Il faut quotter les caractères spéciaux avec le \ (\t (tab), \’, \’’…)
TABLEAU RECAPITULATIFS :
REMARQUE :
3. LES OPERATEURS :
EXEMPLE :
INTERCLASSEMENT :
La table de caractères qui sera utilisé par la base de donnée : UTF8_general (tous types de caractères pour éviter
des problèmes).
EXEMPLE :
CREATE DATABASE test1 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci
SYNTAXE :
EXEMPLE :
EXEMPLE :
MODIFIER LE TYPE :
INSERT INTO [nom de la table] (Col1, Col2, Col3 …) VALUES (Val1, Val2, Val3 …).
REMARQUE :
Lorsque vous supprimez un ID dans une table avec la clause DELETE, il n’est jamais régénéré avec MYSQL.
Si vous ajoutez une ligne ou un enregistrement, MYSQL donne l’ID suivant. Pour régler ce problème on utilise la
clause TRUNCATE TABLE [nom de la table]. Exemple : TRUNCATE TABLE utilisateur.
SYNTAXE :
CLE PRIMAIRE :
PRIMARY KEY (Liste de cols).
CLÉ ÉTRENGÈRE :
FOREIGN KEY(Liste-Col1) REFERENCES table (Liste-Col2).
Les modifications automatiques à faire sur les clés étrangères en cas de changement de la clé primaire
associée par les clauses ONDELETE et ONUPDATE.
REMARQUE :
EXERCICE
Soit la base de données vente qui contient 03 tables :
SYNTAXE MINIMALE :
SELECT permet d’exprimer les projections, les restrictions, les jointures, les tris … etc.
R1 : Lister les données sur les produits dont le poids > 15.
R4 : Lister les produits dont le poids n’est pas compris entre 15 et 35.
Par défaut, les noms des colonnes de la table résultat de la requête sont les noms des colonnes spécifiés dans la
liste des colonnes du SELECT.
Il est possible de changer le nom de la colonne à l’affichage en accolant aux noms des colonnes choisis le prédicat
AS suivi du nouveau nom de colonne devant apparaitre à l’affichage.
R2 : Afficher les produits et leurs couleurs avec des noms de colonnes compréhensibles.
R3 : Afficher numéro, design, prix avec une TVA à 17% des produits.