Base de données
Une base de données informatique est un ensemble de données qui ont été stockées sur un support informatique, et organisées et structurées de manière à pouvoir facilement consulter et modifier leur contenu.
Prenons
l'exemple d'un site web avec un système de news et de membres. On va
utiliser une base de données MySQL pour stocker toutes les données du
site : les news (avec la date de publication, le titre, le contenu,
éventuellement l'auteur,…) et les membres (leurs noms, leurs emails,…).
Tout ceci va constituer notre base de données pour le site. Mais il ne suffit pas que la base de données existe. Il faut aussi pouvoir la gérer, interagir avec cette base. Il faut pouvoir envoyer des message à MySQL (messages qu'on appellera "requêtes"), afin de pouvoir ajouter des news, modifier des membres, supprimer, et tout simplement afficher des éléments de la base.
Tout ceci va constituer notre base de données pour le site. Mais il ne suffit pas que la base de données existe. Il faut aussi pouvoir la gérer, interagir avec cette base. Il faut pouvoir envoyer des message à MySQL (messages qu'on appellera "requêtes"), afin de pouvoir ajouter des news, modifier des membres, supprimer, et tout simplement afficher des éléments de la base.
Une base de données seule ne suffit donc pas, il est nécessaire d'avoir également :
- un système permettant de gérer cette base ;
- un langage pour transmettre des instructions à la base de données (par l'intermédiaire du système de gestion).
SGBD
Un Système de Gestion de Base de Données (SGBD) est un logiciel (ou un ensemble de logiciels) permettant de manipuler les données d'une base de données.
Manipuler, c'est-à-dire sélectionner et afficher des informations
tirées de cette base, modifier des données, en ajouter ou en supprimer
(ce groupe de quatre opérations étant souvent appelé "CRUD", pour
Create, Read, Update, Delete).
MySQL est un système de gestion de bases de données.
MySQL est un système de gestion de bases de données.
Le paradigme client - serveur
La plupart des SGBD sont basés sur un modèle Client - Serveur.
C'est-à-dire que la base de données se trouve sur un serveur qui ne
sert qu'à ça, et pour interagir avec cette base de données, il faut
utiliser un logiciel "client" qui va interroger le serveur et
transmettre la réponse que le serveur lui aura donnée. Le serveur peut
être installé sur une machine différente du client ; c'est souvent le
cas lorsque les bases de données sont importantes. Ce n'est cependant
pas obligatoire, ne sautez pas sur votre petit frère pour lui emprunter
son ordinateur. Dans ce tutoriel, nous installerons les logiciels
serveur et client sur un seul et même ordinateur.
Par conséquent, lorsque vous installez un SGBD basé sur ce modèle (c'est le cas de MySQL), vous installez en réalité deux choses (au moins) : le serveur, et le client. Chaque requête (insertion/modification/lecture de données) est faite par l'intermédiaire du client. Jamais vous ne discuterez directement avec le serveur (d'ailleurs, il ne comprendrait rien à ce que vous diriez).
Vous avez donc besoin d'un langage pour discuter avec le client, pour lui donner les requêtes que vous souhaitez effectuer. Dans le cas de MySQL, ce langage est le SQL.
Par conséquent, lorsque vous installez un SGBD basé sur ce modèle (c'est le cas de MySQL), vous installez en réalité deux choses (au moins) : le serveur, et le client. Chaque requête (insertion/modification/lecture de données) est faite par l'intermédiaire du client. Jamais vous ne discuterez directement avec le serveur (d'ailleurs, il ne comprendrait rien à ce que vous diriez).
Vous avez donc besoin d'un langage pour discuter avec le client, pour lui donner les requêtes que vous souhaitez effectuer. Dans le cas de MySQL, ce langage est le SQL.
SGBDR
Le R de SGBDR signifie "relationnel".
Un SGBDR est un SGBD qui implémente la théorie relationnelle. MySQL
implémente la théorie relationnelle ; c'est donc un SGBDR.
La
théorie relationnelle dépasse le cadre de ce tutoriel, mais ne vous
inquiétez pas, il n'est pas nécessaire de la maîtriser pour être capable
d'utiliser convenablement un SGBDR. Il vous suffit de savoir que dans
un SGBDR, les données sont contenues dans ce qu'on appelle des relations, qui sont représentées sous forme de tables. Une relation est composée de deux parties, l'en-tête et le corps.
L'en-tête est lui-même composé de plusieurs attributs. Par exemple,
pour la relation "Client", on peut avoir l'en-tête suivant :
Numéro
|
Nom
|
Prénom
|
Email
|
---|
Quant au corps, il s'agit d'un ensemble de lignes
(ou n-uplets) composées d'autant d'éléments qu'il y a d'attributs dans
le corps. Voici donc quatre lignes pour la relation "Client" :
Numéro
|
Nom
|
Prénom
|
Email
|
---|---|---|---|
1
|
Jean
|
Dupont
|
jdupont@email.com
|
2
|
Marie
|
Malherbe
|
mama@email.com
|
3
|
Nicolas
|
Jacques
|
Jacques.nicolas@email.com
|
4
|
Hadrien
|
Piroux
|
happi@email.com
|
Différentes opérations peuvent alors être appliquées à ces relations,
ce qui permet d'en tirer des informations. Parmi les opérations les
plus utilisées, on peut citer (soient A et B deux relations) :
- la sélection (ou restriction) : obtenir les lignes de A répondant à certains critères ;
- la projection : obtenir une partie des attributs des lignes de A ;
- l'union - A \cup B : obtenir tout ce qui se trouve dans la relation A ou dans la relation B ;
- l'intersection - A \cap B : obtenir tout ce qui se trouve à la fois dans la relation A et dans la relation B ;
- la différence - A - B : obtenir ce qui se trouve dans la relation A mais pas dans la relation B ;
- la jointure - A \bowtie B : obtenir l'ensemble des lignes provenant de la liaison de la relation A et de la relation B à l'aide d'une information commune.
Un
petit exemple pour illustrer la jointure : si l'on veut stocker des
informations sur les clients d'une société, ainsi que les commandes
passées par ces clients, on utilisera deux relations : client et
commande, la relation commande étant liée à la relation client par une
référence au client ayant passé commande.
Un petit schéma clarifiera tout ça !
Un petit schéma clarifiera tout ça !

Le
client numéro 3, M. Nicolas Jacques, a donc passé une commande de trois
tubes de colle, tandis que Mme Marie Malherbe (cliente numéro 2) a
passé deux commandes, pour du papier et des ciseaux.
Le langage SQL
Le SQL (Structured Query Language) est un langage informatique qui permet d'interagir avec des bases de données relationnelles.
C'est le langage pour base de données le plus répandu, et c'est bien
sûr celui utilisé par MySQL. C'est donc le langage que nous allons
utiliser pour dire au client MySQL d'effectuer des opérations sur la
base de données stockée sur le serveur MySQL
Il
a été créé dans les années 1970 et c'est devenu standard en 1986 (pour
la norme ANSI - 1987 en ce qui concerne la norme ISO). Il est encore
régulièrement amélioré.