Le stockage des données est devenu, au fil des années, un enjeu fondamental de l'industrie du numérique. Nous allons, dans cette série d'activités, nous initier à l'utilisation d'une base de données.
Les sites de commerce en ligne, les réseaux sociaux,... ont besoin de stocker une grande quantité de données (les articles de site de commerce, les messages postés sur les réseaux sociaux...).
Il est important que vous compreniez, dès à présent, que beaucoup de données transitant sur internet sont stockées sur des serveurs (pour en savoir plus sur la notion de serveur voir le texte consacré aux réseaux ici), "bien au chaud" en attendant d'être réutilisées.
Le stockage et le traitement massifs des données est souvent appellé "big data". Si vous voulez en savoir plus sur le "big data", je vous conseille la lecture de l'article wikipedia consacré à ce sujet ici.
Mais où sont stockées les données sur un serveur ?
La mémoire vive (RAM) est la première réponse qui pourrait nous venir à l'esprit, mais que deviendraient les données en cas d'extinction de l'ordinateur ? Elles seraient tout simplement perdues !
Le stockage en RAM ne peut donc être que provisoire.
La solution est d'utiliser une mémoire dite de masse qui n'a pas besoin d'être alimentée en électricité pour conserver les données : les disques durs, les clés usb, les cartes SD sont des mémoires de masse (la capacité de stockage est aussi beaucoup plus importante que la RAM, « en contrepartie », la mémoire de masse est plus lente (lecture/écriture) que la mémoire vive).
Ok, nous allons donc stocker nos données sur le disque dur au lieu de simplement les garder en mémoire, mais sous quelle forme ?
Il est tout à fait possible d'écrire les données à conserver dans un fichier qui sera stocké sur le disque dur. Cette solution qui a le mérite de la simplicité peut montrer rapidement ses limites, notamment quand la structure des données devient complexe.
Nous allons donc utiliser un système extrêmement répandu : la base de données.
Les données seront tout de même stockées dans des fichiers qui se trouveront sur un disque dur, mais la base de données va organiser toutes ses données d'une manière extrêmement complexe, ce qui permettra à l'utilisateur de lire ou d'écrire des données (on parle d'entrées) de façon simple et rapide. Il n'est pas nécessaire de comprendre le fonctionnement interne de la base de données pour l'utiliser (heureusement !).
Il existe beaucoup de systèmes de base de données différents : MySQL, Oracle, Microsoft SQL server......toutes ces bases de données ont un point commun : elles sont de type SQL (le SQL est un langage utilisé pour effectuer des opérations sur une base de données (création, lecture, écriture...)). On parle aussi de bases de données relationnelles.
Depuis quelque temps, l'utilisation de bases de données « noSQL » (not only SQL) se développe (ces bases de données n'utilisent pas le SQL comme langage de requête), elles ont de nombreux avantages (mais aussi quelques inconvénients !) par rapport aux bases de données SQL, mais je n'en parlerai pas ici.
Dans ce qui suit, nous allons utiliser une base de données noSQL dénommée MongoDB (DB pour Data Base).