auteur

publicité
Bases de données
relationnelles
Théorie, conception, mise en
œuvre avec MySQL
Objectifs
Etre capable de
• Créer d’une base de données.
• Créer des tables
• Exploiter les informations d’une base de données,
en utilisant les requêtes SQL
Un peu de vocabulaire

Une base de données est un
ensemble de données structurées.
Une base est
constituée d’au
moins une table
Un peu de vocabulaire
Chaque table
est composée
d’au moins un
enregistrement
Chaque enregistrement, d’au moins un champ
Exemple de table
noliv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
titre
Les chouans
Germinal
L'assommoir
La bête humaine
Les misérables
La peste
Les lettres persanes
Bel ami
Les lettres de mon moulin
César
Marius
Fanny
Les fleurs du mal
Paroles
Les raisins de la colère
Une composante d’un n-uplet
est une clé primaire lorsque
cette composante est
différente pour chaque nuplet de la table considérée.
auteur
Balzac
Zola
Zola
Zola
Hugo
Camus
Maupassant
Maupassant
Daudet
Pagnol
Pagnol
Pagnol
Baudelaire
Prévert
Steinbeck
genre
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
poésie
poésie
Roman
prix
8
7.5
9.5
7
10.5
11.2
14
7.6
10
10
6.5
7.2
13
12
13.5
Les informations doivent avoir la forme
de groupes de valeurs (appelés nuplets) pour pouvoir être stockés dans
la base.
Architecture d’un serveur de base de données
Serveur avec une adresse IP fixe
Postes clients
Internet
disque
Architecture d’un site WEB Dynamique
Serveur avec une adresse IP fixe
avec Base de données
Postes clients
Internet
disque
Travaux Pratiques
Gestion du Centre de documentation et
d’information du Lycée

Scénario : Pendant ce
deux casquettes :
Administrateur/programmeur
de la base de données
travail dirigé, vous allez avoir
Documentaliste
Travaux Pratiques
Mettre la casquette de l’administrateur




PREMIERE PARTIE
1 ) Installation et Présentation du serveur Mysql et de son
environnement (phpMyAdmin )
2) Création de la base de données CDI
3) Création des tables livre, personne et emprunt.
nopers : est une clef primaire.
Nolivre est une clef primaire
Dans la table emprunt : nopers et nolivre sont des clefs étrangères
personne
nopers : int
nom : varchar(30)
prenom : varchar(30)
classe : varchar(10)
livre
nolivre : int
titre : varchar(40)
auteur : varchar(30)
genre : varchar(30)
prix : float
emprunt
nopers : int
nolivre : int
sortie : date
retour : date
Travaux Pratiques
Mettre la casquette de l’administrateur


PREMIERE PARTIE
En utilisant le Concepteur de l’outil d’administration, vérifier les
relations entre les tables.
Travaux Pratiques
Mettre la casquette de la documentaliste
Saisir les données de la table livre

noliv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
titre
Les chouans
Germinal
L'assommoir
La bête humaine
Les misérables
La peste
Les lettres persanes
Bel ami
Les lettres de mon moulin
César
Marius
Fanny
Les fleurs du mal
Paroles
Les raisins de la colère
auteur
Balzac
Zola
Zola
Zola
Hugo
Camus
Maupassant
Maupassant
Daudet
Pagnol
Pagnol
Pagnol
Baudelaire
Prévert
Steinbeck
genre
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
Roman
poésie
poésie
Roman
prix
8
7.5
9.5
7
10.5
11.2
14
7.6
10
10
6.5
7.2
13
12
13.5
Travaux Pratiques
Mettre la casquette de la documentaliste
Saisir les données de la table personne
nopers
1
2
3
4
5
6
7
8
9
10
nom
Durand
Brieusel
Riois
Denayville
Planchon
Pène
Bert
Gonzales
Martin
Jourda
prenom
Jean-Pierre
Chantal
Lucas
Hélène
André
Gérôme
Jean-Pierre
Alain
François
Véronique
Classe
1TS
1TS
2SEC
2TS
2TS
2SEC
1TPRO
1TPRO
2TS
2TPRO
Travaux Pratiques
La documentaliste a enregistré les prêts suivants:
nopers
noliv
sortie
retour
4
14
01/02/2011
1
3
03/03/2011
30/03/2011
7
9
05/03/2011
21/03/2011
2
11
18/03/2011
3
3
30/03/2011
3
4
30/03/2011
8
7
31/03/2011
8
1
02/04/2011
15/04/2011
18/04/2011
Donner le nom de l’élève qui a emprunté le livre de Maruis de
Pagnol.
Donner les titres des livres empruntés par l’élève 8, son nom et
sa classe.
Les opérations possibles sur une
relation
:
PROJECTION
livre
noliv
1
2
3
4
5
titre
Les chouans
Germinal
L'assommoir
La bête humaine
Les misérables
auteur
Balzac
Zola
Zola
Zola
Hugo
genre
prix
Roman
Roman
Roman
Roman
Roman
8
7.5
9.5
7
10.5
Projection : On
SELECT ………,,,,,,,…… FROM livre
projette la table livre sur
les colonnes titre et
auteur.
titre
auteur
Les chouans
Germinal
L'assommoir
La bête humaine
Les misérables
Balzac
Zola
Zola
Zola
Hugo
13
Les opérations possibles sur une
relation
:
SELECTION
livre
noliv
1
2
3
4
5
titre
Les chouans
Germinal
L'assommoir
La bête humaine
Les misérables
auteur
Balzac
Zola
Zola
Zola
Hugo
genre
prix
Roman
Roman
Roman
Roman
Roman
8
7.5
9.5
7
10.5
SELECTION: On ne
sélectionne que les tuples
dont l’attribut auteur est
égale à ‘Zola’.
SELECT…………
FROM …………….. WHERE
………………………
titre
auteur
Germinal
L'assommoir
La bête humaine
Zola
Zola
Zola
14
JOINTURE
livre
noli
v
1
2
3
4
5
titre
Les chouans
Germinal
L'assommoir
La bête
humaine
Les misérables
auteur
Balzac
Zola
Zola
Zola
Hugo
genre
Roman
Roman
Roman
Roman
Roman
prix
8
7.5
9.5
7
10.5
nope
rs
1
2
3
nopers
noliv
sortie
retour
3
5
2011-0101
0000-00-00
1
3
2011-0106
0000-00-00
2
1
2012-0203
2012-03-03
nom
Durand
Brieusel
Riois
prenom
Jean-Pierre
Chantal
Lucas
Classe
1TS
1TS
2SEC
SELECT ……………………………………………………………………………………………………..
FROM …………………, …………………………………………., ……………………………
WHERE …………………………………… = "0000-00-00"
AND ……………………………………. = ……………………………………………
AND ……………………………………….. = ………………………………………………
nom
Classe
titre
sortie
Riois
2SEC
Les misérables
2011-01-01
Durand
1TS
L'assommoir
2011-01-06
15
JOINTURE
livre
noli
v
1
2
3
4
5
titre
Les chouans
Germinal
L'assommoir
La bête
humaine
Les misérables
auteur
Balzac
Zola
Zola
Zola
Hugo
genre
Roman
Roman
Roman
Roman
Roman
prix
8
7.5
9.5
7
10.5
nope
rs
1
2
3
nopers
noliv
sortie
retour
3
5
2011-0101
0000-00-00
1
3
2011-0106
0000-00-00
2
1
2012-0203
2012-03-03
nom
Durand
Brieusel
Riois
prenom
Jean-Pierre
Chantal
Lucas
Classe
1TS
1TS
2SEC
SELECT personne.nom, personne.Classe, livre.titre, emprunt.sortie
FROM `emprunt` , `personne` , livre
WHERE emprunt.retour = "0000-00-00"
AND emprunt.nopers = personne.nopers
AND emprunt.noliv = livre.noliv
nom
Classe
titre
sortie
Riois
2SEC
Les misérables
2011-01-01
Durand
1TS
L'assommoir
2011-01-06
16
Travaux Pratiques
Mettre la casquette de l’administrateur

DEUXIEME PARTIE: Initiation au langage S.Q.L
En utilisant l’éditeur des requêtes SQL, Tester les
requêtes S.Q.L pour :







1) Afficher la table livre, afficher la table personne,
afficher la table emprunt.
2) Rechercher tous les livres écrits par Zola.
3) Rechercher tous les livres écrits par Zola et dont le prix
est inférieur à 10 Euros.
4) Rechercher tous les livres dont l'auteur n'est ni Balzac ni
Zola.
5) Calculer le prix total des livres
6) Afficher le nombre de romans
7) Afficher la liste des livres empruntés, ainsi que les
coordonnées des emprunteurs.
Création d’un client (Apache/PHP)
pour un serveur de BD MysQL
Système
d’exploitation (OS)
Serveur WEB
Postes clients
Internet
Port = 80
Moteur PHP
Serveur BD
Port=3306
disque
Système
d’exploitation
(OS)
Navigateur
Script en
PHP
Base données
CDI
Travaux Pratiques
Mettre la casquette de l’administrateur






Programmation du poste Documentaliste (version V0.0)
Le langage PHP propose des fonctions pour communiquer
avec un serveur de Base de Données MySQL.
mysql_connect($server,$user,$psw)
mysql_select_db($base)
mysql_close([$id])
mysql_query($requete)
Travaux Pratiques
Mettre la casquette de l’administrateur













Connexion au serveur :
if( $id = mysql_connect(‘’localhost’’,’’root’’,’’’’) )
{
if(mysql_select_db(‘’CDI’’) )
{
echo ‘’Succès de connexion.’’;
/* code du script … */
} else {
die(‘’Echec de connexion à la base.’’);
}
mysql_close($id);
} else {
die(‘’Echec de connexion au serveur de base de données.’’);
}

mysql_fetch_row($result) : retourne une ligne de
résultat (un tuple) sous la forme d’un tableau. Les
éléments du tableau étant les valeurs des attributs de la
ligne. Retourne FALSE s’il n’y a plus aucune ligne.
Exemple 1 :
$requet = ‘’SELECT * FROM personne’’;
if($result = mysql_query($requet)) {
while($ligne = mysql_fetch_row($result))
{
$id = $ligne[0];
$nom = $ligne[1];
$prenom = $ligne[2];
$classe=$ligne[3];
echo ‘’$id - $nom, $prenom,$classe <br>’’;
}
} else {
echo ‘’Erreur de requête de base de données.’’;

Téléchargement