MySQL. 23 février 2003 Sommaire Rappel sur les bases de données Un SGDB : MySQL Interface avec PHP...
91
MySQL
MySQL. 23 février 2003 Sommaire Rappel sur les bases de données Un SGDB : MySQL Interface avec PHP Utilisation avec phpMyAdmin Utilisation en mode ligne
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