Les pointeurs : Adressage direct

publicité
Bases de données
Licence IRX
Bernard Caron
2008-2009
B. Caron
Présentation
9 heures de cours
12 heures de TD et TP
1 contrôle de TP de 1h30
1 contrôle
Pré-requis : aucun
Contact : [email protected]
2
B. Caron
déroulement
1 : intro
2 : Dépendances fonctionnelles + TD
3 : Entités Association +TD
4 : Modélisation logique + TD
5 : Langage de manipulation + TD
6 : TP SQL
7 : TP SQL
8 : Exam TP
3
B. Caron
Plan du cours
Introduction
Modélisation conceptuelle
Modélisation Logique
Description des relations en SQL
Pour aller plus loin
4
B. Caron
Bibliographie
• Pierre Crescenzo
http://www.crescenzo.nom.fr/CMBasesDeDonnees/
• Georges Gardarin
http://perso.wanadoo.fr/georges.gardarin/
• Sébastien Choplin
http://www.laria.u-picardie.fr/~choplin/enseignement/DB_IUP1.pdf
• MySQL
http://dev.mysql.com/doc/mysql/fr/
5
B. Caron
Introduction
•
•
•
•
•
•
•
•
Exemple
Limites des fichiers
BD SGBD
Propriétés
Les types d’utilisateurs
Architecture
Les différents types de SGBD
Historique
6
B. Caron
Introduction – exemples
•
•
•
•
•
•
•
gestion d'entreprise (stocks, personnels, clients…)
banques (comptes, emprunts…)
systèmes de réservation (avions, trains, spectacles…)
bibliothèques, vidéothèques, médiathèques…
bureautique (agendas, répertoires, photos, courriers…)
géographie (cartes routières, cartes maritimes…)
informatique (programmes, documentations…)
7
B. Caron
Introduction – exemples
• Agence de presse gère ses reportages et les photos
associées aux reportages ainsi que les auteurs des
photos et des reportages
• Un reportage est composé de plusieurs images, d’un
auteur et d’un texte ainsi que d’une date de parution.
Une image qui peut appartenir à plusieurs reportages
est composée de l’image elle-même, de son auteur
et d’une date.
• Les auteurs des images et des reportages sont
définis par leur nom et prénom.
• Plusieurs postes informatiques doivent avoir accès à
ces informations, sous différents OS pour des usages
différents
8
B. Caron
Introduction – Limites des fichiers
• Application sur chaque poste
• Fichiers à partager entre les postes
auteurs
Exécutable 1
Images
Reportages
Exécutable 2
Exécutable 3
9
B. Caron
Introduction – Limites des fichiers
• Problèmes à résoudre
– Données
• Modifications concurrentes
• Peu fiables et redondantes
– Maintenance logicielle et matérielle
– Evolution
• Format propriétaire des fichiers
• Format propriétaire de l’accès
• Complexité de l’application
– Changement de l’application
10
B. Caron
Introduction – BD SGBD
• Base de donnée et Système de Gestion de Base de Données
Base de données
SGBD
Filtres d’accès
Logiciel 1
Logiciel 2
Logiciel 3
11
B. Caron
Introduction – BD SGBD
• Base de données : ensemble d’informations :
–
–
–
–
exhaustives,
non redondantes,
structurées,
persistantes
12
B. Caron
Introduction – BD SGBD
• SGBD, un logiciel :
–
–
–
–
décrire
modifier
interroger
administrer
les données d'une base de données.
Son langage d’interrogation est normalisé
13
B. Caron
Introduction – BD SGBD
• Problèmes résolus
– Données
• Modifications concurrentes : SGBD s’en charge
• Peu fiables et redondantes : SGBD s’en charge
– Maintenance : matériel et logiciel SGBD peuvent
être changés de manière transparente
– Evolution
• Format propriétaire des fichiers : SGBD s’en charge
• Format propriétaire de l’accès : SGBD s’en charge
• Complexité de l’application : normalisation de l’accès
– Changement des applications : possible sans
changer la bdd
 Indépendance traitement et données
14
B. Caron
Introduction – BD SGBD
• Avantages BDD
– Information n'est stockée qu'une seule fois
– Une seule source d’information pour toutes les applications
– Contrôle de l’accès par des vues différentes
• Avantages SGBD
–
–
–
–
–
Centralisation des données = intégrité des données
Contrôle centralisé de l'accès aux données = Sécurité
Traitements puissants = rapidité de développement
Traitements non prévus par les applications
Indépendance vis-à-vis de la structure physique et logique
des données = maintenance facilitée
15
B. Caron
Introduction – Propriétés
•
•
•
•
•
•
•
•
La BD doit correspondre à la réalité qu'elle modélise :
description des données
Pas de redondance d'information dans la BD, physiquement à
un seul endroit.
Le SGBD doit être indépendant du stockage physique
LE SGBD doit posséder des fonctions de consultation et de
mise à jour.
Le SGBD doit pouvoir gérer plusieurs accès simultanés
Accès rapides (améliorations possibles indépendantes de
l’application)
Toutes les données ne sont pas accessibles à tous les
utilisateurs
Tolérance aux problèmes matériels, logiciels ou humains.
16
B. Caron
Introduction – Types d’utilisateurs
•
•
•
•
•
•
•
Utilisateurs inconscients
Utilisateurs conscients
Utilisateurs confirmés requêtes
Concepteurs
Développeurs d’application
Administrateurs de BD
Développeurs de SGBD
17
B. Caron
Introduction : différents niveaux
• Niveau externe :
– Environnement de Programmation,
Interface conviviales : outils d’aides,
de saisie et d’impression
• Niveau logique:
– Structure des données, consultation
et mise à jour. Confidentialité et
intégrité des données
• Niveau physique :
– Mémoire, fichiers, concurrence
d’accès, reprises sur pannes, fiabilité
18
B. Caron
Introduction - Architecture
• Architecture clients/serveur pour les données (2 tiers)
Base de données
SGBD
Filtres d’accès
Logiciel 1
Logiciel 2
Logiciel 3
19
B. Caron
Introduction - Architecture
• Architecture clients/serveur données et Application (3 tiers)
Serveur d’applications
Base de données
Application 1
Application 2
SGBD
Application 3
Navigateur
WEB
Navigateur
WEB
Navigateur
WEB
20
B. Caron
Introduction - Différents types de SGBD
• SGBD hiérarchique
– Données sous forme d’arbre
– Utilisation de pointeurs
Reportages
Reportages_1
Auteur Texte Photo
21
Texte_1
Photos
Auteur Image
Date
Auteur Image
Date
Auteur Image Date
B. Caron
Introduction - Différents types de SGBD
• SGBD Réseau
– Données sous forme de graphe quelconque
– Utilisation de pointeurs
– Evite la dissymétrie
Reportages_1
Texte_1
Photos
Auteur Image
Date
Rep
Auteur Image
Date
Rep
22
B. Caron
Introduction - Différents types de SGBD
• SGBD Hiérarchique
– Dissymétrie (hiérarchique)
– Application liée à l’implantation physique (pointeurs)
– Pas de partage des données
• SGBD Réseau
– Application liée à l’implantation physique (pointeurs)
– Langage de manipulation complexe
23
B. Caron
Introduction - Différents types de SGBD
• SGBD relationnel
– Tables (lignes colonnes)
– Plus de pointeurs
– Langage non procédural de manipulation
Reportage ( auteur, texte, photos)
Photo (auteur,laphoto,date)
Reportage, Photo sont des relations
24
B. Caron
Introduction - Historique
1961
Premiers systèmes IDS (Integrated Data Storage) modèle réseau
1965
Fichiers et modèle hiérarchique IMS (Information Management System).
IMS devient IMS DB/DC (DataBase/DataCom) modèle réseau.
1970
Modèle relationnel
1974
Méthode Merise Entité/Relation
1975
SGBD relationnels expérimentaux : INGRES
SGBD fichiers sur micro : dbase
1980
SGBD relationnels commerciaux : Oracle, DB2, MySQL, Postgres
1990
SGBD orientés objet expérimentaux
25
B. Caron
Introduction - Modélisation
•
Nécessité d’utiliser des méthodes de conception de bases de
données
• Systématiques
• Permettent la réutilisation
Méthodes les plus possible indépendantes du SGBD
Méthodes permettant de décrire le monde réel
•
•
26
B. Caron
Modélisation conceptuelle - les étapes
•Etapes de modélisation
Monde réel
Etape 1 de modélisation conceptuelle
•UML
•Dépendances fonctionnelles puis
Entité/Association
Ne dépend pas du SGBD
Etape 2 de modélisation logique
•Relationnel
•Objet
Dépend su SGBD
27
Modèle conceptuel
Vue 1
Modèle logique
Vue 2
Implantation
B. Caron
Chap 1 : Modélisation conceptuelle
•
•
•
•
•
Etapes de la modélisation
Dictionnaire des données
Dépendances fonctionnelles
Modèle Entité/Association
Passage DF vers EA
28
B. Caron
Modélisation conceptuelle – les étapes
Dictionnaire des données
Dépendances fonctionnelles
Modèle Entité/Associations
29
B. Caron
Mod. conceptuelle – dic. des données
Donnée :
Information quelconque
Suppression des synonymes
Vérifier que 2 données différentes ont un nom différent
Enlever les données inutiles
Enlever les paramètres
Enlever les données calculables
Donner le domaine des données restantes
On peut conserver des données calculables pour des raisons de
temps de calcul, mais à faire lors de l’optimisation, à la fin.
30
B. Caron
Mod. conceptuelle – dic. des données
synonyme
inutile
paramètre
calculable
Date
naissance
Age
*
Nbre enfants
*
Nbre Filles
Nbre garçons
Nombre total
d’enfants
Couleur des
cheveux
31
*
Part fiscale
enfant
*
Part fiscale
adulte
*
B. Caron
Mod. conceptuelle – dic. des données
domaine
Date naissance
Nbre Filles
Nbre garçons
2N-2N-4N
2N
2N
32
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Dépendance fonctionnelle :
Lien d’une donnée source vers une donnée cible.
Tel que à une source correspond une seule cible
• Représentation graphique :
Source
N° étudiant
Cible
Nom étudiant
Nom de famille
Livre emprunté
Livre emprunté
N° étudiant
33
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Représentation sous forme de matrice :
Sources ->
V Cibles V
Nom
étudiant
Nom
étudiant
N°
étudiant
*
1
N°
étudiant
*
Age
1
Age
*
34
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Règles 1 :
– Une ligne qui n’est pas une source ne doit avoir qu’un 1 (1 seul
antécédent)
• Graphiquement :
N° étudiant
N° INSEE
Nom étudiant
N° étudiant
N° INSEE
Nom étudiant
35
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Règles 2 :
– Recherche des données isolées (pas de 1 dans une ligne de la
matrice)
– Combiner 2 sources
• Graphiquement :
N° étudiant
Cours
Note
36
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Règles 3 :
– Suppression des dépendances implicites
• Graphiquement :
N° étudiant
N° INSEE
Nom étudiant
37
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Règles 4 :
– Recherche des dépendances entre sources (avec ou sans données
associées)
– Ajouter une donnée
Date
• Graphiquement :
Appartenance
Etudiant
Nom étudiant
Groupe
Nom Groupe
38
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
• Résumé de la démarche graphique:
– Mettre un lien entre les sources et les cibles
– Bien vérifier qu’à une source correspond une seule cible
– Recherche des données isolées : 2 sources sont
nécessaires
– Recherche des dépendances entre 2 sources
– Suppression des dépendances implicites
– Souligner les sources
39
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
•
Exemple
– Une agence de presse gère ses reportages et les photos associées aux reportages ainsi
que les auteurs des photos et des reportages
– Un reportage est composé de plusieurs images, d’un auteur et d’un texte ainsi que d’une
date de parution. Une image qui peut appartenir à plusieurs reportages est composée de
l’image elle-même, de son auteur et d’une date.
– Les auteurs des images et des reportages sont définis par leur nom et prénom.
40
Num_rep 10N
Num_image 12N
Num_auteur 5N
Texte 10000C
Date_rep 2N+2N+4N
Date_image 2N+2N+4N
Image 1000000C
Nom 20C
Prénom 20C
B. Caron
Mod. Conceptuelle – Dep. fonctionnelles
Num_rep
Num_auteur
Prénom
Date_Rep
Nom
Num_image
Appartenance
Date_image
41
Image
B. Caron
Mod. Conceptuelle – Entité Association
• Entité :
–
–
–
–
–
Objets ou individus du monde réel
Plusieurs occurrences de l’objet
Nom du type de l’objet
Un ou des identifiants (soulignés)
Des propriétés
Les propriétés viennent du dictionnaire
Les identifiants permettent de distinguer
de manière unique les occurrences de l’objet
= clé
Etudiant
numero_e
nom
prénom
42
B. Caron
Mod. Conceptuelle – Entité Association
Association :
– Regroupement entre 2 ou plusieurs entités
– On lui donne un nom
Etudiant
Livre
numero_e
nom
prénom
numero_l
auteur
titre
emprunter
43
B. Caron
Mod. Conceptuelle – Entité Association
– On indique la cardinalité
– On peut ajouter des attributs
Etudiant
numero_e
nom
prénom
(Emprunte)
0..n
(est emprunté par)
Emprunter
emprunter
date
0..1
Livre
numero_l
auteur
titre
44
B. Caron
Mod. Conceptuelle – Entité Association
– L’association de plusieurs entités est possible
Livre
(est emprunté par)
0..1
Etudiant
numero_e
nom
prénom
numero_l
auteur
titre
(Emprunte)
Biliothèque
0..n
emprunter
0..n
numero_b
lieu
(accueille des emprunteurs)
45
B. Caron
Mod. Conceptuelle – DF vers EA
Num_rep
Auteur
Num_auteur
Prénom
Date_Rep
Nom
Num_auteur
Prénom
Nom
0..n
1..1 Reportage
Rédiger
0..n
Num_image
Num_rep
Date_rep
0..n
Ajout
Créer
Date_image
Image
1..1
Ajout
Image
Num_image
Date_image
Image
0..n
Une source élémentaire -> identité + clé
Une source vers plusieurs cibles elles-mêmes sources -> identité plus clé des cibles
Cible terminale -> attribut
DF entre identifiants -> Association
46
B. Caron
Mod. Conceptuelle – DF vers EA
– Autres cas
N° étudiant
N° cours
N° Cours
Note
Num_auteur
Prénom
Nom
1..n
1..n
Noter
Note
Etudiant
N° étudiant
Date_rep
47
B. Caron
Chap 2 : Modélisation logique
• Modèle relationnel
• Passage E-A -> modèle relationnel
• Normalisation
48
B. Caron
Modélisation logique - Modèle
• Modèle relationnel
– Mod. Conceptuelle : Entités-Associations
– Bdd relationnelles
– Normalisé : SQL
• Modèle objet
– Mod. Conceptuelle : UML
– Bdd objet
– Normalisé : SQL
49
B. Caron
Modélisation logique - Modèle
• Produit cartésien D1 X D2 X D3
– D1 D2 D3 : ensembles
– les tuples <V1,V2,V3> tels que :
V1  D1 , V2  D2 , V3  D3
• Exemple :
– D1={Eléphant,Souris} D2={Grand, Petit} D3 = {Mammifère, Oiseau}
– <Eléphant, Grand, Mammifère> <Souris, Petit, Mammifère>
• Graphiquement :
Elephant
Souris
Grand
Petit
Mammifère
Oiseau
50
B. Caron
Modélisation logique - Modèle
• Relation : table à 2 dimensions
Attribut
Collection
Nom de la relation
Animal
Taille
Genre
Eléphant
Grand
Mammifère
Souris
Petit
Mammifère
51
B. Caron
Modélisation logique - Modèle
• Clé :
– Un ou plusieurs attributs permettant de
distinguer chaque tuple (la connaissance
de la clé permet d’identifier un tuple
unique)
– Toute relation doit posséder une clé
– Dans l’exemple, clé : Animal
52
B. Caron
Modélisation logique - Modèle
•
Clé candidate :
–
–
–
–
Une clé candidate d'une relation est un
ensemble minimal des attributs de la relation
dont les valeurs identifient à coup sûr une
occurrence.
La valeur d'une clé candidate est donc distincte
pour toutes les occurrences.
La notion de clé candidate est essentielle dans
le modèle relationnel.
Toute relation a au moins une clé candidate et
peut en avoir plusieurs.
53
B. Caron
Modélisation logique - Modèle
•
Clé primaire :
–
La notion de clé primaire est moins importante que
celle de clé candidate dans le modèle relationnel.
La clé primaire peut être choisie arbitrairement
mais le contexte aide souvent à déterminer laquelle
des clés candidates doit être considérée comme
clé primaire.
Pour signaler la clé primaire, ses attributs sont
soulignés.
–
–
54
B. Caron
Modélisation logique - Modèle
•
Clé étrangère
–
Une clé étrangère d'une relation est formée d'un
ou plusieurs de ses attributs qui constituent une
clé candidate dans une autre relation on met un
# devant l’attribut.
55
B. Caron
Modélisation logique - Modèle
• Schéma d’une relation
Nom de la relation
Nom des attributs
Les Clés
• Notation
Liste des attributs
– Collection (Animal, Taille, Classification)
Nom de la relation
56
Clé primaire : soulignée
B. Caron
Modélisation logique - Modèle
• Clé étrangère
– Exemple :
Image(Num_image,Date_image,Image
Reportage(Num_rep,Date_rep,Texte)
Ajout(#Num_rep,#Num_image)
Clé étrangère
57
B. Caron
Modélisation logique - Passage E-A -> Mod. R
•
•
Entité correspond Association
Relation correspond Association si aucune cardinalité maximale 1
Si clé : conservée, sinon on concatène les clé des entités associées
Auteur
Num_auteur
Prénom
Nom
0..n
1..1 Reportage
Rédiger
0..n
Num_rep
Date_rep
0..n
Image(Num_image,Date_image,Image)
Reportage (Num_rep,Date_rep)
Auteur (Num_auteur, Prénom,Nom)
Ajout (Num_rep,Num_image)
Créer
1..1
Ajout
Image
Num_image
Date_image
Image
Clé formée des 2 attributs
0..n
58
B. Caron
Modélisation logique - Passage E-A -> Mod. R
•
Relation correspond Association avec cardinalité maximale 1
on ajoute à la relation (correspond à la card. 1) comme attribut la clé de la
relation qui a une cardinalité >1
Auteur
Num_auteur
Prénom
Nom
0..n
1..1 Reportage
Rédiger
0..n
Num_rep
Date_rep
Image(Num_image,Date_image,Image, Num_auteur)
Reportage (Num_rep,Date_rep,Num_auteur)
Auteur (Num_auteur, Prénom,Nom)
Ajout (Num_rep,Num_image)
0..n
Créer
1..1
Ajout
Image
Num_image
Date_image
Image
0..n
59
B. Caron
Modélisation logique - Normalisation
• Première forme normale (1NF):
– Un attribut d’une relation ne doit pas pouvoir
prendre plusieurs valeurs
– Solution : créer une autre relation
– Exemple :
Machine(Num_machine,Date_instal, logiciel)
Devient :
Machine(Num_machine,Date_instal)
logiciel(Num_Logiciel, Num_machine)
60
B. Caron
Modélisation logique - Normalisation
• Deuxième forme normale (2NF)
– Un attribut qui ne fait pas partie de la clé candidate ne
doit pas être dépendent d’une partie de la clé.
– Toute clé candidate a un seul attribut est forcément 2NF
– Solution : créer une relation pour enlever l’attribut
– Exemple :
Fournisseur (NomFourn, Article, Adresse, Prix)
NomFourn, Article  Prix et NomFourn  Adresse (manque Article)
Devient :
Fournisseur (NomFourn, Adresse)
Produit (NomFourn, Article, Prix)
61
B. Caron
Modélisation logique - Normalisation
• Deuxième forme normale (2NF)
– Exemple correct :
Ajout (Num_rep, Num_photo, date, Num_personne)
– Astuces :
Éviter les clés à 2 attributs
Éviter d’autres attributs que ceux de la clé
62
B. Caron
Modélisation logique - Normalisation
• Troisième forme normale (3NF) :
– chacun des attributs d’une relation qui ne fait pas partie
de la clé élémentaire est en dépendance fonctionnelle
élémentaire directe de la clé (pas de transitivité).
– Solution : 2 relations
– Exemple :
EMPLOYE (Matricule, Nom, Dep, NomDep)
Matricule  Dep  NomDep
Devient
EMPLOYE (Matricule, Nom, Dep)
EMPLOYE (Dep, NomDep)
63
B. Caron
Modélisation logique - Normalisation
• Relations de l’exemple :
Image(Num_image,Date_image,Image, Num_auteur)
Reportage (Num_rep,Date_rep,Num_auteur)
Auteur (Num_auteur, Prénom,Nom)
Ajout (Num_rep,Num_image)
Toutes 3NF (et donc 2NF et 1NF)
 La première étape de modélisation conceptuelle par
les DF doit normalement aboutir à des relations 3NF.
 Il existe d’autres formes normales
64
B. Caron
Chap 3 : SQL
•
•
•
•
•
Introduction
Description des relations
Modification des relations
Manipulation des données
Interrogation
65
B. Caron
SQL - Introduction
•
•
•
•
Il existe de nombreux langages, SQL est le
plus répandu
SQL = Structured Query Language
(langage de requête structuré).
Normalisation internationale et en constante
évolution
Utilisés dans de nombreux produits :
–
–
–
–
Oracle
SQL server (Microsoft)
Mysql
…
66
B. Caron
SQL - Introduction
•
SQL permet de supprimer créer modifier des relations dans
une base de données : langage de description des données
•
SQL permet de supprimer créer modifier des occurrences
dans une relation : langage de manipulation des données
•
SQL basée sur l’algèbre relationnelle sur laquelle SQL réalise
des opérations d’interrogation : langage d’interrogation des
données
•
•
•
l’algèbre relationnelle ne sera pas étudiée ici
On utilisera MySQL qui est un sous ensemble et ne respecte
pas complètement la syntaxe SQL
Manuel de référence :
http://dev.mysql.com/doc/mysql/fr/index.html
•
Manuel de la version 4.1 :
http://www.nexen.net/docs/mysql/annotee/manual.php
67
B. Caron
SQL – description des relations
Image(Num_image,Date_image,Image, Num_auteur)
Reportage (Num_rep,Date_rep,Num_auteur)
Auteur (Num_auteur, Prénom,Nom)
Ajout (#Num_rep,#Num_image)
Classique pour une clé
CREATE DATABASE agence
Image(Num_image,Date_image,Image, Num_auteur)
CREATE TABLE Image(Num_image INTEGER AUTO_INCREMENT,
Date_image DATE,
Image BLOB,
Num_auteur INTEGER,
RAW en SQL
PRIMARY KEY (NUM_image))
68
B. Caron
SQL – description des relations
Reportage (Num_rep,Date_rep,Num_auteur)
CREATE TABLE Reportage(
Num_rep INTEGER AUTO_INCREMENT,
Date_rep DATE,
Num_auteur INTEGER,
PRIMARY KEY (Num_rep))
Auteur (Num_auteur, Prénom,Nom)
CREATE TABLE Auteur(Num_auteur INTEGER AUTO_INCREMENT,
Prenom CHAR(20),
Nom CHAR(20),
PRIMARY KEY (Num_auteur))
69
B. Caron
SQL – description des relations
Ajout (#Num_rep,#Num_image)
CREATE TABLE Ajout(Num_rep INTEGER,
Num_image INTEGER,
PRIMARY KEY (Num_rep, Num_image))
Clé étrangère inexistante en MySQL
Selon le format de la table
70
B. Caron
SQL – modification des relations
Ajout (#Num_rep, #Num_image, date)
ALTER TABLE Ajout ADD Date_aj DATE
Ajout (#Num_rep,#Num_image)
ALTER TABLE Ajout DROP Date_aj
Suppression d’une table :
DROP TABLE Ajout
Suppression d’une base :
DROP DATABASE Agence
71
B. Caron
SQL – Manipulation des données
Auteur (Num_auteur, Prénom,Nom)
Ajout d’un tuple :
INSERT INTO Auteur VALUES (NULL, 'Jean', 'Blanc')
Modification d’un tuple
UPDATE Auteur SET Prenom='Paul' WHERE Prenom='Jean'
Suppression d’un tuple
DELETE FROM Auteur WHERE Prenom='Paul'"
72
B. Caron
SQL – Interrogation des données
INSERT INTO auteur VALUES
(NULL, 'Jean', 'Blanc'),
(NULL,'Claude','Blanc'),
(NULL,'Jean-Claude','Blanc'),
(NULL,'Jean','Noir'),
(NULL,'Claude','Noir')
SELECT * FROM auteur
73
B. Caron
SQL – Interrogation des données
SELECT * FROM auteur WHERE NOM= 'Noir'
SELECT * FROM auteur WHERE NOM= 'Noir' AND PRENOM= 'Jean'
74
B. Caron
SQL – Interrogation des données
reportages (Num_rep,Date_rep,Num_auteur)
INSERT INTO reportages VALUES
(NULL, '2005-08-31', '1'),
(NULL, '2005-06-25', '2'),
(NULL, '2005-06-01', '2'),
(NULL, '2005-03-01', '3'),
(NULL, '2005-03-01', '3')
SELECT * FROM reportages
75
B. Caron
SQL – Interrogation des données
image(Num_image,Date_image,Image, Num_auteur)
INSERT INTO image VALUES
(NULL, '2004-08-31', 'xxx', '2'),
(NULL, '2004-06-25', 'xxx', '5'),
(NULL, '2005-03-08', 'xxx', '3'),
(NULL, '2005-02-05', 'xxx', '4'),
(NULL, '2005-02-05', 'xxx', '1')
SELECT * FROM images
76
B. Caron
SQL – Interrogation des données
ajout (#Num_rep,#Num_image)
INSERT INTO ajout VALUES
('1', '2'),
('1', '3'),
('2', '1'),
('2', '2'),
('3', '4')
SELECT * FROM ajout
77
B. Caron
SQL – Interrogation des données
• Jointure de tables (partagent une clé)
select auteur.nom from auteur,reportage
where
auteur.Num_auteur=reportage.Num_auteur
78
B. Caron
Pour aller plus loin
• Optimisation
• Clés étrangères
79
B. Caron
Pour aller plus loin – Optimisation
• SELECT * FROM auteur WHERE nom = 'BLANC'
– Le SGBD regarde toutes les lignes pour retrouver
tous les 'BLANC‘
– Temps de réponse très lent
• Création d’un index dans la table
CREATE TABLE Auteur(Num_auteur INTEGER AUTO_INCREMENT,
Prenom CHAR(20),
Nom CHAR(20),
PRIMARY KEY (Num_auteur),
Index (Nom))
– Le SGBD crée en mémoire des blocs disques
– Ils contiennent des couples : index, numéro de bloc
– Accès plus rapide mais :
• Modification plus lente (création blocs et couples)
• Prend plus de place
80
B. Caron
Pour aller plus loin – Optimisation
• Utiliser les types les plus compacts possibles
(TINYINT, MEDIUMINT,INT)
• N’utiliser des SELECT que sur les
attributs utiles.
Exemple on veut les prénoms :
SELECT PRENOM FROM auteur WHERE NOM= 'Noir'
Préférable à :
SELECT * FROM auteur WHERE NOM= 'Noir'
81
B. Caron
Clés étrangères
Reportage (Num_rep,Date_rep,Num_auteur)
CREATE TABLE Reportage(
Num_rep INTEGER AUTO_INCREMENT,
Date_rep DATE,
Num_auteur INTEGER,
PRIMARY KEY (Num_rep)) TYPE=InnoDB
Image(Num_image,Date_image,Image, Num_auteur)
CREATE TABLE Image(Num_image INTEGER AUTO_INCREMENT,
Date_image DATE,
Image BLOB,
Num_auteur INTEGER,
PRIMARY KEY (NUM_image)) TYPE=InnoDB
Ajout (#Num_rep,#Num_image)
CREATE TABLE Ajout(Num_rep2 INTEGER,
Num_image2 INTEGER,
FOREIGN KEY (Num_rep2) REFERENCES reportage(Num_rep),
FOREIGN KEY (Num_image2) REFERENCES image(Num_image) )
TYPE=InnoDB
82
B. Caron
Téléchargement