Qu'est-ce qu'une base de données? Guide pour les personnes qui créent des apps
Une base de données est un entrepôt organisé d'information dans lequel une app écrit et lit — ses utilisateurs, ses commandes, ses réservations, ses messages. Contrairement aux renseignements conservés seulement dans un onglet de navigateur, les données d'une base de données restent présentes après un rafraîchissement ou un redémarrage, et toutes les personnes qui utilisent l'app voient les mêmes enregistrements. La plupart des bases de données organisent les données en tables, un peu comme les feuilles d'un tableur, mais avec des règles strictes qui assurent leur cohérence.
Pourquoi c'est important quand on crée avec l'IA
La surprise la plus courante chez les personnes qui créent avec l'IA est une app qui semble terminée mais qui oublie tout. Vous ajoutez un client, vous rafraîchissez la page, et il a disparu. Cela signifie généralement que l'app conservait les données dans la mémoire du navigateur, et non dans une base de données.
Une base de données est aussi l'endroit où se trouvent bon nombre de vos décisions les plus importantes, que vous en soyez conscient ou non :
- Ce que vous enregistrez. Si vous ne conservez pas le statut d'une réservation, vous ne pouvez pas afficher les réservations annulées.
- Comment les choses sont liées. Qu'un client puisse avoir plusieurs réservations, ou qu'une réservation comporte plusieurs services, façonne toute l'app.
- Qui peut voir quoi. La plupart des erreurs de confidentialité concernent les enregistrements qu'un utilisateur peut lire.
Vous n'avez pas à concevoir vous-même la base de données. Mais comprendre les bases vous permet de décrire clairement vos données et de repérer les problèmes tôt.
Une analogie du quotidien
Imaginez une armoire de classement bien tenue dans un petit bureau.
Chaque tiroir contient un seul type de chose : un tiroir pour les clients, un pour les rendez-vous, un pour les factures. À l'intérieur de chaque tiroir, chaque dossier suit le même format, avec les mêmes champs remplis. Chaque dossier porte un numéro de référence unique, et lorsqu'une facture appartient à un client, le dossier de la facture indique le numéro de ce client au lieu de photocopier tout son dossier.
C'est une base de données relationnelle. Les tiroirs sont les tables, les dossiers sont les lignes, les champs sont les colonnes, les numéros de référence sont les clés primaires, et les renvois vers un autre dossier sont les clés étrangères. Un bon gestionnaire de bureau impose aussi des règles — pas de rendez-vous sans date, pas deux clients avec le même numéro —, tout comme une base de données.
Exemple concret : une app de réservation pour un salon de coiffure
Supposons que vous demandiez à une IA de créer un site de réservation pour un salon de coiffure. Une base de données sensée comporterait quatre tables.
services
| id | nom | durée_minutes | prix |
|---|---|---|---|
| 1 | Coupe | 45 | 40,00 |
| 2 | Coloration | 90 | 95,00 |
employés
| id | nom | courriel |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
clients
| id | nom | courriel | téléphone |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
réservations
| id | client_id | service_id | employé_id | début | statut |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmée |
Regardez la table réservations. Elle ne recopie pas le nom et le téléphone de Lena dans chaque réservation; elle enregistre client_id = 101. Si Lena change de numéro de téléphone, la modification se fait à un seul endroit, et chaque réservation affiche le nouveau numéro. C'est l'idée centrale d'une base de données relationnelle : enregistrer chaque fait une seule fois, et y renvoyer par un lien.
La même structure répond à des questions utiles :
- « Quels créneaux sont libres pour Omar vendredi? » — consulter les réservations d'Omar ce jour-là.
- « Combien les rendez-vous de coloration ont-ils rapporté ce mois-ci? » — relier les réservations aux services et additionner les prix.
- « Quels clients n'ont pas réservé depuis 90 jours? » — comparer les clients à leur dernière réservation.
Termes courants expliqués
| Terme | Signification |
|---|---|
| Table | Un ensemble d'enregistrements d'un même type, comme les clients ou les réservations. |
| Ligne (enregistrement) | Un élément d'une table — un client, une réservation. |
| Colonne (champ) | Un élément d'information que chaque ligne possède, comme le courriel ou le prix. |
| Clé primaire | Un identifiant unique pour chaque ligne, généralement un nombre ou une chaîne aléatoire. |
| Clé étrangère | Une colonne qui pointe vers une ligne d'une autre table, comme client_id dans les réservations. |
| Schéma | La conception générale : les tables qui existent, leurs colonnes et leurs liens. |
| Requête | Une demande pour lire ou modifier des données, comme « toutes les réservations de demain ». |
| SQL | Structured Query Language, le langage standard pour interroger les bases relationnelles. |
| Migration | Une modification enregistrée et reproductible du schéma, comme l'ajout d'une colonne. |
| Index | Une structure de recherche qui accélère les recherches sur une colonne, comme l'index d'un livre. |
| CRUD | Create, Read, Update, Delete — les quatre opérations de base que font les apps avec les données. |
| Sauvegarde | Une copie des données que vous pouvez restaurer si quelque chose tourne mal. |
Types de bases de données
| Type | Mode de stockage | Exemples | Idéal pour |
|---|---|---|---|
| Relationnelle (SQL) | Tables aux colonnes fixes et liens entre elles | Postgres, MySQL, SQLite | La plupart des apps d'affaires : réservations, boutiques, gestion de la relation client, SaaS |
| Documents (NoSQL) | Documents souples de type JSON | MongoDB, Firestore | Des données dont la forme varie beaucoup d'un enregistrement à l'autre |
| Clé-valeur | Une valeur stockée sous une clé | Redis | La mise en cache, les données de courte durée comme les sessions |
Pour presque tout ce qu'un fondateur ou une petite entreprise construit en premier, une base relationnelle est le choix sûr par défaut.
Où se situe la base de données dans votre app
Les visiteurs ne parlent jamais directement à la base de données. La page dans leur navigateur (l'interface frontale) demande des données à votre serveur (le backend), généralement par une API. Le serveur vérifie qui fait la demande et si cette personne y a droit, interroge ensuite la base de données et renvoie uniquement ce que cette personne doit voir.
Cette étape intermédiaire est importante. Si le navigateur pouvait interroger directement la base de données avec un accès complet, n'importe qui pourrait ouvrir les outils de développement et tout lire.
Erreurs courantes et idées fausses
- Conserver les données seulement dans le navigateur. Le stockage du navigateur (comme localStorage) se trouve sur un seul appareil et dans un seul navigateur. C'est acceptable pour un filtre mémorisé, mais pas pour des commandes.
- Tout entasser dans une seule table. Une seule table « réservations » qui recopie dans chaque ligne le nom du client, son téléphone et le prix du service se désynchronise rapidement.
- Conserver les mots de passe en texte clair. Les mots de passe doivent être hachés, jamais stockés lisibles. Voir qu'est-ce que l'authentification.
- Aucune règle sur les données. Sans champs obligatoires ni règles d'unicité, vous obtiendrez des réservations sans date et des clients en double.
- Oublier la suppression. Décidez si la suppression d'un client supprime aussi ses réservations, les conserve ou est bloquée.
- Utiliser les données de production pour expérimenter. Testez d'abord les modifications risquées dans un environnement sûr, et conservez des sauvegardes.
- Considérer le tableur comme la base de données pour toujours. Les tableurs conviennent très bien pour débuter, mais ils peinent avec de nombreux utilisateurs simultanés et les permissions. Voir comment transformer un tableur en app.
Ce qu'il faut demander à votre créateur d'apps par IA
- « Enregistre ceci dans une base de données, pas dans le navigateur. Dis-moi quelles tables tu vas créer. »
- « Montre-moi le schéma sous forme de tableau simple : chaque table, ses colonnes et leurs liens. »
- « Un client peut avoir plusieurs réservations; chaque réservation comporte exactement un service et un employé. »
- « Rends le courriel obligatoire et unique pour les clients. »
- « Empêche que deux réservations pour le même employé se chevauchent. »
- « Seul le propriétaire connecté peut lire toutes les réservations; les clients ne voient que les leurs. Applique cette règle sur le serveur. »
- « Quand je supprime un service, ne supprime pas les réservations passées — désactive plutôt le service. »
Les bases de données dans Mythex
Lorsque votre app doit enregistrer des données, Mythex ajoute au projet une base de données Postgres dédiée — vous pouvez le demander dans le clavardage (« enregistre les inscriptions à la liste d'attente dans une base de données ») ou utiliser la commande /database. Les renseignements de connexion sont transmis automatiquement à votre app, et l'agent crée les tables. La base de données se met en veille après cinq minutes d'inactivité et se réveille à la requête suivante; l'utilisation publiée est facturée pour le temps pendant lequel elle a été active, à partir du même solde de crédits que la création. Elle est offerte dans les forfaits Gratuit et Pro. La documentation sur les bases de données donne tous les détails, et les gabarits d'apps proposent des points de départ axés sur les données.
Questions
Qu'est-ce qu'une base de données, en termes simples?
Une base de données est un entrepôt organisé d'information dans lequel une app peut écrire et lire, comme les utilisateurs, les commandes ou les réservations. Contrairement aux données conservées seulement dans un onglet de navigateur, elles restent présentes après un rafraîchissement, un redémarrage ou lorsqu'une personne ouvre l'app depuis un autre appareil.
Un tableur est-il une base de données?
Un tableur peut contenir le même type de données, mais il n'est pas conçu pour les apps. Une véritable base de données impose des règles sur ce que contient chaque colonne, relie les tables entre elles de façon fiable, gère plusieurs personnes qui écrivent en même temps et contrôle qui peut lire quoi.
Quelle est la différence entre les bases de données SQL et NoSQL?
Les bases de données SQL (relationnelles), comme Postgres et MySQL, conservent les données dans des tables aux colonnes définies, avec des relations entre elles. Les bases NoSQL, comme MongoDB, conservent des documents plus souples. La plupart des apps d'affaires — réservations, gestion de la relation client, boutiques — s'adaptent très bien au modèle relationnel.
Mon app a-t-elle besoin d'une base de données?
Si elle doit retenir quoi que ce soit que les gens saisissent — inscriptions, commandes, messages, paramètres — et l'afficher plus tard ou à une autre personne, oui. Un site purement informatif, sans formulaire qui enregistre des données, n'en a généralement pas besoin.