Introduction à MySQL (ou MySQL en 3 heures montre en main)



Documents pareils
MySQL - Mise en oeuvre, configuration, administration

Pratique et administration des systèmes

Pour les débutants. langage de définition des données

Olivier Mondet

CREATION WEB DYNAMIQUE

Le langage SQL (première partie) c Olivier Caron

Cours: Administration d'une Base de Données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données relationnelles

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Installation d'un serveur FTP géré par une base de données MySQL

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

SQL Historique

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Présentation du module Base de données spatio-temporelles

Web statique : client-serveur. Web et LAMP. Discussion HTTP. Caractéristiques du HTTP

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Installation et Mise en œuvre de MySQL

Optimisations des SGBDR. Étude de cas : MySQL

Information utiles. webpage : Google+ : digiusto/

Licence Professionnelle Commerce Electronique. MySQL. Michel DUBOIS Michel Dubois : Support de cours SGBD N 1

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

I. MySQL : Serveur et SGBD

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

OpenPaaS Le réseau social d'entreprise

1/ Présentation de SQL Server :

Architecture de la plateforme SBC

Introduction au Système de Gestion de Base de Données et aux Base de Données

PHP 5. La base de données MySql. A. Belaïd 1

Les bases de données Page 1 / 8

1 Introduction et installation

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

PHP. PHP et bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Bases de données cours 1

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

SQL MAP. Etude d un logiciel SQL Injection

Mysql avec EasyPhp. 1 er mars 2006

INTRODUCTION. Mysql-server est un serveur de bases de données. Cest un logiciel libre.

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

PostgreSQL. Formations. Calendrier... 14

PHP 4 PARTIE : BASE DE DONNEES

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Application web de gestion de comptes en banques

Bases de données relationnelles : Introduction

Open Source Job Scheduler. Installation(s)

Guide d installation de SugarCRM Open Source version 4.5.1

les techniques d'extraction, les formulaires et intégration dans un site WEB

PostgreSQL. Formations. SQL avancé Calendrier... 18

Mercredi 15 Janvier 2014

MariaDB/MySQL Avancé. Pierre Mavro Creative Commons License

Les BASES de DONNEES dans WampServer

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Formation en Logiciels Libres. Fiche d inscription

Bases de Données relationnelles et leurs systèmes de Gestion

Cours Bases de données

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Bases de données et sites WEB

MySQL - Réplication. Fichiers de relais et de statut de la réplication. Mise en place de la réplication

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Les bases de données

La montée des bases de données open source

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Configuration de plusieurs serveurs en Load Balancing

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Master I Génie Logiciel

CHAPITRE 1 ARCHITECTURE

INTRODUCTION AUX BASES de DONNEES

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Le protocole FTP (File Transfert Protocol,

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Visual Paradigm Contraintes inter-associations

Les Géodatabases en 9.2

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Nouveautés Ignition v7.7

Bases de données Outils de gestion

//////////////////////////////////////////////////////////////////// Administration bases de données

Introduction aux Bases de Données 2004/2005

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Logiciel de création de badges personnalisés.

Bases de données Cours 1 : Généralités sur les bases de données

PHP et les Bases de données - Généralités

Transcription:

Contexte MySQL Introduction à MySQL (ou MySQL en 3 heures montre en main) Guillaume Allègre Guillaume.Allegre@silecs.info INP Grenoble - Formation Continue 2012 Contexte MySQL LAMP LAMP - contexte et architecture

Contexte MySQL LAMP LAMP : une architecture modulaire et exible 1. Les composantes Linux Apache MySQL Php : fortement lié à Apache (module) 2. Les variantes Pour Windows : EasyPHP, XAMP... Serveurs web : lighttpd ; NGINX, Cherokee... Base de Données SQL : PostgreSQL, SQLite, Oracle... NoSQL : Berkeley DB, Redis, CouchDB, MongoDB... Langages interprétés : Perl, Python, Ruby... Contexte MySQL LAMP Architecture LAMP (modules) Les données persistantes sont stockées dans un SGBD (MySQL).

MySQL Le monde des bases de données Les applications bureautiques tout-en-un File Maker Pro MS Access... Les applications clients-serveurs (SGBD) modèle relationnel ultra-majoritaire (tables=relations) un standard : SQL (Structured Query Language) NoSQL : objet, attribut-valeur, documents...

Principaux SGBDR du marché SGBDR propriétaires Oracle DB2 (IBM) MS SQL Server... SGBDR libres MySQL dérivés : Drizzle (cloud), MariaDB PostgreSQL Firebird (fork de Borland InterBase) SQLite embarqué (p. ex. Firefox, Thunderbird) SQL : Structured Query Language Un langage de requêtes normalisé Partagé (plus ou moins) par les principaux SGBDR Évolutions chronologiques SQL-86 (ANSI/ISO) SQL-89 ou SQL1 SQL-92 ou SQL2 SQL-99 ou SQL3 SQL:2003 SQL:2008 Composé de cinq parties principales : DDL dénition des données ex. CREATE, DROP DML manipulation des données ex. INSERT, UPDATE DCL contrôle des données ex. GRANT, REVOKE TCL contrôle des transactions ex. COMMIT, ROLLBACK procedural PSM (Persistent Stored Module), CLI (Call Level Interface), Embedded SQL...

MySQL c'est... un serveur de base de donnée relationnelle modèle client-serveur paquets client et serveur une application légère dans le monde des SGBDR le plus répandu des SGBDR libres multi-plateformes : Linux, Windows, OSX, etc. particulièrement utilisé sur le web (LAMP) partiellement conforme au standard SQL une évolution commerciale particulière créée en 1995 par une société suédoise (ABSoft) rachetée par Sun Microsytems début 2008 Sun rachetée par Oracle en 2009-2010 soumise à plusieurs forks : MariaDB, Drizzle diusée sous double licence libre (GPL) pour un usage interne ou libre propriétaire payant pour un usage propriétaire Les moteurs de stockage MyISAM le moteur par défaut, d'origine ABSoft très rapide pour des requêtes et des tables simples faible empreinte disque InnoDB moteur sophistiqué : intégrité, transactions développé par InnoBASE, rachetée par Oracle moteur plus complexe Archive prévu pour la journalisation = INSERT et SELECT seulement NDB stockage en cluster Aria successeur prévu pour MyISAM, repris par MariaDB

Installation Debian Paquets de base mysql-server mysql-client mysql-common Interface PhpMyAdmin phpmyadmin Apache et dépendances (serveur web) Php et dépendances Interfaces graphiques mysql-workbench-gpl (développement) Modélisation des données Administration des serveurs Développement SQL www.mysql.com/products/workbench/features.html L'architecture client - serveur Client-serveur classique une adresse IP ex. mysql -h 192.168.0.1 OU un nom de machine ex. mysql -h dbsrv.meteo.fr un port (=protocole) 3306 par défaut Cas particulier : client et serveur sur la même machine par défaut : localhost = utilisation des sockets Unix alternative : --host=127.0.0.1 ou --protocol=tcp Architectures avancées réplication : un serveur maître, plusieurs serveurs esclaves répartition : cluster de serveurs

PhpMyAdmin - TP Installation du paquet phpmyadmin Importation de la base disques.sql Importation de la base facsys-inno.sql Manipulation des tables et relations DPT DPT_groupt - id_dpt smallint [FK,U] - groupt enum [U] - periode varchar(50) - commentaire text id_dpt - id_dpt smallint [PK] - titre varchar(255) - titrecourt varchar(20) - introduction text - conclusion text - logo_url varchar(255) - date_creation timestamp id_dpt DPT_utilisateur - id_dpt smallint [FK] - id_utilisateur tinyint [FK] utilisateur_perm - id_utilisateur tinyint [FK] - perm enum 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 DPT_notice id_dpt - id_dpt smallint [FK,U] - id_notice mediumint [FK,U] - requete text - date_insert timestamp 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 id_fnsp per_id_fnsp id_notice notice_fnsp 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_notice - id_lnfnsp int [PK] - id_notice mediumint [FK] - id_fnsp smallint [FK] saisie_id_utilisateur -> id_utilisateur id_supplement id_journal id_utilisateur utilisateur - id_utilisateur tinyint [PK] - login varchar(20) [U] - password varchar(40) - id_institut tinyint [FK] id_utilisateur journal - id_journal tinyint [PK] - intitule varchar(100) - intart varchar(10) - id_revue_fripes mediumint - id_utilisateur tinyint [FK] - local enum - dpt tinyint id_utilisateur id_utilisateur id_institut institut - id_institut tinyint [PK] - nom varchar(20) [U] 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_fnsp indexfnsp - id_index mediumint [PK] - expression varchar(255) - commentaire text - id_fnsp mediumint [FK] IEP DP supplement id_journal - 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]

Les tables Une base de données (par ex. discotheque) est faite de tables. Table Disques Titre Auteur Date Cantates Bach J.S. 2006 Sonates Beethoven 2005 Concerto Dvorak 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... Le modèle relationnel - 1 Lister les données à stocker Structurer en entitésattributs (tableschamps) Normaliser : un attribut contient une seule valeur Fixer un identiant unique pour chaque entité (Primary Key) Normaliser : éviter les redondances d'un attribut Tracer un diagramme des associations (relations) Exemple de la gestion d'une liste de CD. Disques Titre Interprètes Compositeurs Genres musicaux Label Date de sortie Comment organiser ces données?

Le modèle relationnel - 2 Exemple de la gestion d'une liste de CD. Artistes id_artiste nom prenom Disques id_disque titre date id_label Genres id_genre intitule Labels id_label nom Relations Relation 1:N Chaque élément de Disques est lié à au plus un élément de Labels. Mais un élément de Labels peut correspondre à plusieurs disques. Disques id_disque titre date id_label Labels id_label nom Relation N:M Chaque élément de Disques est lié à plusieurs éléments de Genres, et réciproquement. Disques id_disque titre date Disques_Genres id_disque id_genre Genres id_genre intitule

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 Workbench (version GPL) L'interface web PhpMyAdmin (tierce) http://localhost/phpmyadmin/ (selon /etc/apache2/conf.d/phpmyadmin.conf) La documentation Le manuel de référence http://dev.mysql.com/doc/ multiples versions quelques traductions mises à jour régulières attention à la synchro des versions En PDF : imprimable... En format EPUB (livre électronique) En ligne de commande (terminal) : HELP... En ligne : HTML Commentaires utilisateurs

Authentication Des comptes ad-hoc, indépendants de l'os La connexion administrateur : root changer le mot de passe root : mysqladmin -u root password <secret> SET PASSWORD FOR root = PASSWORD('<secret>') créer des utilisateurs (et les gérer) CREATE USER user [IDENTIFIED BY 'password'],... DROP USER user [, user]... RENAME USER old-user TO new-user,... Premier contact - privilèges SHOW DATABASES ; USE mysql ; SHOW TABLES ; SHOW PRIVILEGES ; DESCRIBE user ; puis : db, host, table-priv, column-priv

GRANT et REVOKE Les diérents niveaux de privilèges serveur (ou global) base de données (et hôte) table colonne le contexte : par défaut : contexte global : base.table use db ; : contexte base : table.colonne Gestion de la structure de données Au niveau global CREATE DATABASE DROP DATABASE Au niveau base de données CREATE TABLE DROP TABLE RENAME TABLE ALTER TABLE