Bienvenue dans ce cours sur les bases de données ! Je vais vous apprendre à les utiliser comme j’ai appris à le faire par moi-même il y a quelques années : en pratiquant. :)
Découvrez votre mission dans ce cours
Dans ce cours, nous allons créer ensemble une base de données (BDD) pour une application imaginaire, Foodly. Cette application permet à des internautes de sélectionner les aliments qu’ils souhaitent acheter pour voir leur composition en protéines, graisses, sucres, etc.
La BDD de Foodly va donc stocker les données dont l’application a besoin pour fonctionner, à savoir :
Les utilisateurs inscrits ;
Les aliments disponibles.
Chacune de ces données aura des caractéristiques, comme l’e-mail pour l’utilisateur ou les calories pour les aliments. Nous allons les voir par la suite.
À la fin de ce cours, vous aurez créer plusieurs utilisateurs en base, de nombreux aliments, ainsi qu’un moyen de lier les utilisateurs aux aliments qu’ils ont achetés.
Avant de mettre les mains dans le cambouis, on doit passer par une indispensable : le choix et l’installation de notre système de gestion de bases de données. Car sans lui, pas de BDD.
Installer des logiciels sur son ordinateur n’est pas la chose la plus drôle. Pour avoir dû installer deux fois d’affilée toutes les librairies (petits programmes qui nous permettent de coder) sur mon ordinateur professionnel, après me l’être fait voler, je peux vous l’assurer, personne n’aime ça. 😆 Je vous promets de faire au mieux pour rendre cela plaisant et aller droit au but.
Votre objectif une fois cette partie finie : être capable de choisir votre système de gestion de base de données et de l’installer.
Choisissez votre SGBD
Qu’est-ce qu’un système de gestion de bases de données, ou SGBD ?
Le SGBD est le logiciel qui va vous permettre de manipuler les données d’une base. C’est ce logiciel qui commande les interactions avec votre base pour y récupérer, ajouter, modifier ou supprimer des données.
Pour échanger avec votre base, vous allez donc donner des ordres à votre SGBD. Des ordres en français ? Pas exactement ! Ces ordres, vous allez les lui donner dans un langage très simple : le langage SQL. Pas d’inquiétude, on va avancer pas à pas ensemble pour que vous puissiez prendre en main ce langage !
Le SQL, abréviation de Structured Query Language (en français, langage de requête structurée), est un langage informatique qui vous permet d'interagir avec vos bases de données. C’est le plus répandu ; par conséquent il est indispensable de le connaître. On va donc s’en servir pour gérer notre base de données pour la suite du cours.
Quel est le lien entre le SGBD et le langage SQL ?
Imaginez qu’un utilisateur arrive sur Foodly. Il scanne un aliment présent dans son supermarché pour connaître ses caractéristiques nutritionnelles. Que va faire notre application ? L’application va traduire cette recherche en SQL et l’envoyer au SGBD, qui va récupérer l’aliment en question dans le stockage de la base de données, pour ensuite le redonner à l’application. L’utilisateur retrouvera ainsi son aliment avec toutes ses caractéristiques.
Chaque SGBD implémente sa propre syntaxe du SQL en plus des normes communes à tous. Vous vous demandez sûrement pourquoi il existe différents SGBD et comment en choisir un plutôt qu’un autre. C’est exactement ce que je vais vous expliquer dans la suite de ce chapitre.
Pourquoi connaître tous les SGBD du marché ?
Petite anecdote : j’ai appris à coder des BDD avec PostgreSQL (un autre SGBD dont on va parler juste après). Certains de mes amis autodidactes ont appris avec SQLite ou MySQL. Un conseil : partez du principe que, dans 90 % des cas, le SGBD utilisé dans votre entreprise ne sera pas celui avec lequel vous aurez appris à implémenter une BDD. Je vous encourage donc à maîtriser les bases du SQL et sa logique, comme ça, vous vous en sortirez quel que soit le SGBD.
Découvrez les différents SGBD
MySQL
MySQL est le plus connu des SGBD. C’est le plus utilisé, car il était (auparavant) open-source (ce qui veut dire que son code et son utilisation étaient gratuits). J’insiste sur le “auparavant”, car MySQL a depuis été racheté par Oracle Corporation, et n’est plus open-source. Néanmoins, il en existe une “copie” open-source appelée MariaDB, qui suit les mêmes règles de langage que MySQL (et que je vous recommande).
MySQL est surtout connu pour être le SGBD utilisé par les sites WordPress, ce qui a fait grandement augmenter sa popularité.
Malgré cette popularité, c’est un peu la “tête de mule” des SGBD. Il ne suit pas rigoureusement la syntaxe préconisée par le SQL. Il est aussi parfois trop “permissif” sur les requêtes SQL, provoquant des erreurs.
Mais c’est un SGBD robuste, qui fonctionne très bien, même sur de grandes quantités de données ! Par exemple, c’était pendant longtemps le seul SGBD utilisé par Facebook.
Oracle Database
Oracle est le SGBD édité par Oracle Corporation (oui, la même entreprise que celle qui a racheté MySQL). C’est très cher, mais utile pour traiter un très gros volume de données. Du coup, ce sont presque exclusivement les grandes entreprises qui l’utilisent.
Mais même en entreprise (il est par exemple utilisé par Samsung), Oracle tend à se faire rattraper par les SGBD open-source type MariaDB ou PostgreSQL. Il est en réelle perte de vitesse sur le marché.
PostgreSQL
Ah, mon SGBD préféré ! ❤️
PostgreSQL est “l’autre” grand SGBD open-source disponible sur le marché. Moins utilisé que MySQL car longtemps confiné au monde linuxien (système d’exploitation Linux 😉), et plus obscur aux yeux des débutants.
Mais c’est en train de changer car c’est le SGBD qui suit le plus les recommandations du SQL, ainsi que le plus rapide (ces dernières années). Il est notamment utilisé par Instagram ou par Spotify.
SQLite
SQLite, c’est le “petit frère”. Mais petit ne veut pas dire moins puissant, bien au contraire.
À l’instar des autres SGBD, SQLite stocke toute la base de données dans un seul et unique fichier. Peu propice à l’utilisation sur un grand nombre de données, c’est un SGBD très simple à configurer et qui “ne prend pas la tête”. C’est d’ailleurs le SGBD qu’on utilise quand on développe une base de données “en local” (sur son ordinateur), alors qu’une fois “en production” (sur un serveur spécifique généralement utilisé par votre entreprise ou vos clients), on va utiliser MySQL ou PostgreSQL. C’est aussi le SGBD utilisé par vos applications Android (par exemple pour vos films Netflix en mode hors-connexion) pour stocker de la donnée !
Pour vous aider, voici un tableau récapitulatif des forces et faiblesses de chaque SGBD :
| MySQL | Oracle Database | PostgreSQL | SQLite |
Popularité | ✅très répandu | ✅utilisé par les grands groupes ayant un grand nombre de données | ❌moins répandu que les autres | ✅répandu pour le prototypage |
Prix | ✅gratuit (licence fermée) | ❌très cher (licence fermée) | ✅gratuit (open-source) | ✅gratuit (open-source) |
Similarité avec le langage SQL | ❌ne suit pas toujours la syntaxe SQL | ❌ne suit pas toujours la syntaxe SQL | ✅suit la syntaxe SQL de très près | ✅suit bien la syntaxe SQL |
Entreprises utilisatrices | ℹ️utilisé par Facebook | ℹ️utilisé par Samsung | ℹ️utilisé par Spotify | ℹ️utilisé pour les apps Android |
En résumé
Le langage SQL sert à communiquer entre votre application et votre base de données. Mais c’est le SGBD qui récupère la commande en SQL pour en sortir de la donnée depuis la base.
MySQL est un système de gestion de bases de données (SGBD). C’est même le plus répandu sur le marché.
Il existe de nombreux SGBD différents. Pas besoin de les apprendre tous. Même si chacun a ses spécificités, ils se ressemblent grandement.
Maintenant que vous savez ce qu'est un SGBD et à quoi il va vous servir, installons-le sur votre ordinateur !