Title: Initiation aux bases de donn
1Initiation aux bases de données et à la
programmation événementielle
- Cours N2
- Introduction au langage dinterrogation de
données.
Support de cours de Souheib BAARIR. Page web
pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/su
pport.htm E-mail souheib.baarir_at_u-paris10.fr
Université Paris Ouest Nanterre la
Défense. 2009-2010.
2BD relationnelle
- Relations et Algèbre relationnelle
- Représentation symbolique (mathématique) de
- haut niveau des intentions de lutilisateur.
- Sur une machine
- Représentation informatique des Relations ?
- Les Tables.
- Langage exprimant les Opérations Relationnelles
? - SQL
- SELECT att1,, attn
- FROM R1,,Rm
- WHERE Conditions
Requêtes de sélection de base
3Relations ? tables
A vert, jaune, rouge, B allumé, éteint,
C (vert, allumé),(vert, éteint), (rouge,
allumé)
Table B
Table C
B
allumé
éteint
A B
vert allumé
vert éteint
rouge allumé
4Tables rôles des champs
- Information (intrinsèque) définit une donnée
particulière. - Identifiant (Clé primaire) ensemble de champs
dont les valeurs - permettent de distinguer les enregistrements
les uns aux autres. Il peut - être simple (un seul champ) ou composé
(plusieurs champs). - Référence (Clé étrangère, Clé externe) champ
qui est clé - primaire dune autre relation.
code adresse ville Dép.
1 Paris 75
2 Versailles 78
3 Nanterre 92
4 Suresnes 92
nom prénom formation
MARTIN Marie MMIA
BERNARD Louis Gestion
THOMAS Alice Anglais
MARTIN Bernard Anglais
MARIE Philippe Gestion
N étudiant nom Prénom formation
105230 MARTIN Marie MMIA
105234 BERNARD Louis Gestion
105237 THOMAS Alice Anglais
105239 MARTIN Bernard Anglais
105250 MARIE Philippe Gestion
Référence adresse
2
3
3
2
4
ville Dép.
Paris 75
Versailles 78
Nanterre 92
Suresnes 92
5Structured Query Language (SQL)
- Plusieurs types de requêtes
- dinterrogation.
- de manipulation insert, update, delete
- de définition create, alter, drop
SELECT DISTINCT liste de champs FROM liste de
tables WHERE prédicats
- Une nouvelle Table
- mettant en relation plus tables,
- exhibant de nouvelles données,
- cachant des données inutiles,
-
GROUP BY ordre des groupes HAVING condition
ORDER BY liste de colonnes
6SQL produit Cartésien
TableR1
TableR2
PRODUIT(TableR1,TableR2)
ville dept
Rouen 76
Lyon 69
dept Région
28 Centre
69 Rhône-Alpes
TableR1TableR2
ville TableR1.dept TableR2.dept région
Rouen 76 28 Centre
Lyon 69 28 Centre
Rouen 76 69 Rhône-Alpes
Lyon 69 69 Rhône-Alpes
SELECT FROM TableR1,TableR2
7SQL Projection
étudiant
nom prénom formation adresse
MARTIN Marie MMIA Versailles
BERNARD Louis Gestion Nanterre
THOMAS Alice Anglais Nanterre
MARTIN Bernard Anglais Suresnes
le nom et prénom de tous les étudiants ?
étudiant-proj
PROJECTION (nom,prénom) (étudiant)
nom prénom
MARTIN Marie
BERNARD Louis
THOMAS Alice
MARTIN Bernard
SELECT nom, prénom FROM étudiant
8SQL Restriction
étudiant
toutes les informations sur les étudiants
Nanterrois ?
nom prénom formation adresse
MARTIN Marie MMIA Versailles
BERNARD Louis Gestion Nanterre
THOMAS Alice Anglais Nanterre
MARTIN Bernard Anglais Suresnes
RESTRICTION (adresse ?Nanterre?) (étudiant)
Étudiant-nanterrois
nom prénom formation adresse
BERNARD Louis Gestion Nanterre
THOMAS Alice Anglais Nanterre
9SQL Restriction et projection
étudiant
nom prénom formation adresse
MARTIN Marie MMIA Versailles
BERNARD Louis Gestion Nanterre
THOMAS Alice Anglais Nanterre
MARTIN Bernard Anglais Suresnes
le nom et prénom des étudiants Nanterrois.
PROJECTION (Nom,prénom) (RESTRICTION(adresse
?Nanterre?) (étudiant ))
identités étudiants nanterrois
nom prénom
BERNARD Louis
THOMAS Alice
SELECT nom, prénom FROM étudiant WHERE résidence
"Nanterre"
10SQL Produit Cartésien, restriction et
projection
étudiant
adresse
nom prénom formation
MARTIN Marie MMIA
BERNARD Louis Gestion
THOMAS Alice Anglais
MARTIN Bernard Anglais
MARIE Philippe Gestion
N étudiant Nom prénom formation
105230 MARTIN Marie MMIA
105234 BERNARD Louis Gestion
105237 THOMAS Alice Anglais
105239 MARTIN Bernard Anglais
105250 MARIE Philippe Gestion
Référence adresse
2
3
3
2
4
code adresse ville Dép.
1 Paris 75
2 Versailles 78
3 Nanterre 92
4 Suresnes 92
ville Dép.
Paris 75
Versailles 78
Nanterre 92
Suresnes 92
le nom, le prénom et la ville des étudiants qui
habitent le Haut-de-Seine.
PROJECTION (Nom,prénom)(RESTRICTION(référencecode
adresse et département 92) (PRODUIT(étudia
nt,adresse)))
Etudiants Hauts-de-Seine
SELECT étudiant.nom, étudiant.prénom,
adresse.ville FROM étudiant, adresse WHERE
(adresse.code adresseréférence adresse)
AND (adresse.département92)
nom prénom ville
BERNARD Louis Nanterre
THOMAS Alice Nanterre
MARIE Philippe Suresnes
11 Produit Cartésien, restriction et projection
détails des opérations (théoriquement)
PROJECTION(Nom,prénom,ville) (RESTRICTION(référen
cecode adresse et département 92)
(PRODUIT(étudiant,adresse)))
SELECT étudiant.nom, étudiant.prénom,
adresse.ville FROM étudiant, adresse WHERE
(adresse.code adresseréférence) AND
(adresse.département92)
N étudiant nom prénom formation référence code adresse ville département
105230 MARTIN Marie MMIA 2 1 Paris 75
105230 MARTIN Marie MMIA 2 2 Versailles 78
105230 MARTIN Marie MMIA 2 3 Nanterre 92
105230 MARTIN Marie MMIA 2 4 Suresnes 92
105234 BERNARD Louis Gestion 3 1 Paris 75
105234 BERNARD Louis Gestion 3 2 Versailles 78
105234 BERNARD Louis Gestion 3 3 Nanterre 92
105234 BERNARD Louis Gestion 3 4 Suresnes 92
N étudiant Nom prénom formation
105230 MARTIN Marie MMIA
105234 BERNARD Louis Gestion
105237 THOMAS Alice Anglais
105239 MARTIN Bernard Anglais
105250 MARIE Philippe Gestion
Référence
2
3
3
2
4
code adresse ville Dép.
1 Paris 75
2 Versailles 78
3 Nanterre 92
4 Suresnes 92
ville Dép.
Paris 75
Versailles 78
Nanterre 92
Suresnes 92
adresse
étudiant
Etudiants Hauts-de-Seine
nom prénom ville
BERNARD Louis Nanterre
THOMAS Alice Nanterre
MARIE Philippe Suresnes
12 Produit Cartésien, restriction et projection
problèmes
le nom, le prénom et le nom du département des
étudiants, qui habitent le Haut-de-Seine.
PROJECTION(Nom,prénom,ville) (RESTRICTION(référen
cecode adresse et département 92)
(PRODUIT(étudiant,adresse)))
SELECT étudiant.nom, étudiant.prénom,
adresse.ville FROM étudiant, adresse WHERE
(adresse.code adresseréférence) AND
(adresse.département92)
- Relation intermédiaire
- Construction denregistrements inutiles !
- Relation finale
- On ne peut pas rajouter denregistrements dans
la relation finale ! -
Solution la jointure.
13SQL Jointure
SELECT étudiant.nom, étudiant.prénom,adresse.vill
e FROM adresse, étudiant WHERE (adresse.code
adresseréférence) AND (adresse.département
92)
Ici, le nom de la table est obligatoire
La première clause de restriction
est presque équivalente à une jointure
SELECT étudiant.nom, étudiant.prénom,
adresse.ville FROM étudiant INNER JOIN adresse
ON étudiant.référence adresse.Code
adresse WHERE adresse.département 92
14Jointure détails des opérations
SELECT étudiant.nom, étudiant.prénom,
adresse.ville FROM étudiant INNER JOIN adresse
ON étudiant.référence adresse.Code
adresse WHERE adresse.département 92
code adresse ville Dép.
1 Paris 75
2 Versailles 78
3 Nanterre 92
4 Suresnes 92
nom prénom formation
MARTIN Marie MMIA
BERNARD Louis Gestion
THOMAS Alice Anglais
MARTIN Bernard Anglais
MARIE Philippe Gestion
N étudiant nom prénom formation
105230 MARTIN Marie MMIA
105234 BERNARD Louis Gestion
105237 THOMAS Alice Anglais
105239 MARTIN Bernard Anglais
105250 MARIE Philippe Gestion
Référence
2
3
3
2
4
ville Dép.
Paris 75
Versailles 78
Nanterre 92
Suresnes 92
105230 MARTIN Marie MMIA 2 2 Versailles 78
105234 BERNARD Louis Gestion 3 3 Nanterre 92
105237 THOMAS Alice Anglais 3 3 Nanterre 92
105239 MARTIN Bernard Anglais 2 2 Versailles 78
105250 MARIE Philippe Gestion 4 4 Suresnes 92