p. 1 MySQL - Mise en oeuvre, configuration, administration François Gannaz – INP
p. 1 MySQL - Mise en oeuvre, configuration, administration François Gannaz – INP Grenoble Formation Continue p. 2 Introduction aux bases de données et à MySQL p. 3 Qu’est-ce qu’une base de données ? Plusieurs sens suivant le contexte : ▶Un jeu de données particulier Ex : les données d’une application web de blog (peut représenter des millions d’enregistrements) ▶Les fichiers qui contiennent ces données ▶Le système qui les gère Ex : MySQL Eviter les abus. . . ▶Le logiciel qui gère des données Ex : une application de gestion de bibliothèque On parlera pour cela de client de base de données. p. 4 Le monde des bases de données (SGBD) Les applications bureautiques “tout-en-un” ▶File Maker Pro ▶MS Access ▶. . . Les systèmes de bases de données ▶Souvent de structure client-serveur ▶Presque toujours de modèle relationnel ▶langage standard pour l’accès : SQL (Structured Query Language) ▶API dans des langages de programmation divers Les BdD Orientées Objet (donc non relationnelles) sont rares. p. 5 Principaux SGBDR du marché SGBDR propriétaires ▶Oracle ▶DB2 (IBM) ▶SQL Server (MS) SGBDR libres ▶MySQL ▶PostgreSQL ▶SQLite (embarqué et non client-serveur) ▶Firebird (fork de Borland InterBase) p. 6 MySQL c’est. . . ▶une base de donnée relationnelle créée en 1995 ▶modèle client-serveur ▶une application légère dans le monde des SGBD ▶développée par une société suédoise (ABSoft) Rachetée par Sun Microsytems début 2008. ▶Le plus répandu des SGBDR libres Particulièrement utilisé pour le web (LAMP) ▶diffusée sous double licence ▶libre (GPL) pour un usage interne ou libre ▶propriétaire payant pour un usage propriétaire ▶Principales versions : 4.1 stable depuis octobre 2004 5.0 stable depuis octobre 2005 5.1 stable depuis novembre 2008 p. 7 Caractéristiques de MySQL Avantages ▶Multi plates-formes : Linux, Windows, OSX, etc. ▶Gratuit pour un usage libre ou non commercial ▶Bonne documentation de référence (HTML, PDF) http://dev.mysql.com/doc/refman/5.0/en/ ▶SGBD performant ▶Plusieurs moteurs internes suivant les besoins ▶Interfacée avec la plupart des langages de programmation Inconvénients ▶Partiellement conforme au standard SQL:2003 ▶Quelques fonctionnalités absentes ou très faibles : ▶analyse à la volée (OLAP) ▶traitement du XML ▶données géographiques (GIS) ▶triggers (déclencheurs) et curseurs ▶. . . p. 8 Installation p. 9 Installation Windows - 1 Composants ▶MySQL Windows ▶Serveur MySQL (mysqld) ▶Clients console : shell (mysql) ▶Clients console : utilitaires (mysqladmin, mysqldump...) ▶Instance Manager (obsolète) ▶MySQL GUI Tools (optionnel) ▶MySQL Administrator ▶MySQL Query Browser ▶MySQL Migration Toolkit Migration d’un SGBD étranger vers MySQL ▶MySQL Workbench (optionnel) Conception et diagrammes des bases MySQL p. 10 Installation Windows - 2 Structure des répertoires C:\Program Files\mySQL\MySQL Server 5.0 ▶bin : les exécutables binaires ▶data : les fichiers bases de données ▶docs ▶examples ▶include : en-têtes pour la programmation C ▶lib : les bibliothèques dynamiques ▶configuration "my.ini" dans C:\windows (fichier nommé "my.cnf" sous Linux) Gestion des services Par le gestionnaire de services de Windows p. 11 Installation WAMPServer ▶Un pack de logiciels libres configurés ensemble ▶Apache : serveur Web ▶MySQL : serveur de base de données ▶PHP : langage de programmation web ▶PHPMyAdmin : interface web de gestion de MySQL, écrite en PHP ▶SQLiteManager ▶réalisé par Anaska (sté française), sous licence GPL v2.0 ▶concurrents : EasyPHP, xAMP... Parcourir l’arborescence installée : trouver les fichiers de configuration de Apache, MySQL, phpMyAdmin p. 12 L’architecture client-serveur Réseau : utilisation du protocole IP ▶une adresse IP, ex. 192.168.1.100 ▶un nom de machine, ex. pc101-01.cuefa.inpg.fr ▶un port (=protocole) ; 3306 par défaut pour MySQL Cas particulier : client-serveur en local ▶localhost : IP=127.0.0.1 (universel) ▶utilisation des canaux nommés (Windows NT...) ▶utilisation des sockets Unix p. 13 Les interfaces utilisateur ▶Ligne de commande ▶la “console” mysql ▶les utilitaires : mysqldump, mysqladmin... ▶options communes : -u <user> -p<password> -h <hote> -P <port>... ▶Les “clients lourds” graphiques ▶MySQL Administrator ▶MySQL Query Browser ▶L’interface web ▶PhpMyAdmin : interface unifiée p. 14 La documentation Le manuel de référence ▶http://dev.mysql.com/doc/ ▶multiples versions, multiples langues ▶mises à jour régulières ▶attention à la synchro des versions Formats : ▶En PDF : imprimable... ▶En format CHM (aide Windows) ▶en ligne de commande (terminal) : HELP ... ; ▶En ligne : HTML ▶Commentaires utilisateurs p. 15 Modélisation d’une base de données Le modèle relationnel p. 16 IEP DP DPT - id_DPT smallint [PK] - titre varchar(255) - titreCourt varchar(20) - introduction text - conclusion text - logo_url varchar(255) - date_creation timestamp DPT_groupt - id_DPT smallint [FK,U] - groupt enum [U] - periode varchar(50) - commentaire text id_DPT DPT_notice - id_DPT smallint [FK,U] - id_notice mediumint [FK,U] - requete text - date_insert timestamp id_DPT DPT_utilisateur - id_DPT smallint [FK] - id_utilisateur tinyint [FK] id_DPT fnsp - id_fnsp smallint [PK] - cote varchar(100) - intitule varchar(255) - aintitule varchar(255) - pere_id_fnsp smallint - ancien tinyint - type varchar(20) - date_maj timestamp per_id_fnsp indexFNSP - id_index mediumint [PK] - expression varchar(255) - commentaire text - id_fnsp mediumint [FK] id_fnsp notice_fnsp - id_lnfnsp int [PK] - id_notice mediumint [FK] - id_fnsp smallint [FK] id_fnsp StatsArbre - id mediumint [PK] - id_fnsp mediumint [FK] - id_parent mediumint - prof tinyint - nb_fils smallint - nb_not_direct mediumint - nb_not_cumul mediumint - nb_not_direct_public mediumint - nb_not_cumul_public mediumint - chemin varchar(250) - ancetre_niv1 mediumint - ancetre_niv2 mediumint - geo tinyint id_fnsp institut - id_institut tinyint [PK] - nom varchar(20) [U] utilisateur - id_utilisateur tinyint [PK] - login varchar(20) [U] - password varchar(40) - id_institut tinyint [FK] id_institut journal - id_journal tinyint [PK] - intitule varchar(100) - intart varchar(10) - id_revue_fripes mediumint - id_utilisateur tinyint [FK] - local enum - dpt tinyint notice - id_notice mediumint [PK] - auteur varchar(100) - titre varchar(255) - commentaire varchar(255) - id_journal tinyint [FK] - id_supplement tinyint [FK] - ident varchar(50) - chrono date - chronofin date - page varchar(10) - url varchar(255) - chemin varchar(255) - date_maj timestamp - date_saisie datetime - saisie_id_utilisateur tinyint - maj_id_utilisateur tinyint - erreur varchar(255) - dpt tinyint id_journal supplement - id_supplement tinyint [PK] - intitule varchar(200) - id_journal tinyint [FK] - local enum - dpt tinyint id_journal utilisateur_journal - id_utilisateur tinyint [FK] - id_journal tinyint [FK] id_journal id_notice id_notice statsConsult - id_statsConsult int [PK] - ip varchar(16) - temps datetime - notices tinyint - formulaire tinyint - journal varchar(50) - supplement varchar(50) - auteur varchar(100) - titre varchar(100) - date varchar(25) - fnsp varchar(50) - dpt mediumint - images tinyint - rssFNSP mediumint id_supplement id_utilisateur id_utilisateur saisie_id_utilisateur -> id_utilisateur id_utilisateur utilisateur_perm - id_utilisateur tinyint [FK] - perm enum id_utilisateur p. 17 Les tables Une base de données (par ex. discotheque) est faite de tables. Table Disques Titre Compositeur Date Cantates Bach J.S. 2006 Sonates Beethoven 2005 Concerto Dvořak 2000 Chaque ligne est un enregistrement (ou tuple, ou n-uplet). Le nom d’une colonne est dit champ (ou attribut). Les colonnes sont typées Numérique BOOLEAN, INT, DOUBLE . . . Texte VARCHAR(taille), TEXT . . . Listes ENUM(liste), SET(liste) Date/Heure DATE, TIMESTAMP . . . p. 18 Conception d’une base de données Les données de l’exemple Partita, Bach & Busoni, Harmonia Mundi, 1986. Concerto, Dvořak, Sony, 1980. Première étape (normalisation 0) Lister les données à stocker Les structurer en entités–attributs (tables–champs) avec une information par champ. Application à l’exemple Comment organiser ces données ? Disques titre compositeurs label date de sortie Disques titre compositeur1 compositeur2 label date de sortie p. 19 Première forme normale Avant titre compositeur1 compositeur2 label date Partita Bach Busoni Harmonia 1986 Concerto Dvořak Sony 1980 Règles de normalisation ▶Une table pour chaque groupe de données associées, ▶Pas de colonnes au contenu similaire, ▶Chaque enregistrement doit avoir une clé primaire (identifiant unique). Application à l’exemple id titre compositeur label date 1 Partita Bach Harmonia 1986 2 Partita Busoni Harmonia 1986 3 Concerto Dvořak Sony 1980 Disques id [PK] titre compositeur label date de sortie p. 20 Deuxième forme normale Règles de normalisation ▶Si plusieurs lignes ont des contenus similaires, la table doit être découpée en sous-tables, ▶Ces tables doivent être reliées par des clés étrangères (référence à une clé primaire). Application à l’exemple Disques id_disque titre label date de sortie ← − Compositeurs id_compositeur id_disque [FK] nom Doublons dans la table Compositeurs = ⇒Normalisation ratée ! p. 21 Deuxième forme normale : application Il faut créer une table de relation entre les tables Disques et Compositeurs. Disques id_disque titre label date de sortie ← − Rel_Disq_Comp id_disque id_compositeur − → Compositeurs id_compositeur nom Un compositeur n’est défini qu’une seule fois, mais peut être mis en relation avec plusieurs disques. p. 22 Troisième forme normale Règle de normalisation ▶Les colonnes qui ne sont pas intrinsèquement liées à la clé primaire doivent être dans une table séparée. Application à l’exemple La colonne Disques.label contredit la règle. Labels id_label nom ← − Disques id_disque titre id_label date de sortie p. 23 Le modèle relationnel On peut lier les tables par des relations, classées en 3 types. Chaque clé étrangère induit une relation entre 2 tables. Un Diagramme Entité-Relation (ERD) est une aide précieuse. Exemple de la gestion d’une liste de CD Labels id_label nom ← − Disques id_disque titre id_label date ← − Disq_Comp id_disque id_compositeur − → Compositeurs id_compositeur nom Labels id_label nom ← − Disques id_disque titre id_label date ← uploads/s3/ mysql-4pp-nb-light.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 24, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.3730MB