Introduction aux Bases de Données SGBD
Introduction aux Bases de Données SGBD
Bibliographie
Programme 1. Gardarin, Georges « Bases de données » Paris : Eyrolles, 2003
Chapitre 1 : Introduction aux base de données
Chapitre 2 : Les model des données 2. Hainaut, Jean-Luc « Bases de données : Concepts, utilisation et
développement » Paris : Dunod, 2009
- Model entité-association
Chapitre 3 : Model relationnel 3. Boudjlida, Nacer « Bases de données et systèmes d'informations : le
Chapitre 4 : Conception d’une base de données relationnelle modèle relationnel, langages, systèmes et méthodes : cours et
Chapitre 5 : Langage relationnel exercices corrigés », Paris : Dunod, 2003
- L’algèbre relationnelles. 4. Adiba, Claude Delobel Et Michel, « Bases de données et systèmes
- Langage SQL relationnels » , Paris : Bordas, 1982
Chapitre 6: Évaluation et optimisation des requêtes
Chapitre 7: L'organisation physique des SGBD 5. Miranda Serge ,Busta josé maria « L’art des base de données » tome1
Paris : Eyrolles, 1988.
1
01/02/2019
2
01/02/2019
3
01/02/2019
ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019
1 2 3
1
01/02/2019
5
© M.
ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019
7 8 9
2
01/02/2019
Définition et description des données : Définition et description des données : Evolution des SGBD
niveau logique (conceptuel) Niveau physique hiérarchique / modèle réseau ( 60-70)
□ Permet la description
• des objets : exemple OUVRAGES, ETUDIANTS
□ Description informatique des données et de leur relationnel (70-90)
• des propriétés des objets (attributs) : exemple cote de OUVRAGES, Titre de organisation : en terme de fichiers, d ’index, de méthodes
objet(90-200)
OUVRAGES, nombre d’exemplaires etc. d’accès, …
• des liens entre les objets : un OUVRAGE peut être emprunté par un
ETUDIANT Déductive (2000 ….
• des Contraintes : le nombre d’exemplaires d’un OUVRAGE est supérieur à zéro
O Cette description est faite selon un modèle de données. □ Passage du modèle logique au modèle physique tend à □ Quelques SGBD (relationnels du marché)
O Un modèle de données est un ensemble de concepts permettant de décrire la être assisté par le SGBD : transparent et/ou semi-
structure d'une base de données. La plupart des modèles de données incluent automatique
des opérations permettant de mettre à jour et questionner la base. Le OMicro : ACCESS, PARADOX, DBASE V, ...
modèle de données le plus utilisé est le modèle relationnel,
O Cette description va donner lieu à un schéma de base de données. Un schéma de base de
OGros système : DB2, ORACLE, SYBASE, INGRES, …
données se compose d'une description des données et de leurs relations ainsi que d'un □ Objectifs : optimiser les performances
ensemble de contraintes d'intégrité
MySQL ……..
ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019 ARIDJ MOHAMED UHBC 01/02/2019
16 17 18
3
01/02/2019
Modélisation
Interview
Entité association
Document
Schéma logique
en Entité-Association
Transformation
en relationnel
Schéma conceptuel
en relationnel
4
PLAN
Chapitre 2 1. Introduction :
2. Le modèle relationnel
MODÈLE RELATIONNEL 3. Conclusion
1. Inventé par Edgar [Link] (IBM) Publi ACM 1970 a) Propose des schémas de données faciles à utiliser.
2. Implémentations commercialisées dans les années 80 b) Améliore l'indépendance logique et physique.
[Link]é sur le concept mathématique : la relation c) Propose des langages de haut niveau pouvant être
utilisés par des non informaticiens.
[Link] BDs relationnelles s’adaptent pour les applications
classique et complexes d) Accès optimisé à base de données.
e) Améliore l'intégrité et la confidentialité.
[Link] grande partie des SGBD commercialisés sont
relationnels : ORACLE, SQL SERVER, MYSQL , ACCES….. f) Approche méthodologique dans la construction de la
base de données.
17:15 L2 BD [Link] ARIDJ Mohamed 3 17:15 L2 BD [Link] ARIDJ Mohamed 4
DOMAINE
ENSEMBLE DE VALEURS
• Exemples:
Concepts de base – ENTIER
– REEL
du – CHAINES DE CARACTERES
– EUROS
modèle relationnel – SALAIRE = {4 000..100 000}
– COULEUR= {BLEU, BLANC, ROUGE}
– POINT = {(X:REEL,Y:REEL)}
– TRIANGLE = {(P1:POINT,P2:POINT,P3:POINT)}
Page 1
PRODUIT CARTÉSIEN RELATION
• le produit cartésien sur D1x D2x ... x Dn est • sous-ensemble du produit cartésien d'une liste de
l'ensemble des tuples <V1,V2,....Vn> domaines
tels que VI DI • Une relation est caractérisée par un nom
Exemple
D1=nom ={B727, A320, Concord}
Exemple:
D2=capacité={100,200}
Nom = {B727, A320, Concord}
Capacité : entier naturel (0,1,2 ……..
• Groupe d'attributs minimum qui identifie d’ une • La clé primaire d'une relation est une de ses clés
manière unique chaque tuple de la relation candidates.
• Exemples: • Remarque :
– NSS DANS PERSONNE Pour signaler la clé primaire, ses attributs sont généralement
– NISS dans étudiant soulignés.
– Code_matière dans matière
• Remarque :
– Toute relation doit posséder au moins une clé candidate .
17:15 L2 BD [Link] ARIDJ Mohamed 11 17:15 L2 BD [Link] ARIDJ Mohamed 12
Page 2
Clé Etrangère représentation d’une relation
Exemple a) toutes les entrées d’une même colonne doivent être du même type.
• Remarque : b) Un non distinct doit être attribué à chaque colonne.
Voiture / propriétaire
c) Il y’a pas de lingues identiques
d) L’ordre des linges n’est pas significatif et de même pour les
colonnes.
17:15 L2 BD [Link] ARIDJ Mohamed 13 17:15 L2 BD [Link] ARIDJ Mohamed 14
• Consiste à définir un prédicat d’appartenance que • Consiste à lister tous les tuples de la relation.
tous les tuples de la relation doivent vérifiés.
• Exemple :
• R={(x,y) / (x N et y N et x mod y = 0)}
Page 3
Schéma de relation Base de données relationnelle
• Un schéma de relation est le nom de la
relation suivi de la liste des attributs. • Une base de données est relationnelle
lorsque son schéma est un ensemble de
• Exemple: schémas de relations
– Etudiant(NIS, Nom, prénom, adr , date_naiss,..) • Exemple
• Etudiant(Nis, Nom, prénom, adr , date_naiss,..)
• Matiére (Code-Matière, desig, coef, crédit)
Remarque • resultat(Niis code-matière, note)
Par convention, la clé primaire est soulignée
Conclusion Questions ?
Atrributs /Champs
Articles
Cardinalité
Page 4
PLAN
Chapitre 3 1. Introduction :
2. Rappel : Le modèle Entité-Association (E/R)
3. Passage du MCD-MLD
Conception d’une base de données
relationnelle 4. Conclusion
Modèle entité-association:
Modèle entité-association Introduction
: Introduction Modèle entité-association: Les concepts
II.1 Généralité
2.1 Classe d’Entité (entité , Individu, Objet).
modèle permettant la modélisation conceptuelle DB relationnelle.
Le Modèle E/A se concentre sur le concept de : Entité Une entité est une constituante concrète ou abstraite du
Dans ce chapitre on va aborder les concepts suivant s: mode réel
- Entités (et classes d’entités)
Une entité peut représenter : une personne , objet , lieu,
- Propriétés (aussi appelées attributs)
- Associations (ou classes d’association) statut, évènement ……
1
Modèle entité-association: Les concepts Modèle entité-association: Les concepts
Exemple 1:
Dans cet exemple deux classes d’entités : classe : étudiant et classe
L’étudiant Mohamed fréquente université UHBC
université
Mohamed est une occurrence de la classe étudiant
Exemple 2
UHBC est une occurrence de la classe université
Dans une entreprise qui achète et vend des produits
Modèle entité-association:
Les concepts
Les concepts Modèle entité-association: Les concepts
2.3 Association.
2.4 Propriété (Information, Attribut).
Lien sémantique entre une ou plusieurs entités. chaque entité
joue un rôle particulier. Donnée élémentaire permettant de décrire une entité ou une
Une association n’a pas une existence propre. association.
Cette donnée peut se mesurer par une valeur
Etudiant1 Exemple .
UHBC
Etudiant
2
Etudiant
3
Etudiant4
Etudiant
5
Etudiant Univesité
,N 1,
Frequente
2
Modèle entité-association: Les concepts Modèle entité-association: Les concepts
Association 0:1
Cardinalité d’une association : une entité de E1 peut être reliée à aucune ou à une seule entité de E2
E1 E2
N ,M N,M
A
Association 1:1
Etudiant Université
3 types d’association 1,1
fréquente
3
Modèle entité-association: Avantage Modèle entité-association: Inconvénients
Problèmes de validation
Un Attribut
Outils d’aide à la conception E/A disponibles 3. Une Propriété
4
Règles de passage MCD-MLD: Règles de passage MCD-MLD:
Association : (-,1) (-,1) Association :d’ordre >2
Equipes JOUEURS
5,n 1,1
N°Equipe Fait-Jouer N°Joueur
NomEquipe NomJoueur
Ville PrénomJoueur
Schéma Relationnel.
EQUIPES (N°Equipe, nomequipe, Ville, Entraineur)
JOUEURS (N°Joueur, N°Equipe, NomJoueur, PrénomJoueur)
17:15 L2 BD [Link] ARIDJ Mohamed 30
5
5. Les autres associations 5. Les autres associations
1,1 JOUEURS
EQUIPES 5,n Fait-Jouer
Cardinalités de la relation : x,n - x,n Modèle Conceptuel de Données N°Equipe
N°Joueur
NomJoueur
NomEquipe PrénomJoueur
Ville
Une Table ayant comme clé primaire la concaténation des Entraineur 0,n
0,n
0,n Matchs-Visiteurs
identifiants des entités qu'elle relie.
Matchs-Locaux A_JOUE
NbPointsMarqués
Matchs NbFautes
A-joué 0,n JOUEURS
Modèle Conceptuel de Données. N°Match
NbSpectateurs
0,n
NbPointsMarqués N°Joueur
NomJoueur
1,1
NbPtsLocaux NbFautes
PrénomJoueur EQUIPES 1,1 MATCHS
NbPtsVisiteurs JOUEURS 0,n
N°Equipe N°Joueur N°Match
NomEquipe N°Equipe NbSpectateurs
Ville NomJoueur NbPtsLocaux
MATCHS
Entraineur PrénomJoueur NbPtsVisiteurs
N°MATCH A_JOUE
NBSPECTATEURS N°MATCH
NBPTSLOCAUX N°JOUEUR
NBPTSVISITEURS NBPOINTSMARQUES
Modèle Logique Relationnel. NBFAUTES A_JOUE Modèle Logique de données
N°Joueur
JOUEURS N°Match
N°JOUEUR NbPointsMarqués
NOMJOUEUR NbFautes
6
PLAN
Chapitre 4 1. Introduction :
2. Dépendance fonctionnelle
Normalisation d’une base de 3. Formes normales
données relationnelle
Introduction Introduction
• On peut créer un modèle relationnel des données de •La normalisation est une approche formelle pour la
deux manières: conception des BD relationnelles.
1. Modèle E/A traduction en modèle relationnel
•La normalisation repose sur des règles pour placer les
2. Produit directement un modèle relationnel qui est ensuite attributs dans les relations.
raffiné pour s’assurer de sa qualité
Pourquoi la normalisation :
Page 1
DF Définitions : DF EXEMPLE
R(A1,A2,X..Y,An)
DF Propriétés Graphe de DF
• Nœuds = attributs
• Arcs = DF
Page 2
Graphe de DF DF ÉLÉMENTAIRE
• on note : DFE
DFE
X Y
DF ÉLÉMENTAIRE DF :DIRECTE
• Exemple • Une dépendance fonctionnelle X → Y est dite directe Si :
• Soit F={ NF NOMF,
NF PNOMF n'existe pas d'attribut ou d'ensemble d'attributs Z
NFADRF, tel que X → Z et Z → Y.
NF, NOMF ADRF}
• on note DFD :
DFE
X Y
Page 3
Fermeture transitive Couverture minimale
exemple • La couverture minimale d'un ensemble de dépendances
F={ MAT TYPE ,COULEUR fonctionnelles est un sous ensemble minimum de
TYPE MARQUE ,PUISS }
dépendances fonctionnelles élémentaires permettant de
• Par exemple générer toutes les autres.
MAT TYPE et TYPE MARQUE Donc MAT MARQUE
• La couverture minimale d'un ensemble F de DF est
F+={MAT TYPE ,COULEUR / TYPE MARQUE ,PUISS notée F^
MAT MARQUE/ MAT PUISS}
(PS: Graphe de DF)
• F^ = F - DF obtenues via les axiomes
17:16 L2 BD [Link] ARIDJ Mohammed 19 17:16 L2 BD [Link] ARIDJ Mohammed 20
1. Anomalie d'insertion
2. Anomalie de suppression
3. Anomalie de modification
17:16 L2 BD [Link] ARIDJ Mohammed 23 17:16 L2 BD [Link] ARIDJ Mohammed 24
Page 4
PREMIERE FORME NORMALE (1 NF) DEUXIEME FORME NORMALE ( 2NF)
R en 1NF tous les domaines de ses attributs sont atomique R en 2 NF 1. R est en 1NF
(simples, non multiples, non composées).
2. Toute dépendance fonctionnelle avec la clé est
élémentaire
Page 5
AUTRES FORMES NORMALES Conception d’une BD relationnel
Conception de
base de
QUATRIÈME FORME NORMALE (4NF) données
détermine un attribut.
Modèle
Modèle entité conceptuel de Le passage au
association modèle Dépendances Décomposition Formes
données fonctionnelles d’une relation normales
(E/A) (MCD) relationnel
CINQUIEME FORME NORMALE (5 NF)
Une relation est en 5 NF si et seulement si toute dépendance de
jointure est impliquée par les clés candidates de la relation. Un schéma de la base de données conforme au besoin et ne présentant pas d’anomalie.
3NF
Schéma
Monde information (R1,R2 ….
17:16 L2 BD [Link] ARIDJ Mohammed 33 17:16 L2 BD [Link] ARIDJ Mohammed 34
Page 6
Questions ?
Page 7
PLAN
L’algèbre relationnelle
Opérateurs ensemblistes L’algèbre relationnelle
• Union : opération portant sur deux relations ayant le même schéma et L’union (1)
construisant une troisième relation constituée des tuples appartenant à
chaque relation. Les tuples en double sont éliminer L’union de deux relations R1 et R2 de même schéma est une relation R
• Intersection : Opération portant sur deux relations ayant le même schéma et
de même schéma contenant l’ensemble des tuples appartenant à R1, à
construisant une troisième relation dont les tuples sont constitués de ceux R2 ou aux deux.
appartenant au deux relations
• Différence relationnelle : Opération portant sur deux relations ayant le même Notation : R1 U R2 ou union (R1, R2)
schéma et construisant une troisième relation dont les tuples sont constitués
de ceux ne se trouvant que dans une seule relation
Représentation graphique :
• Le produit cartésien : opération sur deux relations de schéma différents
construisant une troisième relation constituée des attributs appartenant à R
chaque relation et dont les tuples sont constitués de toutes les concaténations
des tuples des deux relations.
1
L’algèbre relationnelle L’algèbre relationnelle
L’union (2) L’intersection(1)
L’intersection de deux relations R1 et R2 de même schéma
est une relation R de même schéma contenant l’ensemble
R1 A B C R2 A B C des tuples appartenant à la fois à R1 et à R2.
a d 1 a d 1
b e 2 s e 4
c f 3 c d 3 Notation : R1 I R2 ou inter (R1,R2)
Représentation graphique : R
R=Union (R1,R2) A B C
a d 1 I
b e 2
c f 3
s e 4
c d 3
R1
17:16 L2 BD [Link] ARIDJ Mohamed 7 17:16 L2 BD [Link] ARIDJ Mohamed
R2 8
Représentation graphique :
R
R=Inter (R1,R2) A B C
a d 1
-
R1
R2
17:16 L2 BD [Link] ARIDJ Mohamed 9 17:16 L2 BD [Link] ARIDJ Mohamed 10
Représentation graphique :
R- T A B C
X
b e 2
c f 3
R
S
17:16 L2 BD [Link] ARIDJ Mohamed 11 17:16 L2 BD [Link] ARIDJ Mohamed 12
2
L’algèbre relationnelle L’algèbre relationnelle
Le produit cartésien (2) La division (1)
La division (ou quotient) de la relation R (A1, A2, …, An) par
la (sous-relation ) D de schéma D(A p+1, …, An) est la relation de
schéma Q (A1, A2, …, Ap) formée de Tous les tuples qui, concaténés à
R A B C S D E chaque tuple de S, donnent toujours un tuple de R.
a d 1 a d
b e 2 b e
c f 3 Notation : R / S ou div(R,S)
Représentation graphique :
RxS A B C D E Q
a d 1 a d
a d 1 b e
b e 2 a d ÷
b e 2 b e
c f 3 a d
c f 3 b e
R S
17:16 L2 BD [Link] ARIDJ Mohamed 13 17:16 L2 BD [Link] ARIDJ Mohamed 14
L’algèbre relationnelle
La division (2)
R A B C D
c S C D
a b c c d
f
a b e d f c d
b c e f e f
e d c d
e d e f
a b d e
R/S A B
a b
e d
3
L’algèbre relationnelle L’algèbre relationnelle
La Sélection (1) La restriction (2)
La sélection (ou restriction ) d’une relation R par un prédicat P est une relation S
de même schéma dont les tuples sont ceux de R qui satisfont à le prédicat R A B C
(condition) P. a d 1
b e 2
c f 3
P est un prédicat qui peut s’exprimer à l’aide de constante, d’attributs, de
comparateurs : (>, >=, <, <=,=,<>) et d’opérateurs logiques ( ,, )
Select (R)
Notation : select P (R) ou select (R/ P) s P ( R ) C < 4 et A <> ‘a’
Représentation graphique :
Select (R) A B C
C < 4 et A <> ‘a’
b e 2
P c f 3
17:16 L2 BD [Link]
R
ARIDJ Mohamed 19 17:16 L2 BD [Link] ARIDJ Mohamed 20
Notation proj Ai1, Ai2, …, Aip (R) / proj (R / Ai1, Ai2, …, Aip )
ou p Ai1, Ai2, …, Aip (R
proj A,B(R) A B proj A (R) A
a d a
Représentation graphique : b e b
c f c
Ai1, Ai2, …, Aip
L’algèbre relationnelle
L’algèbre relationnelle
La jointure (1)
La jointure (2)
La jointure de deux relations R et S selon un prédicat P est
l’ensemble des Tuples du produit cartésien R qui satisfont à la
condition du prédicat P.
R A B C S D E
Notation : joint P (R,S) a d b f
b
d
e
b e g
c f c
Représentation graphique
R (S)
B<D et A != C
P R
B<D et A != C
S A B C D E
a d b f d
b e g f d
R S
4
L’algèbre relationnelle L’algèbre relationnelle
L’équi-jointure La jointure naturelle (1)
R S A B C D E
B= D
a d d d f
R S
17:16 L2 BD [Link] ARIDJ Mohamed 25 17:16 L2 BD [Link] ARIDJ Mohamed 26
L’algèbre relationnelle
Problèmes liés à la jointure (1)
La jointure naturelle (2)
La jointure n’inclut les tuples que s’il y a égalité entre deux colonnes
R A B C S A B D Exemple : on désire la liste de tous les départements de l’entreprise avec les employés
a d s a d d Associés.
b e g a d g
c f c c f c Dpt Did Dnom Dville
D1 Achats Amiens
D2 Recherche Boves
D3 Ventes Ailly
D4 Informatique Dreuil
R S A B C D
a d s d Emp Eid Enom Epren Did
a d s g E10 Black John D3
c f c c E20 White Bob D3
E30 Léger Ferdinand D2
E40 Flam Captain D3
E50 Albator Roger D1
E60 DreamBox René D1
5
Agrégats : Exemple (1) Agrégats : Exemple(2)
Exemple
Arbre algébrique
PILOTE (NUMPIL, NOMPIL, ADR, SAL)
Q2 : Quels sont les numéros et noms des avions localisés à Nice ? R5.2 = Sélection (R5.1 / SAL > 15000)
R5.3 = Projection (R5.2 / NOMPIL)
R2.1 = Sélection (AVION / LOC = 'NICE')
Q6 : Quels sont les avions (numéro et nom) localisés à Nice ou
R2.2 = Projection (R2.1 / NUMAV, NOMAV)
dont la capacité est inférieure à 350 passagers ?
Q3 : Donnez toutes les informations sur les pilotes de la compagnie. R6.1 = Sélection (AVION / CAP < 350)
R6.2 = Projection (R6.1 / NUMAV, NOMAV)
R3.1 = PILOTE
R6.3 = Union (R2.2, R6.2)
( R2.2 est la relation générée pour Q2)
17:16 L2 BD [Link] ARIDJ Mohamed 35 17:16 L2 BD [Link] ARIDJ Mohamed 36
6
Q7 : Liste des vols au départ de Nice allant à Paris après 18h? Q10 : Donnez le numéro des vols effectués au départ de Nice par
des pilotes Niçois ?
R7.1 = Sélection (VOL / VILLE_DEP = 'NICE')
R10.1 = Sélection (PILOTE / ADR = 'NICE')
R7.2 = Sélection (VOL / VILLE_ARR = 'PARIS')
R10.2 = Jointure (R10.1, R7.1 / NUMPIL = NUMPIL)
R7.3 = Sélection (VOL / H_DEP > 18.00)
(R7.1 générée pour Q7)
R7.4 = Inter (R7.1, R7.2) R7.1 R7.2
R10.3 = Projection (R10.2 / NUMVOL)
R7.5 = Inter(R7.3, R7.4) R7.3 R7.4
Q11 : Quels sont les vols (NUMVOL) effectués par un avion qui
n'est pas localisé à Nice ?
Q8:Quels sont les numéros des pilotes qui ne sont pas en service ?
R11.1 = Sélection (AVION / LOC ≠ 'NICE')
R8.1 = Projection (PILOTE / NUMPIL)
R11.2 = Jointure (VOL, R11.1 / NUMAV = NUMAV)
R8.2 = Projection (VOL / NUMPIL)
R11.3 = Projection (R11.2 / NUMVOL)
R8.3 = Minus(R8.1 , R8.2) R8.1 - R8.2
13. Quels sont les pilotes (NUMPL) ayant effectuée au moins Q15 : Quels sont les pilotes (numéro et nom) habitant dans la
un vol sur toutes les avion de la compagnie ? même ville que le pilote Dupont ?
7
PLAN
1. Introduction
Chapitre 6
2. LMD: Langage de manipulation des données
Langage SQL
3. LDD: Langage de définition des données
(Structured Query Langage) 4. LCD: Langage de contrôle des données.
17:17 L2 BD [Link] ARIDJ Mohamed 3 /45 17:17 L2 BD [Link] ARIDJ Mohamed 4 /45
1
Langage de manipulation de donnée Langage de manipulation de donnée
requêtes de d’interrogation requêtes de d’interrogation
17:17 L2 BD [Link] ARIDJ Mohamed 7 /45 17:17 L2 BD [Link] ARIDJ Mohamed 8 /45
Projection Sélection
SQL
Algèbre relationnel SQL
Algèbre relationnel
Proj ( relation / A1, A2……An) SELECT A1,….A2 SELECT *
Select ( Relation / condition )
FROM relation FROM Relation
Where condition
Exemple :Lister les noms de tous les clients
Exemple : Trouver les clients de la ville de « Chlef »
SELECT NomC
FROM Client
SELECT *
FROM Client
WHERE Ville = 'Chlef‘
17:17 L2 BD [Link] ARIDJ Mohamed 9 /45 17:17 L2 BD [Link] ARIDJ Mohamed 10 /45
2
Langage de manipulation de donnée Langage de manipulation de donnée
requêtes de d’interrogation requêtes de d’interrogation
Requêtes imbriquées Utilisation des opérateurs ensembliste
FROM Produit
17:17 L2 BD [Link] ARIDJ Mohamed 13 /45 17:17 L2 BD [Link] ARIDJ Mohamed 14 /45
17:17 L2 BD [Link] ARIDJ Mohamed 15 /45 17:17 L2 BD [Link] ARIDJ Mohamed 16 /45
Jointure
SQL « donner la désignation de touts les
«Algèbre
• join relationnel
( R , S / condition )
SELECT * produit commandés en 2014 »
FROM R,S
Where condition
SELECT Desp
Exemple : « joindre client et commande sur le N°c » From Produit , Commande
Where ( DateC=2014)
SELECT *
and ([Link]=[Link])
FROM Client,Commande
WHERE Client.N°c=Commande.N°c
17:17 L2 BD [Link] ARIDJ Mohamed 17 /45 17:17 L2 BD [Link] ARIDJ Mohamed 18 /45
3
Langage de manipulation de donnée Langage de manipulation de donnée
requêtes de d’interrogation requêtes de d’interrogation
[Link] le nombre de clients de la ville de Chlef
• Fonction d’agrégation :
SELECT COUNT (*)
– MAX : Valeur maximale des éléments d'une colonne FROM Client
WHERE Ville = 'Chlef‘
– MIN : Valeur minimale des éléments d'une colonne
– AVG : Moyenne arithmétique des valeurs d'une
colonne [Link] le prix moyen des produits
– SUM : Somme des valeurs d'une colonne SELECT AVG (Prix) AS Moyenne
– COUNT : Nombre d'occurrences d'une colonne FROM Produit
17:17 L2 BD [Link] ARIDJ Mohamed 19 /45 17:17 L2 BD [Link] ARIDJ Mohamed 20 /45
INSERT INTO nom_table VALUES (val_1, val_2, ...) « Insérer à partir le la table Client tous les client
installés à Chlef dans la table Client_chlef »
Exemple :
Ajouter le nouveau produit (212, ' imprimante ', 98, 50, 'Alger') INSERT INTO Client_chlef
(SELECT * FROM Client WHERE (Ville= ‘Chlef’))
INSERT INTO Produit
VALUES ( 212, ' imprimante ', 98, 50, 'Alger')
17:17 L2 BD [Link] ARIDJ Mohamed 21 /45 17:17 L2 BD [Link] ARIDJ Mohamed 22 /45
17:17 L2 BD [Link] ARIDJ Mohamed 23 /45 17:17 L2 BD [Link] ARIDJ Mohamed 24 /45
4
Langage de manipulation de donnée Langage de manipulation de donnée
Langage de mise à jours de données Langage de mise à jours de données
3. Suppression de n-uplets : DELETE 4. Modifier le schéma d’une relation
4.1 ajouter un ou plusieurs attributs
DELETE FROM nom_table ALTER TABLE nom_table ADD
WHERE predicat ([nom_colonne1 type [contrainte]
([nom_colonne2 type [contrainte] ,
Exemple ...])
« Supprimer toutes les commandes avant 1/1/1997 » Exemple:
« Ajouter le champ Email à la table CLIENT »
DELETE FROM Commande
WHERE Date < '1/1/1997' ALTER TABLE CLIENT ADD
(Email VarChar(30) NOT NULL)
17:17 L2 BD [Link] ARIDJ Mohamed 25 /45 17:17 L2 BD [Link] ARIDJ Mohamed 26 /45
5
Langage de définition de données Langage de définition de données
Création d’une table (Exemple) Supprimer une table
« créer la table Client »
La syntaxe DROP TABLE nom_table
CREATE TABLE Client
(NC integer NOT NULL, PRIMARY KEY,
Exemples :
NomC VarChar(20) NOT NULL, Supprimer table Client
AdrC VarChar(50) NOT NULL,
DROP TABLE Client
CP integer NOT NULL,
Ville VarChar(30) ,
Tél VarChar(10))
17:17 L2 BD [Link] ARIDJ Mohamed 31 /45 17:17 L2 BD [Link] ARIDJ Mohamed 32 /45
– privilege = {SELECT|INSERT|UPDATE|DELETE|…
Destruction totale d'une base de données
|ALTER|DROP|ALL}
17:17 L2 BD [Link] ARIDJ Mohamed 33 /45 17:17 L2 BD [Link] ARIDJ Mohamed 34 /45
17:17 L2 BD [Link] ARIDJ Mohamed 35 /45 17:17 L2 BD [Link] ARIDJ Mohamed 36 /45
6
Q1: Donnez la liste des avions dont la capacité est supérieure à Q3 :
350 passagers. a) Donnez toutes les informations sur les pilotes de la compagnie.
17:17 L2 BD [Link] ARIDJ Mohamed 37 /45 17:17 L2 BD [Link] ARIDJ Mohamed 38 /45
Q4:
a) Donner le salaire moyen des pilotes de la compagnie. Q5: Quel est le nom des pilotes domiciliés à Paris dont le salaire
est supérieur à 15000 ?
SELECT NOMPL FROM PILOTE SELECT NOMPIL FROM PILOTE WHERE (ADR=PARIS)
WHERE SAL = SELECT MAX(SAL) FROM PILOTE
and (SAL >1500)
SELECT NOMPIL FROM PILOTE WHERE (ADR=PARIS)
INTERSECT
SELECT NOMPIL FROM PILOTE WHERE (SAL >1500)
17:17 17:17 L2 BD [Link] ARIDJ Mohamed 40 /45
L2 BD [Link] ARIDJ Mohamed 39 /45
Q6 : Quels sont les avions (numéro et nom) localisés à Nice ou Q7 : Liste des vols au départ de Nice allant à Paris après 18h?
dont la capacité est inférieure à 350 passagers ?
R7.1 = Sélection (VOL / VILLE_DEP = 'NICE')
R7.2 = Sélection (VOL / VILLE_ARR = 'PARIS')
SELECT NUMAV, NOMAV FROM AVION WHERE (CAP < 350) R7.3 = Sélection (VOL / H_DEP > 18.00)
OR LOC =‘NICE’ R7.4 = Inter (R7.1, R7.2) R7.1 R7.2
R7.5 = Inter(R7.3, R7.4) R7.3 R7.4
17:17 L2 BD [Link] ARIDJ Mohamed 41 /45 17:17 L2 BD [Link] ARIDJ Mohamed 42 /45
7
Q8:Quels sont les numéros des pilotes qui ne sont pas en service ? Q9 : Quels sont les vols (NUMVOL) effectués par un avion qui
n'est pas localisé à Nice ?
R8.1 = Projection (PILOTE / NUMPIL)
R9.1 = Sélection (AVION / LOC ≠ 'NICE')
R8.2 = Projection (VOL / NUMPIL)
R9.2 = Jointure (VOL, R9.1 / NUMAV = NUMAV)
R8.3 = Minus(R8.1 , R8.2) R8.1 - R8.2
R9.3 = Projection (R9.2 / NUMVOL)
8
01/02/2019
PLAN
• Introduction
Chapitre 7
Evaluation et Optimisation de • Traitement des requêtes
requêtes • Optimisation de requêtes
• Coût total = coût I/O (entrées/sorties) + coût CPU • On passe d'une expression à une autre
équivalente en utilisant des :
On peut négliger le coût CPU : coût I/O = 1000 coût CPU
« règles de réécriture »
1
01/02/2019
Cn
C2
C1
C1 et C2
et Cn
C2
C1
C2
Cn
L1
L
L2
C
L1
Ln
a) si C porte sur R :
C C
C
R S S R
P
P C
R S S
R
2
01/02/2019
C) si C = C1 and C2 : C1 porte R et C2 S
b) si C porte sur S :
SELECTION C(Join (R , S/ P) = Join (SELECTION C(R), S /P) SELECTION C(Join (R , S/ P) = Join (SELECTION C(R), S /P)
C C=C1 and C2
P P
C C1 C2
P P
R S R R S
S R S
PROJECTION L(join (R , S / P ) =Join ( PROJECTION L (R) ,S / P) ROJECTION L(join (R , S / P ) =Join ( S,PROJECTION L (S) / P)
L P L P
L L
P P
S
R S R R S R S
o o
L=L1UL2
P
R S R
S
L1 L2
P
R S R S
3
01/02/2019
o
o o
C
o
R
o
o C C
R S
R S S T
R S
PROJECTION L(R O S) =( PROJECTION L(R)) O ( PROJECTION L(S)) Etape2 : Descendre les opérations de sélection le plus bas possible dans
l'arbre (règles 2, 4, 6 et 10)
Etape3 : Réarranger les feuilles de l'arbre pour évaluer les sélections les
plus restrictives d'abord (règle 9)
o L1 L1
Etape5 : Faire des projections le plus tôt possible dans l'arbre pour
manipuler seulement l'information intéressante (règles 3, 4, 7 et 11)
R S R S
Etape6: Identifier les sous arbres qui peuvent être exécutés par un seul
algorithme (les sélection - projection - jointure par exemple)
« Lister les noms des étudiants et des titres des livres pour tous les prêts d'avant le Nom, titre Projection
'15/06/2004' »
SELECT nom, titre ncarte=ncarteP &
FROM Prêt, Lecteur , Livre code=codeP & Sélection
date<15/06/2004
WHERE Prê[Link]=[Link] AND
SQL
Pré[Link] =[Link] AND
date < '15/06/2004‘; Jointure sue Col
Jointure sur
NuE
Livre
R1 Join (Prêt , Etudiant/ Prê[Link]=[Link]
A.L R2 Join (R1, Livre/ [Link]=[Link]) Prêt Etudiantr
4
01/02/2019
code=codeP
Règle R1
date<15/06/2004
ncarte=ncarteP Livre
Livre
date<15/06/2004 Lecteur
code=codeP code=codeP
nom,titre,code,codeP
nom,codeP titre,code
Livre
ncarte=ncarteP Livre ncarte=ncarteP
Prêt Prêt
nom, titre
nom, titre
code=codeP
code=codeP
nom,codeP titre,code
nom,codeP titre,code
ncarte=ncarteP
ncarte=ncarteP Livre
Livre
nom,codeP,ncarte,ncarteP
codeP,ncarteP nom,ncarte
5
01/02/2019
Arbre de la requête
groupage des opérateurs unaires autour des op. binaires
nom, titre
Le groupage détermine l'ordre d'exécution:
- on commence par les groupes feuilles code=codeP
- un groupe ne peut être évalué qu'après equi-
exécution de ses groupes fils. join
nom,codeP titre,code
ncarte=ncarteP equi-
join Livre
scan
codeP,ncarteP nom,ncarte
date<15/06/2004 Lecteur
scan scan
Prêt