Guides

Qu'est-ce que Postgres? La base de données derrière de nombreuses applications, expliquée

Postgres (officiellement PostgreSQL) est une base de données relationnelle gratuite et à code source ouvert : un programme qui stocke les données d'une application dans des tables de lignes et de colonnes, relie ces tables entre elles et répond à des questions à leur sujet dans un langage appelé SQL. Il est reconnu pour sa fiabilité, sa rigueur à garder les données exactes et sa souplesse, qui lui permet de gérer aussi bien une liste d'inscription qu'un vaste ensemble de dossiers d'entreprise. De nombreuses applications web, et de nombreux services qui les hébergent, reposent sur lui.

Pourquoi c'est important quand on crée avec l'IA

Lorsqu'un générateur d'applications par IA ajoute « une base de données » à votre projet, il y a de bonnes chances qu'il s'agisse de Postgres. Vous n'avez pas besoin d'écrire du SQL pour l'utiliser, mais une petite compréhension vous mène loin :

  • Vous pouvez décrire les données selon la forme dont la base de données a besoin. « Les clients ont plusieurs commandes; chaque commande comprend plusieurs articles » se traduit directement en tables.
  • Vous pouvez demander les bonnes protections. Postgres peut refuser de lui-même les mauvaises données — un courriel en double, une commande pour un client qui n'existe pas —, si l'IA configure les règles.
  • Vous pouvez vérifier ce que l'IA a fait. Les noms de tables, les colonnes et les relations sont faciles à vérifier dans un visualiseur de tables, même si vous ne touchez jamais au code.

Une analogie du quotidien : un bureau de classement très rigoureux

Imaginez un bureau de classement avec une armoire pour chaque type de chose : une pour les clients, une pour les commandes, une pour les produits. Chaque fiche d'un tiroir comporte les mêmes cases imprimées à remplir. Chaque fiche a un numéro unique, et une fiche de commande ne répète pas les coordonnées du client; elle indique simplement « client n° 214 », en renvoyant au tiroir des clients.

Le commis est strict. Il ne classera pas une commande qui pointe vers un client inexistant. Il n'acceptera pas une fiche dont la case de date est laissée vide si elle est obligatoire. Et si vous lui demandez de transférer de l'argent d'une fiche de compte à une autre, il effectuera les deux moitiés ou aucune — jamais une seule.

Ce commis, c'est Postgres. Les tiroirs sont les tables, les cases imprimées sont les colonnes, chaque fiche est une ligne, et le lien « client n° 214 » est une clé étrangère.

Ce que Postgres fait bien

FonctionnalitéCe que cela signifie en termes simples
Tables et relationsLes données vivent dans des tables qui pointent les unes vers les autres, de sorte que rien n'est copié à cinq endroits
SQLUn langage standard pour poser des questions : « toutes les commandes impayées du mois dernier, les plus récentes d'abord »
Transactions (ACID)Un groupe de modifications se réalise en totalité ou pas du tout, même si le serveur tombe en panne à mi-chemin
ContraintesDes règles que la base de données applique elle-même : champs obligatoires, courriels uniques, liens valides entre les tables
IndexDes raccourcis de recherche qui gardent les requêtes rapides à mesure que les tables grossissent
JSONBStocker des données souples, de type document, dans une colonne lorsqu'une structure fixe ne convient pas
Recherche plein texteRechercher des mots dans des champs de texte sans service de recherche distinct, pour les cas simples
ExtensionsDes modules complémentaires comme PostGIS pour les cartes et les lieux, ou pgvector pour stocker des plongements d'IA
Sécurité au niveau des lignesDes règles, à l'intérieur de la base de données, qui déterminent les lignes qu'un utilisateur donné peut voir

Postgres a commencé comme projet de recherche à l'Université de Californie à Berkeley, dans les années 1980, et il est développé ouvertement par une communauté mondiale depuis les années 1990. Cette longue histoire explique pourquoi il est souvent le choix par défaut : il est bien documenté, largement soutenu, et chaque grand fournisseur infonuagique propose une version gérée.

Exemple concret : transformer un tableur en tables

Supposons que vous dirigez une petite entreprise de traiteur et que vous suivez tout dans un seul tableur : chaque ligne est un événement, avec le nom, le téléphone et le courriel du client, la date, les plats et le prix.

Les problèmes apparaissent vite. Le même client figure sur six lignes avec deux numéros de téléphone différents. Les plats sont saisis dans une seule cellule sous la forme « bouchées x40, salade x2 », de sorte qu'il est impossible de totaliser le nombre de bouchées préparées ce mois-ci.

Dans Postgres, les mêmes renseignements deviennent quatre tables :

TableColonnesRemarques
clientsid, name, phone, emailLe courriel doit être unique
eventsid, client_id, date, venue, statusclient_id doit correspondre à un client réel
menu_itemsid, name, unit_priceUne ligne par plat
event_itemsevent_id, menu_item_id, quantityRelie les événements aux plats, avec une quantité

Désormais, le numéro de téléphone d'un client ne vit qu'à un seul endroit. « Combien de bouchées avons-nous préparées en mars? » est une seule requête SQL. Et lorsque vous enregistrez un nouvel événement avec ses articles, une transaction garantit que vous ne vous retrouvez jamais avec un événement dont la moitié des articles seulement est enregistrée.

C'est l'étape que les gens sautent lorsqu'ils demandent à une IA de « faire une application à partir de mon tableur ». Le guide pour transformer un tableur en application va plus loin.

Termes clés

  • Table, ligne, colonne : un type de chose, une occurrence de ce type, une information sur cette chose.
  • Clé primaire : l'identifiant unique de chaque ligne, généralement id.
  • Clé étrangère : une colonne qui pointe vers une ligne d'une autre table, comme client_id.
  • Schéma : la conception de toutes vos tables et colonnes.
  • Migration : une modification enregistrée et reproductible du schéma, comme « ajouter une colonne venue aux événements ».
  • Requête : une question ou une instruction écrite en SQL.
  • Chaîne de connexion : l'adresse et le mot de passe que votre backend utilise pour atteindre la base de données. C'est un secret — voir variables d'environnement et secrets.
  • Postgres géré : un service qui fait fonctionner, sauvegarde et met à jour Postgres à votre place.

Pour les opérations quotidiennes que toute application effectue sur ces tables — créer, lire, modifier, supprimer —, voir ce que signifie CRUD.

Erreurs courantes et idées reçues

  • Une seule table géante. Copier le tableur colonne par colonne mène aux mêmes problèmes de duplication. Séparez les éléments qui se répètent dans leurs propres tables.
  • Stocker des listes dans un seul champ de texte. « bouchées x40, salade x2 » dans une seule colonne ne peut pas être compté ni recherché correctement. Utilisez une table de liaison.
  • Aucune contrainte. Sans « le courriel doit être unique » ni « chaque événement doit avoir un client », de mauvaises données se glissent discrètement et apparaissent des mois plus tard.
  • Modifier la base de données à la main en production. Demandez les changements de schéma sous forme de migrations, afin que la modification soit consignée et puisse être répétée.
  • Laisser le navigateur parler directement à la base de données. L'interface doit passer par votre backend, qui vérifie les autorisations. Le mot de passe de la base de données n'a jamais sa place dans le code de la page.
  • « Postgres n'est que pour les grandes entreprises. » Il fonctionne tout aussi bien pour une liste d'attente de 50 lignes, et vous n'aurez pas à le quitter en grandissant.
  • Supposer qu'une base de données est une sauvegarde. Elle conserve les données; elle ne vous protège pas automatiquement contre leur suppression. Vérifiez quelles sauvegardes votre hébergeur offre.

Quoi demander à votre générateur d'IA

  • « Enregistre [les éléments] dans une base de données. Tables : … avec ces champs : … Relie chaque [commande] à un [client]. »
  • « Rends le courriel unique pour les clients. Rends ces champs obligatoires. N'autorise pas une commande sans client. »
  • « Utilise des migrations pour chaque changement de schéma. »
  • « Ajoute des index pour les recherches que nous faisons le plus souvent : les commandes par client et par date. »
  • « Tout accès à la base de données passe par le serveur. Garde la chaîne de connexion dans des variables d'environnement. »

Si vous ne connaissez pas du tout l'idée d'une base de données, commencez par qu'est-ce qu'une base de données, puis revenez ici. Une application full-stack montre où se place la base de données à côté de l'interface et du backend.

Postgres sur Mythex

Mythex accorde à chaque projet qui en a besoin sa propre base de données Postgres dédiée. Vous n'avez rien à configurer : demandez-le dans le clavardage (« enregistre les courriels de la liste d'attente dans une base de données ») ou utilisez la commande /database, et Mythex l'associe, injecte les détails de connexion dans votre application et peut créer les tables pour vous. La base de données d'une application publiée se met en veille après cinq minutes d'inactivité et se réveille à la requête suivante; vous êtes facturé pour le temps pendant lequel elle a réellement été active, à partir du même solde de crédits que celui de la création. Les détails se trouvent dans la documentation sur les bases de données, et les modèles de tableaux de bord sont un bon endroit pour voir des applications alimentées par des données.

Questions

Postgres est-il la même chose que PostgreSQL?

Oui. PostgreSQL est le nom officiel et Postgres est le nom abrégé courant; les deux désignent la même base de données relationnelle à code source ouvert.

Postgres est-il gratuit?

Oui. PostgreSQL est un logiciel à code source ouvert sous la licence permissive PostgreSQL, vous pouvez donc l'utiliser gratuitement, y compris dans des produits commerciaux. Vous ne payez que les serveurs ou le service géré qui le fait fonctionner.

Quelle est la différence entre Postgres et MySQL?

Ce sont deux bases de données SQL relationnelles gratuites, et toutes deux conviennent à la plupart des applications. Postgres est reconnu pour son intégrité stricte des données, ses types de données riches comme JSONB et les tableaux, et son vaste écosystème d'extensions; MySQL est reconnu pour sa simplicité et sa longue présence dans l'hébergement web.

Postgres convient-il à une petite application?

Oui. Il fonctionne très bien pour une simple liste d'attente d'une seule table comme pour de grands systèmes de production, de sorte que vous n'aurez pas à changer de base de données à mesure que l'application grandit. Les services gérés facilitent l'exploitation sans administrateur de bases de données.

Mythex · Pricing · Créez n'importe quoi avec l'IA · Modèles de sites web et d'applications · Mythex comparé · Glossaire de la création d'applications avec l'IA · Outils gratuits pour créer des applications avec l'IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)