Les bases de données

Analyse, prise de décision, parcours client, elles sont partout.
Temps de lecture : 5 minutes

👋,

Bienvenue dans The Tech Guide.

Je suis Nicolas GAUTRON, développeur web freelance depuis plus de 10 ans.

Ça m'aiderait beaucoup si tu pouvais partager le lien d'inscription.
Plus vous serez nombreux, plus j’attirerai les sponsors, garantissant la gratuité de cette newsletter ❤️.


Les systèmes informatiques ont besoin de garder en mémoire tout un tas d’informations. Comptes clients, état d’un abonnement ou encore tout simplement le contenu du site.

Ces informations sont stockées via des logiciels que l’on nomme “système de gestion de bases de données”. Un site web d’envergure utilise plusieurs technologies de base de données, chacune spécialisée pour une utilisation particulière. Entre autres :

  • Travail sur d’énormes lots de données.
  • Ou au contraire sur une donnée unitaire.
  • Moteur de recherche.
  • Identification des relations.
  • Stockage de documents et de médias.
  • Accès ultra rapide.

Aujourd’hui, nous allons nous focaliser sur les systèmes de gestion de bases de données relationnelles. Ce sont les technologies les plus utilisées par les développeurs dans leur vie quotidienne. Tu as peut-être déjà entendu parler de MySQL, Oracle, SQL Server ou PostgreSQL.

Construisons une newsletter 💪

Imagine une base de données comme étant un fichier Excel.
Un onglet du fichier représente ce qu’on nomme une “table”.
Une colonne d’une table se nomme un “champ”.
Une ligne d’une table est appelée “tuple”, “entrée”, “ligne” ou “enregistrement”.


Par exemple, si tu veux modéliser dans une base de données cette newsletter, les merveilleuses personnes qui s’y sont abonnées et les envois de mail :


Table : édition

identifiant titre date_publication contenu
bases-de-donnees The Tech Guide #5 - Les bases de données 2024-01-05 Bienvenue dans…
frontend-backend The Tech Guide #4 - Front-end et Back-end 2023-09-10 👋, bienvenue…

Table : abonnement

identifiant email
1 foo@bar.com
2 hello@world.com

Table : mail_envoyé

identifiant_édition identifiant_abonnement date_envoi
bases-de-donnees 1 2024-01-05
bases-de-donnees 2 2024-01-06

Tu obtiens deux tables qui représentent des objets concrets : édition et abonnement. Chaque ligne se voit attribuer manuellement ou automatiquement un identifiant unique. On le nomme “clé primaire”.

La troisième table, mail_envoyé, utilise ces clés pour mettre en relation les éditions et les abonnements entre eux. Elle manipule des “clés étrangères”.

Cette façon d’organiser les données explique le nom “base de données relationnelle”.

SQL

Pour manipuler ces tables, nous utilisons le Structured Query Language.

Le SQL, prononcé S.Q.L et anciennement sequel, se veut un langage naturel proche de l’Anglais. Il permet très facilement d’écrire des requêtes pour réaliser les 4 opérations de base du traitement de données :

  • Création. Exemple : quelqu’un s’abonne à la newsletter.
  • Lecture. Exemple : vérifier qui a déjà reçu l’édition pour ne pas l’envoyer 2 fois.
  • Mise à jour. Exemple : correction d’une faute d’orthographe dans le contenu.
  • Suppression. Exemple : désinscription de la newsletter.

Par exemple, pour obtenir les détails de cette édition : SELECT titre, contenu FROM édition WHERE identifiant = “bases-de-donnees”

Facile n'est-ce pas ? 😉
On peut faire des trucs de zinzin en SQL mais la syntaxe de base reste vraiment accessible à tout le monde.

C’est exactement cette requête qui est jouée si tu affiches la page https://fr.the-tech.guide/post/bases-de-donnees/. L’URL est analysée pour en extraire l’identifiant de l’édition. Il est ensuite injecté dans la requête SQL permettant de construire la page.

La base de données me sert dans ce cas à n’avoir à coder qu’une seule page et à générer automatiquement toutes les variantes.

😱 Et si quelqu’un trafique l’URL dans l’espoir de modifier la requête SQL sous-jacente ?

Ça s’appelle une injection SQL. C’est la faille exploitée dans 90% des hacks de sites.
Chaque utilisation d’une donnée publique aux utilisateurs doit être sécurisée. Tous les jours, des robots tentent aléatoirement des milliers d’injections sur les sites les plus connus.

NoSQL

Les bases de données relationnelles, malgré leur puissance, montrent toutefois des limites sur de gros volumes de données.

L’avènement du Cloud et du BigData a vu émerger de nouvelles technologies catégorisées comme “NoSQL”.

Globalement, on nomme NoSQL les bases de données qui ne sont pas relationnelles. C’est une dénomination super large regroupant tout un tas de technologies.
Fun fact : les techno NoSQL utilisent souvent le langage SQL ou un dérivé 🤪. Ils ont essayé de rattraper ce nommage moisi en Not Only SQL.

Dans une base NoSQL, les données sont organisées complètement différemment, en tout cas dans le moteur interne du logiciel. Ça permet de les distribuer plus facilement sur différentes machines et donc d’augmenter à l’infini la puissance de calcul et la mémoire disponible.

C’est tout pour aujourd’hui 🖖.


Ce contenu t'a plu ? Il plaira à coup sûr à ton entourage !
N'oublie pas de partager le lien d'inscription.


Des questions, des remarques, des encouragements ? N’hésite pas à m’envoyer un message sur Linkedin ou directement en commentaire de cette édition.

À bientôt !

😘