Cette nouvelle leçon a pour objet de découvrir et de comprendre la structure d’une base de données et d’une table à proprement parler.
Pour bien comprendre la complexité de certaines bases de données, nous allons prendre l’exemple de bases de données d’un WordPress et d’un PrestaShop que nous visualiserons grâce à phpMyAdmin.
Structure d’une base de données
Une base de données est généralement constituée de tables. Une table est une collection cohérente de données. Par exemple, dans le cas d’un site e-commerce, vous aurez certainement une table « Clients », une autre table « Commandes », etc.
On représente habituellement une table sous forme de tableau. Une table va ainsi être constituée de lignes qu’on appelle également entrées et de colonnes.
L’intersection entre une ligne et une colonne est ce qu’on appelle un champ. Un champ est l’équivalent d’une cellule dans un tableau et va contenir une donnée particulière (un ID, le nom d’un utilisateur, un numéro de téléphone, etc.).
Dans une table, chacun des champs d’une même ligne ou entrée va généralement être relatif à un même sujet. Si votre base de données possède une table « Clients » par exemple, la première ligne va regrouper des informations relatives à un client en particulier.
En colonne, nous allons trouver des informations de même type. Une table « Clients » par exemple pourra contenir des colonnes comme « Id du client », « nom du client », « adresse mail », « numéro de téléphone », etc.
Voici par exemple comment pourrait se présenter une table « Clients » d’un site e-commerce :
IdClient | NomClient | Adresse | Ville | CodePostal | Pays | |
---|---|---|---|---|---|---|
1 | Pierre Giraud | 30 avenue des Acacias | Toulon | 83000 | France | pierre.giraud@edhec.com |
2 | Victor Durand | 50 boulevard Jean Jaurès | Lille | 59000 | France | victor.durand@gmail.com |
3 | Julia Palaz | 113 avenue de Versailles | Paris | 75016 | France | ju.palaz@gmail.com |
4 | Chloé Joly | 28 rue Sainte Catherine | Bordeaux | 33000 | France | cjoly@outlook.fr |
5 | Florian Buisson | 88 allée des sportifs | Lyon | 69002 | France | florian.b@gmail.com |
Dans ce cas-là, notre table « Clients » possède 7 colonnes et 5 entrées.
Chacun de vos tables va généralement posséder une colonne de type « ID » (identifiant) qui va nous permettre par la suite d’établir des correspondances entre tables en identifiant précisément une donnée en particulier.
Par exemple, dans un site e-commerce, nous aurons généralement deux tables « Clients » et « Commandes » dans notre base de données. La table « Clients » va contenir des informations relatives à chaque client tandis que la table « Commandes » va contenir les informations relatives à chaque commande (montant, date, etc.).
Si ces deux tables ont été créées de manière intelligente, elles vont chacune contenir une colonne « ID » (« IdClient » pour la table « Clients » et « IdCommande » pour la table « Commandes »). Ces Ids vont nous permettre d’accéder et de récupérer simplement les informations relatives à un client ou à une commande,
De plus, dans ce cas précis, il va être ici très intéressant d’avoir une même colonne « Id client » dans la table « Clients » et dans la table « Commandes » pour ensuite pouvoir récupérer l’historique des commandes d’un client ainsi que les informations relatives à ce client d’un coup.
Exemple d’une base de données WordPress vue depuis phpMyAdmin
Voyons immédiatement comment se présente une « vraie » base de données en la visualisant avec phpMyAdmin et profitons-en également pour découvrir ce logiciel.
Ici, je vais vous présenter deux bases de données : l’une issue d’une installation WordPress et l’autre issue d’un PrestaShop, tous les deux vierges (sans aucune modification).
Normalement, que vous utilisiez MAMP ou WAMP, vous devriez pouvoir accéder à phpMyAdmin depuis la page d’accueil du logiciel comme ci-dessous :
Notes :
- Il est possible que vous ne possédiez pas les droits d’accès à phpMyAdmin. Si l’accès n’est pas autorisé, vous devrez modifier votre fichier de configuration.
- Si vous utilisez LAMP, vous devrez au préalable installer phpMyAdmin. Référez vous à la documentation officielle pour effectuer cette opération.
En cliquant sur phpMyAdmin, nous arrivons sur la page d’accueil du logiciel.
En haut de la page, vous avez différents onglets :
- Un onglet « Bases de données » à partir duquel nous allons pouvoir créer de nouvelles bases de données en un clic ;
- Un onglet « SQL » dans lequel nous allons pouvoir exécuter directement des requêtes SQL ;
- Un onglet « Etat » qui nous donne des informations sur l’état / le statut du serveur ainsi que des statistiques sur les requêtes exécutées, etc. ;
- Un onglet « Comptes d’utilisateurs » qui nous permet de gérer et d’ajouter des utilisateurs pour gérer les bases de données ;
- Un onglet « Exporter » qui nous permet d’exporter des bases de données ;
- Un onglet « Importer » qui nous permet d’importer des bases de données ;
- Un onglet « Paramètres » qui va nous permettre de choisir nos préférences d’affichage, de création de bases de données ou de requêtes SQL, les paramètres par défaut lors d’un import ou d’un export, etc. ;
- Un onglet « Réplication » qui va nous permettre de répliquer (dupliquer) une base de données en créant une base « slave » ;
- Un onglet « Variables » qui liste toutes les variables utilisées et utilisables ainsi que leurs valeurs actuelle et globale et qui nous permet de les modifier;
- Un onglet « Jeux de caractères » qui affiche la liste des jeux de caractères (charset) disponibles ;
- Un onglet « Moteurs » qui affiche la liste des moteurs (engines) disponibles sur ce serveur ;
- Un onglet « Greffons » qui correspond en fait à la liste des extensions (plugins) disponibles.
Nous n’allons bien évidemment pas voir ici en détail ce que signifie chaque onglet et comment utiliser telle ou telle fonctionnalité de phpMyAdmin car ce n’est pas le sujet de cette leçon.
Retenez simplement pour le moment que phpMyAdmin est un logiciel complet qui propose toutes les fonctionnalités nécessaires pour nous permettre de gérer les paramètres et de manipuler nos bases de données.
Pour l’instant, ce qui nous intéresse est la liste que vous pouvez voir à gauche de la page. Ceci est la liste des bases de données que j’ai créées.
Lorsque vous cliquez sur une base de données, vous avez accès à la liste des tables de celle-ci. Ici, nous allons particulièrement nous intéresser à mes deux bases « ps_reference » et « wp_reference » qui contiennent les tables créées automatiquement lors de l’installation en local d’un PrestaShop et d’un WordPress.
En cliquant sur ma base de données « wp_reference », on peut voir que cette base contient 12 tables, dont la table « wp_comments » qui va par exemple stocker les commentaires des utilisateurs ou la table « wp_users » qui va stocker les différents utilisateurs inscrits sur notre blog et les informations les concernant.
Note : Certaines images par la suite seront tronquées tout simplement car certaines tables sont très longues et je ne peux pas tout afficher dans une image ou cela serait illisible pour vous.
Vous pouvez déjà voir que l’interface de phpMyAdmin nous permet d’effectuer toutes sortes d’action sur nos tables : affichage, recherche, insertion, suppression…
En cliquant sur « Structure » de la table « wp_comments », nous allons par exemple pouvoir voir la structure de notre table, c’est-à-dire les différentes colonnes de celles-ci et obtenir des informations par rapport à ces colonnes (type de données attendues, etc.).
En cliquant sur « Afficher », nous avons cette fois-ci accès à la liste des entrées c’est-à-dire, pour notre table « wp_comments », à la liste des commentaires postés sur notre blog. Comme je viens jute d’installer ce WordPress et comme je ne me suis même jamais connecté à son back office, cette table est vide car je n’ai pour le moment aucun commentaire sur mon blog (qui encore une fois n’est même pas à proprement dit créé).
Revenons maintenant en arrière et intéressons-nous cette fois ci à notre base de données « ps_reference ». En cliquant dessus, on s’aperçoit que PrestaShop a installé beaucoup plus de tables que WordPress. En effet, nous avons 250 tables dans notre base de données !
Je ne vais bien entendu pas expliquer à quoi correspond chaque table. L’idée à retenir ici est que selon les besoins d’une solution, la base de données ne va pas du tout être créée de la même manière que pour une autre solution.
Qui crée et comment créer les bases de données et les tables ?
Une nouvelle fois, en informatique, rien n’est magique et c’est bien là la difficulté de la gestion des bases de données.
Vous avez deux choix lors de la création d’un site Internet : soit utiliser une solution préconçue et prête à installer comme un PrestaShop ou un WordPress par exemple et le modifier ensuite selon vos besoins, soit créer une solution sur mesure.
Si vous choisissez d’installer une solution comme PrestaShop ou WordPress, vous n’aurez pas à vous soucier de la construction ni de la cohérence de vos bases de données. En effet, les solutions comme WordPress ou PrestaShop vont se charger de créer automatiquement les tables dont elles ont besoin.
Il vous suffira simplement de créer la base de données vide et d’indiquer son nom ainsi que les bons identifiants lors de l’installation de WordPress ou PrestaShop afin que la solution arrive à établir une connexion avec votre système de gestion de bases de données et puisse créer les tables. Notez que nombre d’hébergeurs vont même faire cela à votre place en vous proposant des « installations en 1 clic ».
En revanche, si vous décidez de créer un site vous-même de A à Z et d’utiliser les bases de données, alors il va bien falloir réfléchir à la structure et celles-ci.
Pour cela, vous devrez toujours vous demander quel type de données vous souhaitez stocker et pourquoi et également comment récupérer telle ou telle donnée par la suite.
Je ne vais pas vous mentir : bien créer une base de données requiert une grande expérience en tant que développeur et gestionnaire de projet et également une capacité d’anticipation et une vision d’ensemble du projet. Si vous devez un jour créer une structure relativement complexe, la simple création de la structure de votre base de données peut prendre des mois !
Dans la suite du cours, je vais vous donner les clefs pour manipuler les bases de données. Cependant, vous devrez faire ce travail de réflexion sur quelles données vous souhaitez stocker et pourquoi par vous-même.