Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base...
-
Upload
noe-grosjean -
Category
Documents
-
view
111 -
download
2
Transcript of Application à MySQL 1. Introduction Ce cours doit vous permettre de : Découvrir ce quest une base...
Application à MySQL
1
IntroductionCe cours doit vous permettre de :
Découvrir ce qu’est une base de donnéeDécouvrir comment créer une base de données
sans trop de redondanceDécouvrir comment interroger une base de
donnée MySQLCe cours ne vous permettra pas :
De bien comprendre les mécanismes sous-jacentSavoir faire une base de donnée optimiséeD’avoir le BTS sans approfondir le sujet (tester,
poser des questions…), tout comme pour les sockets 2
Qu’est ce que c’est que ça?Un peu de vocabulaire…Une base de donnée peut être vue comme un
ensemble de tableaux Excel :Chaque fichier Excel est une tabletableUne ligne d’une tabletable est un enregistrementenregistrement (ou tupletuple)
Une colonne d’une table est un attributattribut
3
Donc c’est quoi ?Une base de donnée, c’est un ensemble de tablestables, et chaque table contient de l’information stocké sous forme de tupletuple.
Exemple : base de donnée de l’ORT :Une table eleveUne table classeUne table matiereUne table note
4
Comment organiser les tablesPrenons l’exemple précédent, et imaginons
qu’on veuille stocker les notes de tous les élèves :On utilise la table note, et on met les attribut
suivants : Nom Prenom NomMatière Note
5
Exemple 1Nom Prenom NomMatiere Note
Lelore Thibault Informatique 19
Lelore Thibault Informatique 17
Lelore Thibault Français 8
Lelore Thibault Mathématique 15
Différents problèmes :•Perte de place : on répète 4 fois le nom et le prénom, ainsi que le nom de la matière…•Modification : Si on veux modifier le nom, il faut le faire partout !•Suppression : Si on supprime une note, on peut aussi supprimer un nom !
6
Note
eleve
Matiere
Comment organiser les tablesMieux : on utilise eleve, matiere et note :
7
Note
eleve
Matiere
ProblèmesPas parfait :
Que se passe t’il si on a deux élèves avec le même nom ?
Que se passe t’il si on modifie le nom d’un élève ?
8
SolutionLorsque l’on fait une table, il faut décider
d’une cléclé
Une cléclé est un attribut qui est unique dans toute la table.Il ne peut pas y avoir 2 tupletuple avec la même
valeurGénéralement, c’est un numéro, mais ça peut
être n’importe quoi.
9
Règles et conseilsPour bien faire :
Utiliser une clé numérique (un identifiant)Ne pas hésiter à découper une table en deux :
Dans l’exemple suivant, le modèle détermine la marque et la puissance. On peut alors créer deux tables :
Voiture
Voiture
Modele
10
Règle pour découper1. Transformer chaque attribut en attribut
atomique :Quand un attributattribut contient plusieurs informations
(nom et prénom, ou adresse et code postal…)Créer deux (ou plus) attributsattributs.
2. Déterminer quelles dépendances existent entre les attributs pour chaque table
Quand un attribut détermine d’autres attributsattributs (une note et un nom de matière, ou un modèle de voiture et une marque)
Créer deux (ou plus) tablestables.
11
Schéma relationnelUne fois qu’on a décidé de quelles tables
faire, il est possible de faire un schéma relationnel :Comme UML, mais avec :
À la place des classes, c’est les tables À la place des méthodes, c’est les attributs Il n’existe que des liens simples entre les tables Penser aussi aux cardinalités
12
MySQLUne fois les tables décidées, il faut les créer
Plusieurs logiciels (MySQL, PostGres, Access, Oracle…)
Tous utilisent le même langage de requête : le SQL
Tout d’abord une présentation de SQL
13
Créer une base de donnée :/* Table des quartiers */CREATE TABLE quartiers (id int NOT NULL auto_increment,nom_quartier text,PRIMARY KEY (id));
/* Tables des lieux */CREATE TABLE lieux (id int NOT NULL auto_increment,nom text, ref_quartier int,description text,PRIMARY KEY (id));
14
Créer une base de donnée :/* Table des quartiers */CREATE TABLE quartiers (id int NOT NULL auto_increment,nom_quartier text,PRIMARY KEY (id));
/* Tables des lieux */CREATE TABLE lieux (id int NOT NULL auto_increment,nom text, ref_quartier int,description text,PRIMARY KEY (id));
15
Défini la clé principale
Nouveaux types…
Insérer des valeursINSERT INTO quartiers VALUES (1,'Wazemmes');
INSERT INTO quartiers(nom_quartier) VALUES ('Vieux Lille');
INSERT INTO lieux VALUES ('Biplan',1,'Salle de spectacle');
16
Insérer des valeursINSERT INTO quartiers VALUES (1,'Wazemmes');
INSERT INTO quartiers(nom_quartier) VALUES ('Vieux Lille');
INSERT INTO lieux VALUES ('Biplan',1,'Salle de spectacle');
17
Permet d’ajouter qu’une partie d’un
tupletuple
Le numéro de la clé est sous entendu
Interrogation de la baseTout le contenu de la table quartiers :
SELECT * FROM quartiers;Tous les noms de lieux:
SELECT nom FROM lieux;Même chose mais classé par ordre
alphabétique :SELECT nom FROM lieux ORDER BY nom;
Compter le nombre de lieux différents :SELECT COUNT(DISTINCT nom) FROM lieux;
18
Interrogation suiteTous les noms de lieux qui se trouvent dans
le quartier "Q1":SELECT lieux.nom FROM lieux,quartiers
WHERE lieux. ref_quartier=quartiers.id and quartiers.nom="Q1";
Cette opération s’appelle une jointureElle se fait grâce à la clé de la table quartiers :
ref_quartier=quartiers.id
19
ModificationUPDATE quartiers SET
nom_quartier='Waazzeeeemmes !' WHERE ref_quartier=1;
20
SuppressionDROP TABLE quartiers;
Supprime toute la table mais il faut qu’elle soit vide
DELETE FROM lieux;Vide toute la table
DELETE FROM lieux WHERE ref_quartier=1;Supprime toutes les lignes où ref_quartier=1
21
MySQLMySQL :
Utiliser PHP (pour faire un site)Utiliser la ligne de commandeUtiliser C++ (et autre langage de
programmation)
A vous de découvrir et d’apprendre…Hors programme
22