mysql. 23 février 2003 sommaire rappel sur les bases de données un sgdb : mysql interface avec php...

91
MySQL

Upload: bertrand-billon

Post on 03-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

  • Page 1
  • MySQL
  • Page 2
  • 23 fvrier 2003 Sommaire Rappel sur les bases de donnes Un SGDB : MySQL Interface avec PHP Utilisation avec phpMyAdmin Utilisation en mode ligne Les SGBD disponibles au CC
  • Page 3
  • Rappel sur les bases de donnes
  • Page 4
  • 23 fvrier 2003 Quest une base de donnes ? Cest un ensemble de donnes organises Une base de donnes contient des tables qui dcrivent les types des donnes Les tables contiennent leur tour des enregistrements qui sont les vraies donnes En utilisant un identifiant commun entre les tables il est possible de les relier entre elles. Jargon Une relation est une une table comportant des colonnes (appeles aussi attributs) dont le nom et le type caractrise le contenu qui sera insr dans la table. Les enregistrements sont galement appels des tuples.
  • Page 5
  • 23 fvrier 2003 Un exemple Supposons que lon veuille stocker dans une base de donnes la liste des participants un colloque. On va donc crer une relation (table) Personne qui aura pour attributs (colonnes) : nom, prnom, e-mail, laboratoire. NomPrnomE-MailLaboratoire [email protected] de Calcul [email protected] de Calcul Personnes
  • Page 6
  • 23 fvrier 2003 Algbre relationnelle Cest lensemble des oprations possible sur les relations. On distingue : La projection : on ne slectionne quun ou plusieurs attributs dune relation en ignorant les autres. La slection : on slectionne tout ou partie des tuples en fonction de critres de slection qui portent sur les valeurs des attributs. La jointure : on fabrique une nouvelle relation partir de 2 ou plusieurs en prenant comme pivot (ou lment commun) un ou plusieurs attributs. Cette algbre est facilement possible avec la syntaxe SQL (Strutured Query Language) : SELECT attributs FROM relations WHERE criteres
  • Page 7
  • 23 fvrier 2003 Projection NomPrnomE-MailLaboratoire [email protected] de Calcul Macchi Pierre- Etienne [email protected] de Calcul NomPrnom CharnayDaniel MacchiPierre-Etienne On projette la table Personnes sur les colonnes nom, prnom Personnes SELECT nom,prnom FROM Personnes
  • Page 8
  • 23 fvrier 2003 Slection NomPrnomE-MailLaboratoire [email protected] de Calcul [email protected] de Calcul [email protected] On ne slectionne que les tuples dont lattribut laboratoire est gal ISN Personnes SELECT * FROM Personnes WHERE Laboratoire="ISN" NomPrnomE-MailLaboratoire [email protected]
  • Page 9
  • 23 fvrier 2003 Jointure NomPrnomE-MailLabo [email protected] [email protected] [email protected] On joint les 2 tables grce la colonne Labo. Personnes SELECT Personnes.Nom, Personnes.Prnom, Unit.Ville FROM Personnes, Unit WHERE Personnes.Labo=Unit.Labo VilleLabo VilleurbanneCC VilleurbanneCC GrenobleISN Unit NomPrnomVille CharnayDanielVilleurbanne MacchiPierre-EtienneVilleurbanne BoutherinBernardGrenoble
  • Page 10
  • Un SGBD : MySQL Syntaxe
  • Page 11
  • 23 fvrier 2003 Types des attributs (1) Les attributs peuvent avoir des types trs diffrents : Nombre entier sign ou non (numro d'ordre, nombre d'objets) Nombre virgule (prix, temprature) Date et heure (date de naissance, heure de l'insertion) Enumration (un laboratoire parmi une liste) Ensemble (une ou des comptences parmi une liste) Il s'agit de choisir le type le plus adapt aux besoins Les types requirent une plus ou moins grande quantit de donnes stocker : il vaut mieux choisir un type varchar pour stocker un nom qu'un type longtext. Les types de MySQL sont conformes avec la norme SQL ANSI mais des ajouts ont t pratiqus
  • Page 12
  • 23 fvrier 2003 Types des attributs (II) - entiers nom taille en octets SQL Ansi ?borne infrieureborne suprieure TINYINT1 -128127 TINYINT UNSIGNED1 0255 SMALLINT2 -3276832767 SMALLINT UNSIGNED2 065535 MEDIUMINT3 -83886088388607 MEDIUMINT UNSIGNED3 016777215 INT*4 -21474836482147483647 INT* UNSIGNED4 04294967295 BIGINT8 -92233720368547758089223372036854775807 BIGINT UNSIGNED8 018446744073709551615 * : INTEGER est un synonyme de INT
  • Page 13
  • 23 fvrier 2003 Types des attributs (III) - flottants Les flottants (ou nombres rels) sont des nombres virgule. Contrairement aux entiers nomtaille en octetsSQL ANSI ? FLOAT4 DOUBLE8 REAL8 NUMERIC(M,D)*M+2 si D>0 M+1 si D=0 D+2 si M0 M+1 si D=0 D+2 si M show databases; Administration mysqladmin : administration en mode ligne mysqlimport : import de donnes partir de fichiers textes mysqldump : export des donnes dans un fichier texte">
  • 23 fvrier 2003 Commandes en mode ligne Moniteur MySQL : mysql -h [database_host] -u [utilisateur] -p [password] Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 67831 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; Administration mysqladmin : administration en mode ligne mysqlimport : import de donnes partir de fichiers textes mysqldump : export des donnes dans un fichier texte
  • Page 86
  • Les SGDB disponibles au CC
  • Page 87
  • 23 fvrier 2003 Les bases de donnes relationnelles au CC ServeursClients natifs disponibles sous Observations Oracle 7.3.42 serveurs Aix 4.1 ccdb et prodAix Fin de support migration vers Oracle 9 en cours Oracle 8i Version 8.1.7.4 1 serveur Aix 4.3.3 dev8iAix, Solaris, Linux Oracle 9i Release 2 Version 9.2.0.2 1 serveur de dveloppement (dev9i), 1 serveur de production : les 2 sous Solaris Solaris, Linux Nouvelle plateforme de dveloppement et de production MySQL Version 3.23.53 1 serveur LinuxAix, Solaris, Linux Pas dvolution majeure prvue hormis les mises jour de scurit PostgreSQL Version 7.3 1 serveur sous Aix 4.3.3Aix, Solaris, Linux Oracle 9i AS Release 2 Version 9.0.2 2 serveurs sous Solaris : 1 pour la GED 1 sur la machine web Serveur dapplications Oracle * Tous les SGBD dans toutes leurs versions sont galement acessibles via le web travers des langages de scripting comme perl ou php, et via les drivers JDBC dans des applications Java.
  • Page 88
  • 23 fvrier 2003 - Soit environ 32 Go de donnes hberges dans des bases Oracle. -Labandon des versions 7 et 8i va se traduire par la migration vers Oracle 9i denviron 18 Go de donnes - Lespace occup par les bases de donnes du domaine public est faible : elles hberge le plus souvent des donnes pour la gestion de sites web. Les bases de donnes relationnelles au CC
  • Page 89
  • 23 fvrier 2003 Comparatif rapide OracleMySQLPostgreSQL Gestion des transactions et verrous ComplteVerrous poss au niveau des lignes Commande LOCK pas de gestion de transaction Requtes imbriquesOuiNonOui VuesOuiNonOui Intgrit rfrentielleOuiNonOui Oprateurs ensemblistesOuiNon DclencheursOuiNonOui Procdures stockesOuiNonOui FonctionsOuiNonOui SauvegardeMcanismes avancs intgrs dans le noyeau Utilitaires shell ncessitant des prcautions Id. Pour quels besoins ?Bases de donnes complexes,requtes complexes. Donnes ne pouvant tre perdues en cas de crash. Nombreux utilisateurs en simultan Monitoring complet Diffusion gratuite Bases de donnes simples Pages Web dynamiques Diffusion gratuite Alternative gratuite Oracle
  • Page 90
  • 23 fvrier 2003 -Les avantages CC -Administration des bases -Mise jour des versions -La sauvegarde des donnes -Le support -Site http://database.in2p3.frhttp://database.in2p3.fr -Actualits -Accs aux documentations -Tutoriaux en Java, Perl et PHP -Outils PHP dadministration pour MySQL et PostgreSQL [email protected]@cc.in2p3.fr [email protected] Boite outils
  • Page 91
  • 23 fvrier 2003 Liens La rfrence PHP (anglais & franais) : http://www.php.net La rfrence MySQL (anglais) : http://www.mysql.com Le manuel MySQL traduit en franais ici : http://dev.nexen.net/docs/ Des cours et articles intressants : http://www.developpez.com Loutil phpMyAdmin : http://phpmyadmin.sourceforge.net