CEC A.-CHAVANNE Sites Web et bases de données 1 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – – – Modélisation des données (méthode) Securité (pannes) – 2 représentation des données de l’application interrogation des données (requêtes, langage) optimisation des requêtes Gestion de droits d’accès Accès multiples en simultané MySQL : un SGBD à la mode 3 QU'EST-CE QUE MySQL ? C'est un SGBD relationnel – – – Gratuit (www.mysql.com), sous la GNU GPL Disponible sous Windows et tous les Unix Propose le minimum vital – Qualités reconnues (outre la gratuité): 4 (Presque) tout le langage SQL Stockage, indexation, optimisation Simplicité Efficacité Robustesse QUELQUES LIMITES DE MySQL Pas de transactions ! – Pas de requêtes imbriquées – Pas très grave !? Pas d'environnement de développement – 5 Inadapté pour les applications transactionnelles (finances, réservations) Tout se fait en mode texte, sauf avec certains “Frontend” ! SITUATION ACTUELLE Très prisé pour les sites web – – En fort développement – – 6 Intégration des transactions ? Beaucoup de « contributions » extérieures – Très bonne intégration avec Apache et PHP Tout est gratuit ! API en C++, Perl, PHP, Java (JDBC) Des clients graphiques, des utilitaires En résumé, un moteur SQL, simple et efficace ARCHITECTURE DE MySQL mysql Connexion Connexion phpMyAdmin Serveur mysqld Connexion utilisateur mysqlimport var Connexion mysqladmin 7 mysql Films LES BASES DE DONNÉES Une base = un répertoire ! Une table = 3 fichiers ! DATADIR FILMS mysql 8 (/mysql/var) Film.MYD Film.MYI Film.frm Artiste.MYD Artiste.MYI Artiste.frm rigaux_p Données Index Structure LES DROITS Un utilisateur peut avoir plusieurs types de droits: – – – – 9 sur le serveur (administration) sur les bases et tables (création, destruction) sur les données (lecture, écriture) sur d'autres utilisateurs (transmission de droits) Le compte root est le DBA: il a tous les droits sur tout CRÉATION DE BASES ET DE TABLES On peut créer des bases soit : Comme root directement sur le serveur En ayant une entrée par phpMyAdmin En ayant une entrée par un “front-end” 10 TYPES DE DONNÉES MySQL MySQL reconnaît les principaux types SQL2 : – – – – – – – – 11 – INTEGER : les entiers FLOAT : numériques flottants DECIMAL (M, D) : numériques exacts CHAR : chaînes de longueur fixe VARCHAR :chaînes de longueur variable TEXT : textes longs DATE : dates TIME : moments + quelques autres MySQL EN RÉSUMÉ Tout à fait conforme à la norme SQL ANSI Avec des extensions (très utiles) – – – 12 Types de données (TEXT, BLOB) Contraintes (AUTO_INCREMENT) Beaucoup de fonctions