IV.2.Apports de MySQL et PHP
Tout avantage de la combinaison MySQL/PHP par rapport à
une solution CGI classique tient dans la puissance et la facilité
d'utilisation de ces outils. La comparaison entre les deux techniques montre
que l'environnement MySQL/PHP nous permet de faire beaucoup mieux et beaucoup
plus. Il est en fait assez facile de se convaincre que l'approche
adoptée par le programme CGI au chapitre précédent souffre
de nombreuses faiblesses et que beaucoup d'efforts seraient nécessaires
pour obtenir une application tenant la route. Les problèmes
découlent en premier lieu de l'utilisation directe des fichiers texte
:
? Rigidité du format ;
? Lourdeur d'accès aux données ; ? Manque de
sécurité ;
? Pas de contrôle de concurrence.
Tous ces problèmes sont reconnus comme étant
très difficiles à résoudre. Il existe donc des logiciels
spécialisés qui prennent en charge tous les problèmes
d'accès aux données stockées dans un ou plusieurs
fichiers, plus généralement appelées base de
données10. Ces logiciels sont les systèmes de
gestion de bases de données, (SGBD), et MySQL en est un
représentant.
IV.2.1.MySQL
Le recours à MySQL permet de masquer les détails
complexes et fastidieux liés à l'utilisation de fichiers. MySQL
gère pour nous les fichiers constituant une base de données,
prend en charge les fonctionnalités de protection et de
sécurité et fournit un ensemble d'interfaces de programmation
(dont une avec PHP) facilitant l'accès aux données.
10 Bases des données : Ensemble d'informations
enregistrées dans un support pour satisfaire simultanément
plusieurs utilisateurs de façon sélective et au moment opportun.
Base des données G3 Math-info/upn 2010-2011.Cours Inédit. CT
Docteur KAZADI.
44
La complexité de logiciels MySQL est due à la
diversité des techniques mises en oeuvre, à la
multiplicité des composants intervenant dans leur architecture, et
également aux différents types d'utilisateurs (administrateurs,
programmeurs, non informaticiens, ...) qui sont confrontés, à
différents niveaux, au système.
MySQL consiste en un ensemble de programme qui sont
chargés de gérer une ou plusieurs bases de données, et qui
fonctionnent selon une architecture client/serveur.
Figure 8:Serveur et client de MySQL
? Le serveur mysqld. Le processus mysqld est le
serveur de MySQL. Lui seul peut accéder aux fichiers stockant les
données pour lire et écrire des informations.
? Utilitaires. MySQL fournit tout un ensemble de programmes,
que nous appellerons utilitaires par la suite, qui sont chargés
de dialoguer avec mysqld, par l'intermédiaire d'une
connexion, pour accomplir un type de tâche particulier. Par
exemple mysqldump permet d'effectuer des sauvegardes, mysqlimport
peut importer des fichiers ASCII dans une base, ... Le client le plus
utile est simplement nommé mysql, et permet d'envoyer
directement des commandes au serveur.
45
La base de données est un ensemble de fichiers stockant
les informations selon un format propre à MySQL et qui peut être
resté inconnu à l'utilisateur. Le serveur est le seul
habilité à lire/écrire dans ce fichiers, en fonction de
demandes effectuées par des clients MySQL.
Notons qu'il peut y avoir plusieurs clients accédant
simultanément à une même base. Le serveur se charge de
coordonner ces accès. Les clients de MySQL communiquent avec le serveur
pour effectuer des recherches ou des mises à jour dans la base. Cette
communication n'est pas limitée à des processus situés sur
la même machine : il est possible de s'adresser au serveur MySQL par un
réseau comme l'Internet, même si nous n'utiliserons pas cette
possibilité puisque notre client (un serveur web Apache) est
situé sur la même machine physique que le processus
mysqld.
Il est possible de créer soi-même son propre
client MySQL en utilisant des outils de programmation qui se présentent
sous la forme d'un ensemble de fonctions, habituellement désigné
par l'acronyme API pour Application Programming Interface. MySQL
fournit une API en langage C, à partir de laquelle plusieurs autres ont
été crées, dont une API en PHP. Comme tous les autres
clients de MySQL, un script PHP en association avec Apache doit établir
une connexion avec le serveur pour pouvoir dialoguer avec lui et rechercher ou
mettre à jour des données (figure IV.8.).
|