La
base de données (BDD) est un système qui enregistre des informations. Un peu comme un fichier texte ? Non, pas vraiment. Ce qui est très important ici, c'est que ces informations sont toujours
classées. Et c'est ça qui fait que la BDD est si pratique : c'est un moyen simple de ranger des informations.
Et si je préfère rester bordélique ? Si j'ai pas envie de classer mes informations ?
Est-on obligé de classer chaque information qu'on enregistre ?
C'est un peu ce que je me disais au début... Classer certaines choses ok, mais il me semblait que je n'en aurais besoin que très rarement.
Grave erreur ! Vous allez le voir, 99% du temps on range ses informations dans une base de données. Pour le 1% restant, on peut enregistrer dans un fichier comme on a appris à le faire... mais quand on a goûté aux bases de données on peut difficilement s'en passer ensuite !
Imaginez par exemple une armoire, dans laquelle chaque dossier est à sa place.
Quand tout est à sa place, c'est beaucoup plus facile de retrouver un objet n'est-ce pas ? Eh bien là c'est pareil : en classant les informations que vous collectez (par exemple des informations sur vos visiteurs), il vous sera très facile après de récupérer ce que vous cherchez.
Les SGBD s'occupent du stockage
Je vous ai présenté brièvement les SGBD (Systèmes de Gestion de Base de Données) dans le premier chapitre du cours. Les SGBD sont les programmes qui se chargent du stockage de vos données.
Les plus connus sont, pour rappel :
- MySQL : libre et gratuit, c'est probablement le SGBD le plus connu. Nous l'utiliserons dans ce cours.
- PostgreSQL : libre et gratuit comme MySQL, avec plus de fonctionnalités mais un peu moins connu.
- SQLite: libre et gratuit, très léger mais très limité en fonctionnalités.
- Oracle : utilisé par les très grosses entreprises, sans aucun doute un des SGBD les plus complets mais il n'est pas libre et on le paie le plus souvent très cher.
- Microsoft SQL Server : le SGBD de Microsoft.
Il faut donc choisir le SGBD que vous allez utiliser pour stocker les données. Je vous recommande de travailler plutôt avec les SGBD libres et gratuits, tels que MySQL, PostgreSQL et SQLite. Après, tout est question de goût et des fonctionnalités que vous recherchez. MySQL est un bon compromis.
Nous allons utiliser MySQL mais sachez que l'essentiel de ce que vous allez apprendre fonctionnera de la même manière avec un autre SGBD. Ce cours est construit afin que vous ayez le moins de choses possible à réapprendre si vous choisissez de changer de SGBD.
Vous donnez les ordres au SGBD en langage SQL
Vous allez devoir communiquer avec le SGBD pour lui donner l'ordre de récupérer ou d'enregistrer des données. Pour "parler" avec le SGBD, on utilise le langage SQL.
La bonne nouvelle, c'est que le langage SQL est un standard, c'est-à-dire que quel que soit le SGBD que vous utilisez vous utiliserez le langage SQL. La mauvaise, c'est qu'il y a en fait quelques petites variantes d'un SGBD à l'autre, mais cela concerne généralement les commandes les plus avancées.
Comme vous vous en doutez, il va falloir apprendre le langage SQL pour travailler avec les bases de données. Ce langage n'a rien à voir avec le PHP, mais nous allons impérativement en avoir besoin.
Voici un exemple de commande en langage SQL pour vous donner une idée :
Code : SQL | SELECT id, auteur, message, datemsg FROM livreor ORDER BY datemsg DESC LIMIT 0, 10
|
Le principal objectif de cette partie du cours sera d'apprendre à utiliser ce langage SQL pour que vous soyez capables de donner n'importe quel ordre à la base de données, comme par exemple : "Récupère-moi les 10 dernières news de mon site", "Supprime le dernier message posté dans ce forum", etc.
PHP fait la jonction entre vous et MySQL
Pour compliquer un petit peu l'affaire (sinon c'est pas rigolo), on ne va pas pouvoir parler à MySQL directement. Eh non, seul PHP peut le faire !
C'est donc PHP qui va faire l'intermédiaire entre vous et MySQL. On devra demander à PHP : "Va dire à MySQL de faire ceci.".
Je crois qu'un petit schéma ne serait pas de refus...
Voici ce qu'il peut se passer lorsque le serveur a reçu une demande d'un client qui veut poster un message sur vos forums :
- Le serveur utilise toujours PHP, il lui fait donc passer le message.
- PHP effectue les actions demandées et se rend compte qu'il a besoin de MySQL. En effet, le code PHP contient à un endroit "Va demander à MySQL d'enregistrer ce message". Il fait donc passer le travail à MySQL.
- MySQL fait le travail que PHP lui avait soumis et lui répond "OK, c'est bon !"
- PHP renvoie au serveur que MySQL a bien fait ce qui lui était demandé.
Maintenant que nous avons fait les présentations, il va falloir découvrir comment est organisée une base de données. Bien comprendre l'organisation d'une base de données est en effet absolument indispensable.