INSIA Bases de données ING 1 MySQL

publicité
INSIA
Bases de données
ING 1
MySQL – Cours et TP 01
LA BIBLE : MySQL 5.0 Reference Manual
http://dev.mysql.com/doc/refman/5.0/fr/index.html
Site officiel MySql : http://www-fr.mysql.com/
Documentation MySQL : http://mysql.org/
La Base de Données Open Source la plus Populaire au Monde
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE
1
INTRODUCTION
1. Objectifs généraux
2. Réquisits
3. Généralités sur les bases de données
4. Les 3 objectifs majeurs d’une BD
5. Généralité sur les SGBD
6. L’objectif majeur d’un SGBD : garantir l’intégrité des données
7. Les utilisateurs d’un SGBD
8. Historique et types de BD et de SGBD
9. SGBD-R et SQL
3
3
3
4
5
6
6
7
7
8
MODÉLISATION : MODELE RELATIONNEL
1. La modélisation
2. Le modèle relationnel : MR
9
9
9
SQL : CREATION DE LA BASE DE DONNÉES
1. Manipulation des bases de données
2. Création des tables
12
12
13
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 1/21 - Bertrand LIAUDET
3.
4.
5.
6.
7.
Création des tuples
Consultation du code de création des table enregistré par le SGBD
Moteurs MyIsam et InnoDB
Consultation des données sur le disque
Messages du serveur
14
14
15
16
17
TP N°0 : INSTALLATION DE MYSQL SOUS WINDOWS
Exercice 01 : Installer MySQL
Exercice 02 : Observation des résultats de l’installation
Exercice 03 : Exercices post installation
18
18
18
18
TP N°1 : PRISE EN MAIN DU CLC-MYSQL
Exercice 01 : Lancer MySQL Command Line Client (CLC-mysql)
Exercice 02 : consultation des bases de données existantes
Exercice 03 : Quelles sont les tables de la base « mysql »
Exercice 04 : Quels sont les attributs de la table « users » de la base « mysql »
Exercice 05 : Quels sont les tuples de la table « users » de la base « mysql »
Exercice 06 : Créer la base employés
19
19
20
20
20
20
20
Première édition : septembre 2007
Deuxième : septembre 2008
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 2/21 - Bertrand LIAUDET
INTRODUCTION
BD
SGBD
SGBD-R
1.
PRINCIPALES NOTIONS
Intégrité des données
Architecture Client-Serveur
SQL
Objectifs généraux
L’objectif de ce cours est de faire comprendre ce qu’est une base de données (ce qui n’a rien
d’évident), et particulièrement une base de données relationnelle, de comprendre comment on la
fabrique et comment on s’en sert, c’est-à-dire comment on stocke les données et comment on
consulte les données de la base de données.
Pour cela nous serons amenés à utiliser le langage SQL et le SGBD MySQL.
2.
Réquisits
Il n’est pas nécessaire de connaître les langages de troisième génération (Pascal, C, C++, php,
etc…) ni l’algorithmique.
Il vaut mieux (mais ce n’est pas obligé) connaître l’architecture et le fonctionnement général
d’un ordinateur : unité centrale, processeur, périphériques d’entrée et de sortie, bus, mémoire,
ROM (Read Only Memory, mémoire morte), RAM (Read Access Memory, mémoire vive),
disque dur, répertoires, fichiers, logiciels, système d’exploitation.
Architecture des ordinateurs :
R
A
M
Processeur
SE
ROM
SE
Rappelons que quand l’ordinateur démarre, le petit programme codé dans la ROM va chercher
le logiciel « système d’exploitation » (XP, LINUX, UNIX, MacOS, etc… SE sur le schéma) sur
le disque dur et le recopie sur la RAM. L’utilisateur communique alors avec le système
d’exploitation. Le système d’exploitation offre trois grands types de fonctionnalité : la gestion
des fichiers (dir, cd, grep, etc.), la gestion des périphériques et le lancement des logiciels.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 3/21 - Bertrand LIAUDET
3.
Généralités sur les bases de données
Définition générale d’une base de données
Présentation
Le concept de base de données n’est pas facile à définir précisément. On peut toutefois en
donner une définition intuitive très large :
Une base de données est constituée de deux éléments :
•
un regroupement de données (d’informations) en grand nombre. Ces données décrivent des
objets du monde réel.
•
un ensemble d’outils de gestion permettant de consulter ces données, mais aussi d’en
ajouter, d’en retirer et d’en modifier : c’est le SGBD (système de gestion de la base de
données)
Remarque
Une base de données n’est pas nécessairement informatisée.
Exemples
Une bibliothèque est une base de données. Les livres et les adhérents sont les objets du monde
réel. Il existe un fichier avec les informations concernant tous les livres (numérotation,
classement, etc.), tous les adhérents (nom, adresse, etc.), tous les emprunts, et aussi des fichiers
pour les recherches bibliographiques. Ces outils sont les outils de gestion de la BD.
Un magasin avec ses articles en rayon est une base de données. Les articles sont les données du
monde réel.
Un disque dur avec ses fichiers est une base de données. Les fichiers sont les données du monde
réel.
Un cerveau plus ou moins rempli (!) est une base de donnée. Les connaissances sont les données
du monde réel.
Définition d’une base de données informatique
Présentation
Une base de données informatique est une base de données dont les données et les outils de
gestion sont informatisés.
Une base de données informatique est constituée de deux éléments :
•
un regroupement de données informatiques en grand nombre. Ces données décrivent des
objets du monde réel.
•
un ensemble d’outils de gestion informatisés permettant de consulter ces données, mais
aussi d’en ajouter, d’en retirer et d’en modifier : c’est le SGBD (système de gestion de la
base de données).
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 4/21 - Bertrand LIAUDET
Exemples
Le catalogue informatisé d’une bibliothèque : il permet d’accéder à la liste de tous les ouvrages
de la bibliothèque, de savoir s’ils sont disponibles ou pas, etc.
Le système de réservation de la SNCF (Système Socrate) : il permet d’accéder à tous les trains
et à toutes les places dans les trains, de savoir si elles sont disponibles, etc.
Les sites internet de journaux (Le Monde, le Figaro, etc.) mais aussi les petits sites sous SPIP
(système de publication sur internet) sont des bases de données d’articles : ils permettent
d’accéder aux articles pour les lecteurs, de les mettre en ligne pour les auteurs, etc.
Problème de vocabulaire
Quand on parle de base de données (BD), on parle :
•
Soit de l’ensemble constitué par les données et le SGBD (par exemple : « Cours de base de
données »)
•
Soit des données uniquement (par exemple : « on utilise la base de données des employés »)
• Soit du SGBD uniquement (par exemple « j’utilise une BD mysql)
Dans ce cours, on fera en général la distinction entre les données (la base de données ou BD) et
les outils de gestion (le SGBD, cf. un peu plus bas).
4.
Les 3 objectifs majeurs d’une BD
L’intégrité des données
Dès que le nombre de données est important, il y a des risques d’incohérence, c’est-à-dire de
contradiction :
•
Duplication des données avec des valeurs différentes. Exemple : deux adresses différentes
pour une même personne.
•
Valeurs aberrantes. Exemples : un âge négatif ou supérieur à 150 ; une donnée faisant
référence à une autre donnée qui n’existe plus.
La BD a pour objectif d’être un réservoir d’informations unique et commun : « canonique »,
garantie sans incohérence (donc sans duplication de données).
La distinction entre données et traitements
Les données existent indépendamment des traitements qu’on leur applique.
L’unité conceptuelle des données et de la réalité qu’elles représentent
La BD permet d’apporter une vision unifiée des données manipulées (dans une entreprise ou
n’importe quel système d’informations, scientifique par exemple).
Cette unité conceptuelle permet une meilleure compréhension de la réalité représentée par les
données.
Elle permet aussi de rationaliser et donc de faciliter les traitements appliqués aux données.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 5/21 - Bertrand LIAUDET
5.
Généralité sur les SGBD
Définition
Le SGBD, Système de Gestion de Base de Données, est le logiciel qui réalise les outils de
gestion de la base de données. Il permet essentiellement de :
Définir les données qu’on veut manipuler,
Ajouter, modifier, supprimer des données
Consulter des données
Le SGBD répond aux objectifs de la BD.
Architecture
L’architecture la plus courante des SGBD est une architecture Client — Serveur : le SGBD est
le serveur avec lequel des clients peuvent communiquer.
Utilisateurs
Des applications
Des Clients
6.
Un SGBD
Disque dur :
La ou les BD
Un Serveur
La BD est stockée sur le disque dur.
Pour une BD, il y a un SGBD et un seul. Le SGBD et la BD sont sur la même machine (pris
en charge par le même SE). Sur PC, le serveur MySQL, c’est : mysqld-nt.exe
Pour un SGBD donné, il peut y avoir plusieurs applications qui communiquent avec lui. Le
SGBD est le serveur. Chaque application est un client. Une application peut être sur une
machine différente de celle du serveur, ou sur la machine du serveur.
Une application est un programme (un logiciel) qui envoie des commandes au SGBD pour
manipuler d’une façon ou d’une autre les données de la BD sur le disque dur. Par exemple :
un programme PHP qui permet de communiquer avec une BD MySQL.
Il existe une application particulière : celle qui permet de créer, modifier, détruire et
consulter une BD. Sur PC, l’application MySQL de création, modification, destruction,
consultation de la BD c’est : « MySQL Command Line Client » aboutissant à mysql.exe.
Cette application particulière, on l’appellera : la calculette SQL
D’autres applications permettent de faire des créations, modifications, destructions,
consultations : par exemple PHPMyAdmin.
L’objectif majeur d’un SGBD : garantir l’intégrité des données
L’objectif majeur d’un SGBD est le même que celui de la BD : il s’agit de garantir l’intégrité des
données.
Cet objectif se déploie sur plusieurs registres :
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 6/21 - Bertrand LIAUDET
L’intégrité de base des données
La gestion de l’intégrité de base consiste à vérifier que les données saisies sont cohérentes
par rapport à la définition qu’on en a donnée.
La sécurité sur panne
La gestion de la sécurité sur panne permet de garantir le maintien de la cohérence des
données, même quand une panne intervient au cours d’une période de modification des
données.
Les accès concurrents
La gestion des accès concurrents permet d’éviter des incohérences dues à des modifications
faites en même temps sur une même donnée.
Les autorisations d’accès
7.
La gestion des droits des utilisateurs permet de limiter les possibilités des utilisateurs sur les
données.
Les utilisateurs d’un SGBD
Il y a trois types d’utilisateur d’un SGBD :
L’administrateur : il gère les accès et les droits des utilisateurs.
L’utilisateur : il utilise une application cliente du SGBD.
Le programmeur : il programme une application qui sera cliente du SGBD.
8.
Historique et types de BD et de SGBD
Il existe différents types de BD en fonction du modèle d’organisation des données qu’elles
utilisent.
A ce modèle est associé un langage de manipulation des données.
Années 60 : les anciens modèles. Modèle hiérarchique, réseau, langages d’accès
navigationnel permettant de circuler dans des structures de types graphes.
1970 : Création du modèle relationnel. Article de CODD.
Années 80 : Premiers SGBD-Relationnels sur le marché (ORACLE, Ingres, Informix,
sybase, Dbase IV, etc.)
Années 90 : Premiers SGBD-Objets sur le marché (02, etc.)
Aujourd’hui : L’Objet n’a pas remplacé le Relationnel. Le marché est dominé par les
SGBD-R (ORACLE, SQL-Server, MySQL, ACCESS…). Mais les technologies sont
souvent mixtes (Relationnel et objet).
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 7/21 - Bertrand LIAUDET
9.
SGBD-R et SQL
SGBD-R
Aujourd’hui, le modèle relationnel domine le marché et la théorie des bases de données.
Les SGBD correspondant sont des SGBD-R.
Présentation du SQL
Le SQL est le langage qui permet d’envoyer toutes les requêtes possibles à un SGDB-R :
création, modification, suppression et consultation.
SQL signifie Structured Query Langage, c’est-à-dire langage structuré de requêtes.
Il est aussi parfois appelé : « SEQUEL» (prononcer : sicouel), pour Structured English Query
Language.
SQL : langage ou algèbre ?
Le SQL est une algèbre plus qu’un langage. Il est fondé sur une théorie des opérations qu’on
peut appliquer à un objet mathématique particulier : les tableaux de données.
C’est en ce sens que l’application cliente du SGBD qui permet d’utiliser directement le SQL
peut être considérée comme une « calculette » qui, au lieu de travailler sur des nombres,
travaille sur des tableaux de données.
Il existe une formulation mathématique (théorique) correspondant au SQL : l’algèbre
relationnelle. L’algèbre relationnelle peut être vue comme un langage SQL algorithmique.
Historique du SQL
Années 70 : premiers prototypes de SQL à la suite de l’article de CODD.
1979 : première version de SQL, proposé par ORACLE.
1986 : SQL ANSI (American National Standard Institute)
1989 : SQL-1, ISO et ANSI (International Standard Organisation)
1992 : SQL-2, ISO et ANSI (petites améliorations par rapport à SQL1)
1999 : SQL-3, ISO et ANSI (SQL orienté objet)
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 8/21 - Bertrand LIAUDET
MODÉLISATION : MODELE RELATIONNEL
Modèle relationnel
Table
Tuple
Attribut
1.
PRINCIPALES NOTIONS
Clé primaire
Clé significative
Schéma de la BD
NULL
La modélisation
La modélisation est l’activité qui consiste à produire un modèle.
Un modèle est ce qui sert ou doit servir d’objet d’imitation pour faire ou reproduire quelque
chose.
On s’intéresse ici à la modélisation des données.
Un modèle des données est une représentation de l’ensemble des données.
Un modèle doit être systématique : d’une part, il concerne la totalité des données, d’autre part la
lecture du modèle doit permettre de rendre compte de la réalité représentée (les données du
monde réel) sans ambiguïté.
Il existe plusieurs modèles de représentation des données : hiérarchique, relationnel, entitéassociation, objet, ensembliste, etc.
Les deux modèles dominant actuellement sont : le modèle relationnel : MR (correspond aux
SGBD-R) et le modèle entité-association : MEA (correspond à la méthode MERISE et aux
SGBD-R).
Les notions de modèle conceptuel des données : MCD et de modèle logique des données :
MLD viennent de la méthode MERISE. L’usage tend à rendre équivalents MCD et MEA d’un
côté et MLD et MR de l’autre. On verra plus tard la distinction entre chaque notion.
2.
Le modèle relationnel : MR
Présentation
Le modèle relationnel a été inventé par Codd à IBM-San Jose en 1970.
C’est un modèle mathématique rigoureux basé sur un concept simple : celui de relation (ou
table, ou tableau).
Ce modèle, c’est celui qui est implanté dans les SGBR-R.
Il permet à la fois de fabriquer la BD et de l’interroger.
Table, tuple, attribut, clé primaire
Exemple traité
Un service de ressource humaine dans une entreprise veut gérer le personnel. Dans un premier
temps, on veut pouvoir connaître le nom, la fonction, la date d’entrée, le salaire, la commission
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 9/21 - Bertrand LIAUDET
(part de salaire variable) de chaque employé et le numéro du département dans lequel travaille
chaque employé.
Chaque employé a donc les caractéristiques suivantes :
Nom, fonction, date d’entrée, salaire, commission, numéro du département
Table, tuples et attributs
Pour ranger ces données, on peut faire un tableau à 5 colonnes :
RELATIO
N
Employé
4 tuples :
5 attributs :
Nom
Fonction
Date d’entrée
Salaire
Commission
Num. Dept
TURNER
SALESMAN
8-SEP-81
1500
0
10
JAMES
CLERK
3-DEC-81
950
NULL
30
WARD
SALESMAN
22-FEB-81
1250
500
20
TURNER
ANALYST
3-DEC-81
3000
NULL
10
Vocabulaire
Relation = tableau = table = classe = ensemble = collection
Tuple = n-uplet = ligne du tableau = élément = enregistrement = individu = objet = donnée
Attribut = colonne du tableau = caractéristique = propriété = champ
BD = toutes les lignes de toutes les tables
NULL
NULL est la seule information codée qu’on rentre dans une table : elle signifie « nonrenseigné ». La valeur « 0 », par contre, ne signifie pas du tout « non-renseigné », mais bien
« valeur = 0 », comme on dirait « valeur = 500 ».
Clé primaire
On souhaite pouvoir distinguer facilement chaque ligne d’une autre ligne. Or, certains employés
ont le même nom.
Pour distinguer chaque ligne, on introduit la notion de clé primaire.
La clé primaire est un attribut qui détermine tous les autres.
Exemple type de clé primaire : le numéro de sécurité sociale dans un tableau de personne.
Quand on connaît le numéro de sécurité sociale, on sait de qui on parle, donc tous les attributs
sont déterminés (même si on ne connaît pas leur valeur à un instant donné).
Dans le tableau des employés, la clé primaire pourrait être un numéro de référence choisi par
l’entreprise.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 10/21 - Bertrand LIAUDET
RELATION
Employés
4 tuples :
7 attributs :
Numéro Nom
d’employé
Fonction
Date
d’entrée
Salaire Comm.
Num.
Dept
1
TURNER
SALESMAN
8-SEP-81
3000
0
10
2
JAMES
CLERK
3-DEC-81
1800
NULL
30
3
WARD
SALESMAN
22-FEB-81
2500
500
20
4
TURNER
ANALYST
3-DEC-81
5000
NULL
10
Clé significative
La clé significative, c’est l’attribut qui sert de clé dans le langage ordinaire. Dans le cas des
employés, c’est leur nom. Toutefois, il peut y avoir des homonymes : la clé significative est utile
dans le langage ordinaire pour savoir de qui on parle, mais elle est insuffisante dans le langage
mathématique pour garantir l’identification de l’individu.
Schéma de la BD
Schéma de la BD
Le schéma de la BD consiste à écrire chaque table sur une ligne avec les noms de code des
attributs :
EMPLOYES (NE, nom, job, datemb, sal, comm, ND)
L’ensemble des schémas des tables forme le schéma de la BD.
Formalisme
La clé primaire est notée en premier.
La clé primaire est soulignée.
La table des employés représente une réalité physique. On l’appelle « table-nom ».
Le nom donné à une table-nom est un nom commun, au pluriel.
La clé primaire d’une table-nom est N (pour numéro) suivi de la première lettre du nom de la
table.
Définition de la BD
Une BD c’est un ensemble de tables avec leurs tuples.
Un SGBD gère plusieurs BD distinctes.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 11/21 - Bertrand LIAUDET
SQL : CREATION DE LA BASE DE DONNÉES
Show databases
Create database
Drop database
Show tables from
1.
PRINCIPALES NOTIONS
Use
Desc
CREATE TABLE
INSERT INTO
Manipulation des bases de données
Consultation des BD du SGBD
La BD est un ensemble de tables. C’est une sorte de dossier contenant des tables.
Le SGBD permet d’accéder à la liste de toutes les BD qu’il contient :
Show databases1;
Création d’une BD
La création d’une base de donnée consiste seulement à créer une sorte de dossier qui contiendra
les futures tables de la BD :
Create database NomBD ;
NomBD est le nom de la BD qu’on veut créer.
On peut aussi vérifier la non-existence de la BD avant de la créer :
Create database if not exists NomBD ;
Ca évite un signal d’erreur si la BD existe.
Destruction d’une BD
La destuction d’une base de donnée consiste à détruire le dossier et toutes les tables de la BD.
C’est à manier avec prudence :
Drop database NomBD ;
On peut aussi vérifier l’existence de la BD avant de la détruire :
1
Remarques sur le métalangage utilisé : il ne prétend pas être parfaitement formel! Son objectif est d'associer
pédagogie et rigueur formelle. Les mots clés du langage SQL sont en gras (Show database). Les expressions
générales et variables sont en italiques (NomBD). Si nécessaire, les explications concernant ces expressions
générales sont données soit en note, soit dans le texte, soit à travers des exemples. Les cas particuliers des exemples
sont au format standard.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 12/21 - Bertrand LIAUDET
Drop database if exists NomBD ;
Ca évite un signal d’erreur si la BD n’existe pas.
Consultation des tables d’une BD
On peut afficher la liste des tables contenues dans une BD :
Show tables from NomBD ;
Utilisation d’une BD
Pour pouvoir manipuler les tables d’une BD, il faut d’abord signaler qu’on l’utilise :
Use NomBD ;
A partir de là, on pourra faire des select sur les tables, les créer, ajouter des tuples et aussi
consulter les attributs de chaque table de la BD :
Desc NomTable ;
NomTable est le nom de la table dont on veut la description. Elle appartient à la BD qu’on
utilise.
On peut aussi lister tous les tuples d’une table :
Select * from NomTable ;
NomTable est le nom de la table dont on veut lister les tuples. Elle appartient à la BD qu’on
utilise.
2.
Création des tables
Syntaxe SQL
CREATE TABLE NomTable (
attribut_1 type [contrainte d’intégrité],
attribut_2 type [contrainte d’intégrité],
…,
attribut_n type [contrainte d’intégrité]
);
la contrainte est facultative.
La table est une coquille vide : c'est une structure. Elle permettra ensuite de créer des tuples.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 13/21 - Bertrand LIAUDET
Exemple
Création de la table des employés :
CREATE TABLE EMPLOYES (
NE
integer primary key auto_increment,
NOM
varchar(10),
JOB
varchar(9),
DATEMB
date,
SAL
float(7,2),
COMM
float(7,2),
ND
integer not null
);
Les types des données
Les types des données correspondent pour la plupart aux types habituels des langages de
programmation.
Pour avoir la liste et la signification de tous les types :
http://dev.mysql.com/doc/refman/5.0/fr/column-types.html
3.
Création des tuples
Syntaxe SQL
INSERT INTO NomTable VALUES (val_att_1, … , val_att_n )
On passe la liste des valeurs pour chaque attribut du tuple, dans l’ordre de la déclaration dans la table.
Exemples
INSERT INTO EMPLOYES VALUES (7839,'KING','PRESIDENT','1981-11-17',5000,NULL,10);
INSERT INTO EMPLOYES VALUES (7698,'BLAKE','MANAGER','1981-05-1',2850,NULL,30);
INSERT INTO EMPLOYES VALUES (7782,'CLARK','MANAGER','1981-06-9',2450,NULL,10);
4.
Consultation du code de création des table enregistré par le SGBD
Principe
Quand on envoie une commande de création de table, le SGBD enregistre la structure de la table
en mémoire.
Il enregistre aussi le code de création de la table.
On peut afficher ce code.
Syntaxe MySQL
Show create tables NomTable ;
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 14/21 - Bertrand LIAUDET
5.
Moteurs MyIsam et InnoDB
Moteur par défaut : « storage_engine » et « table_type »
Show variable like ‘%engine%’;
Ou bien
Show variable like ‘%type%’;
Les variables « storage_engine » et « table_type » sont équivalentes.
Modification du moteur par défaut
Par modification du fichier de configuration
On peut préciser dans le fichier « my.ini » :
[mysqld]
storage_engine = ‘MyISAM’ ;
Il faut alors relancer le serveur pour que la modification soit prise en compte.
Par modification dynamique des variables du serveur
Set @@table_type =’myisam’;
Est équivalent à :
Set @@local.table_type =’myisam’;
Est équivalent à :
Set @@session.table_type =’myisam’;
Est équivalent à :
Set local table_type =’myisam’;
La modification est prise en compte par le client qui a lancé la commande.
En remplaçant « local » par « global » :
Set global table_type =’myisam’;
Est équivalent à:
Set @@global.table_type =’myisam’;
La modification sera prise en compte par tout nouveau client : elle n’est donc pas prise en
compte par le client qui a envoyé la commande.
Modification du moteur pendant la création des tables
CREATE TABLE NomTable (
…
) engine nomDuMoteur;
Les deux principaux moteurs sont : « MyISAM » ou « InnoDB ».
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 15/21 - Bertrand LIAUDET
6.
Consultation des données sur le disque
Selon le moteur choisi, MySQL enregistre différemment les données sur le disque.
Moteur MyISAM
Répertoire de stockage : le « datadir »
La commande :
Show variable like ‘%dir%’;
Permet de consulter la valeur du « datadir », probablement sous Windows :
C:\Program Files\MySQL\MySQL Server 5.0\Data\
Structure de la base : db.opt
La commande :
Create database nomBase ;
Crée le répertoire « nomBase » dans le datadir et un fichier « db.opt » dans ce répertoire.
Fichier de description des tables : nomTable.frm
La commande :
Create table nomTable (…);
Crée dans un fichier .frm qui décrit la structure de la table.
La commande crée aussi deux fichiers pour les données : un fichier « .myd » pour les tuples et
un fichiers « .myi » pour les index.
Au départ, ces fichiers sont vides.
Fichier de données et d’index : nomTable.MYD et nomTable.MYI
La commande
Insert into table nomTable values (…);
Remplit les fichiers MYD et MYI correspondants à la table.
Moteur InnoDB
Répertoire de stockage : le « InnoDB_data_home_dir »
La commande :
Show variable like ‘%dir%’;
Permet de consulter la valeur du « InnoDB_data_home_dir », par exemple sous Windows :
C:\MySQL InnoDB Datafiles\
Structure de la base : db.opt
La commande :
Create database nomBase ;
Crée le répertoire « nomBase » dans le datadir et un fichier « db.opt » dans ce répertoire.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 16/21 - Bertrand LIAUDET
Fichier de description des tables : nomTable.frm
La commande :
Create table nomTable (…);
Crée dans un fichier .frm qui décrit la structure de la table.
La commande met à jour le fichier « ibdata1 » du répertoire « InnoDB_data_home_dir ».
Fichier de données et d’index : nomTable.MYD et nomTable.MYI
La commande :
Insert into table nomTable values (…);
Met à jour le fichier « ibdata1 » du répertoire « InnoDB_data_home_dir ».
7.
Messages du serveur
Le serveur envoie des messages de validation et des messages d’erreur.
Il faut analyser les messages du serveur!!!
En cas d’erreur, le serveur renvoie un n° de ligne : il faut analyser ce numéro.
Exemples de message :
Query ok
Database changed
etc
On passe la liste des valeurs pour chaque attribut du tuple, dans l’ordre de la déclaration dans la table.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 17/21 - Bertrand LIAUDET
TP N°0 : INSTALLATION DE MYSQL SOUS WINDOWS
Exercice 01 : Installer MySQL
Suivre le polycopié de description de l’installation et installer MySQL.
Exercice 02 : Observation des résultats de l’installation
1)
2)
3)
4)
Vérifier que le serveur est lancé.
Consulter les fichiers exécutables : .exe
Consulter le répertoires des données : /data
Consulter le fichier de configuration : my.ini
Exercice 03 : Exercices post installation
5) Arrêter proprement le serveur (mysqladmin). Redémarrer le.
6) Démarrer un client.
7) Regarder les variables « language », « sql_mode », « table_type ». Utiliser les « % » dans la
commande : like ‘%lan%’
8) Configurer la langue, le full group by et le moteur par défaut dans le fichier my.ini.
9) Redémarrer le serveur.
10) Vérifier la prise en compte des variables.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 18/21 - Bertrand LIAUDET
TP N°1 : PRISE EN MAIN DU CLC-MYSQL
Exercice 01 : Lancer MySQL Command Line Client (CLC-mysql)
C’est l’application cliente qui permet d’envoyer des requêtes SQL au serveur MySQL.
Pour la lancer il suffit de taper « mysql » sur la ligne de commande.
mysql –u NomUtilisateur –p
On peut aussi utiliser le raccourci installé automatiquement
La commande « help » permet de voir quelques commandes utilisables.
On retrouve les résultats sur le site :
http://dev.mysql.com/doc/refman/5.0/fr/mysql-commands.html
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 19/21 - Bertrand LIAUDET
Exercice 02 : consultation des bases de données existantes
Lister toutes les BD
Show databases ;
Exercice 03 : Quelles sont les tables de la base « mysql »
Lister toutes les tables d’une BD
Show tables from nomBD ;
Exercice 04 : Quels sont les attributs de la table « users » de la base « mysql »
Utiliser une BD
Use nomBD;
Lister toutes les attributs d’une table d’une BD
Desc nomTable ;
Exercice 05 : Quels sont les tuples de la table « users » de la base « mysql »
Lister toutes les tuples d’une table d’une BD
Select * from nomTable ;
Exercice 06 : Créer la base employés
Créer une BD
Create database nomBD;
On peut aussi vérifier la non-existence de la BD avant de la créer :
Create database if not exists nomBD;
Ca évite un signal d’erreur si la BD existe.
Supprimer une BD
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 20/21 - Bertrand LIAUDET
Drop database nomBD;
On peut aussi vérifier l’existance de la BD avant de la supprimer :
Drop database if exists nomBD;
Ca évite un signal d’erreur si la BD n’existe pas.
Récupérer le script de création de la BD
Sur le site : http://bliaudet.free.fr
INSIA / ING1 / Piscine 1
Récupérer le fichier emp.sql.
Mettre ce fichier dans le répertoire d’où a été lancé le CLC-MySQL .
Ce fichier est un fichier de création d’une BD.
Examiner le contenu du script : emp.sql
Analyser le contenu du script.
Que fait le script ?
Comment apparaissent les commentaires ?
Exécuter un script de commandes MySQL
Source chemin/monScript.sql
Le chemin relatif part du répertoire du CLC-MySQL : de là où on a lancé le CLC-MySQL.
Si on utilise le raccourci Windows,
Exécuter emp.sql
Corriger les erreurs dans le script de commandes MySQL
Un certain nombre d’erreurs apparaissent à l’exécution de emp.sql.
Analyser les messages d’erreur. Trouver les erreurs. Les corriger.
Code pris en compte
Afficher le code de création de la table pris en compte par le SGBD.
Quel est le moteur ?
Quel sera la valeur par défaut pour le prochain numéro d’employé ?
InnoDB et MyISAM
Quel est le moteur par défaut utilisé par le CLC-MySQL.
Regarder les répertoires de stockage InnoDB et MyISAM.
Regarder où et comment ont été stockées les données du script du TP.
Passer le moteur par défaut en MyISAM.
Relancer le script de création des tables.
Regarder où et comment ont été stockées les données du script du TP.
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 01 - page 21/21 - Bertrand LIAUDET
Téléchargement