INSIA Bases de données ING 1 MySQL
Transcription
INSIA Bases de données ING 1 MySQL
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