Què és una base de dades? Guia per a qui crea aplicacions
Una base de dades és un magatzem organitzat d'informació que una aplicació desa i de la qual llegeix —els seus usuaris, comandes, reserves, missatges. A diferència de la informació que només es guarda a una pestanya del navegador, les dades d'una base de dades continuen allà després d'actualitzar la pàgina o reiniciar, i tots els qui usen l'aplicació veuen els mateixos registres. La majoria de bases de dades organitzen les dades en taules, una mica com els fulls d'un full de càlcul, però amb regles estrictes que mantenen les dades coherents.
Per què importa quan construeixes amb IA
La sorpresa més habitual per a qui construeix amb IA és una aplicació que sembla acabada però ho oblida tot. Afegeixes un client, actualitzes la pàgina i ha desaparegut. Normalment vol dir que l'aplicació guardava les dades a la memòria del navegador, i no a una base de dades.
Una base de dades també és on viuen moltes de les decisions més importants, en siguis conscient o no:
- Què registres. Si no guardes l'estat d'una reserva, no pots mostrar quines s'han cancel·lat.
- Com es connecten les coses. Si un client pot tenir moltes reserves, o una reserva molts serveis, determina tota l'aplicació.
- Qui pot veure què. La majoria d'errors de privadesa tenen a veure amb quins registres pot llegir cada usuari.
No cal que dissenyis tu la base de dades. Però entendre'n les bases et permet descriure les teves dades amb claredat i detectar problemes aviat.
Una analogia del dia a dia
Imagina un arxivador ben organitzat en una petita oficina.
Cada calaix conté un tipus de cosa: un calaix per als clients, un per a les cites, un per a les factures. Dins de cada calaix, totes les carpetes segueixen el mateix format, amb els mateixos camps omplerts. Cada carpeta té un número de referència únic, i quan una factura pertany a un client, la carpeta de la factura anota el número del client en lloc de fotocopiar-ne tot l'expedient.
Això és una base de dades relacional. Els calaixos són les taules, les carpetes són les files, els camps són les columnes, els números de referència són les claus primàries, i les anotacions que apunten a una altra carpeta són les claus foranes. Un bon gestor d'oficina també aplica regles —cap cita sense data, dos clients no poden tenir el mateix número—, igual que ho fa una base de dades.
Un exemple pràctic: una aplicació de reserves per a una perruqueria
Digues que demanes a una IA que construeixi un lloc de reserves per a una perruqueria. Una base de dades sensata tindria quatre taules.
serveis
| id | nom | duracio_minuts | preu |
|---|---|---|---|
| 1 | Tall de cabell | 45 | 40,00 |
| 2 | Tint | 90 | 95,00 |
personal
| id | nom | correu |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
clients
| id | nom | correu | telefon |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
reserves
| id | client_id | servei_id | personal_id | inici | estat |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmada |
Mira la taula reserves. No copia el nom ni el telèfon de la Lena a cada reserva; guarda client_id = 101. Si la Lena canvia el seu telèfon, es canvia en un sol lloc i totes les reserves mostren el nou. Aquesta és la idea central d'una base de dades relacional: guardar cada fet una sola vegada i enllaçar-hi.
La mateixa estructura respon preguntes útils:
- «Quins horaris estan lliures per a l'Omar el divendres?» — mira les reserves de l'Omar aquell dia.
- «Quant han facturat els tints aquest mes?» — uneix les reserves amb els serveis i suma els preus.
- «Quins clients no han reservat en 90 dies?» — compara els clients amb la seva última reserva.
Termes comuns explicats
| Terme | Què significa |
|---|---|
| Taula | Una col·lecció d'un mateix tipus de registre, com clients o reserves. |
| Fila (registre) | Un element d'una taula: un client, una reserva. |
| Columna (camp) | Una informació que té cada fila, com el correu o el preu. |
| Clau primària | Un identificador únic per a cada fila, normalment un número o una cadena aleatòria. |
| Clau forana | Una columna que apunta a una fila d'una altra taula, com client_id a reserves. |
| Esquema | El disseny global: quines taules existeixen, les seves columnes i com es enllacen. |
| Consulta | Una petició per llegir o canviar dades, com «totes les reserves de demà». |
| SQL | Structured Query Language, el llenguatge estàndard per consultar bases de dades relacionals. |
| Migració | Un canvi d'esquema desat i repetible, com afegir una columna. |
| Índex | Una estructura de cerca que accelera les cerques sobre una columna, com l'índex d'un llibre. |
| CRUD | Crear, Llegir, Actualitzar, Eliminar: les quatre operacions bàsiques que fan les aplicacions amb les dades. |
| Còpia de seguretat | Una còpia de les dades que pots restaurar si alguna cosa va malament. |
Tipus de bases de dades
| Tipus | Com guarda les dades | Exemples | Ideal per a |
|---|---|---|---|
| Relacional (SQL) | Taules amb columnes fixes i enllaços entre elles | Postgres, MySQL, SQLite | La majoria d'aplicacions empresarials: reserves, botigues, CRM, SaaS |
| Document (NoSQL) | Documents flexibles tipus JSON | MongoDB, Firestore | Dades amb una forma que varia molt de registre a registre |
| Clau-valor | Un valor guardat sota una clau | Redis | Memòria cau, dades de vida curta com les sessions |
Per a gairebé tot el que un emprenedor o una petita empresa construeix primer, una base de dades relacional és l'opció segura per defecte.
On es col·loca la base de dades a la teva aplicació
Els visitants mai no parlen directament amb la base de dades. La pàgina al seu navegador (el frontend) demana dades al teu servidor (el backend), normalment mitjançant una API. El servidor comprova qui demana i si té permís, després consulta la base de dades i envia només el que aquella persona hauria de veure.
Aquest pas intermedi és important. Si el navegador pogués consultar la base de dades directament amb accés complet, qualsevol podria obrir les eines de desenvolupador i llegir-ho tot.
Errors i idees equivocades habituals
- Guardar les dades només al navegador. L'emmagatzematge del navegador (com localStorage) viu en un dispositiu i un navegador. Va bé per a un filtre recordat, però no per a comandes.
- Ficar-ho tot en una sola taula. Una única taula de «reserves» amb el nom, el telèfon i el preu del servei del client copiats a cada fila es desincronitza ràpidament.
- Guardar contrasenyes en text pla. Les contrasenyes s'han de xifrar amb un hash, mai guardar-les llegibles. Consulta què és l'autenticació.
- Cap regla sobre les dades. Sense camps obligatoris i regles d'unicitat, acabaràs amb reserves sense data i clients duplicats.
- Oblidar-se de les eliminacions. Decideix si eliminar un client també elimina les seves reserves, les conserva o es bloqueja.
- Fer experiments amb dades de producció. Prova els canvis arriscats en un lloc segur primer, i mantén còpies de seguretat.
- Tractar el full de càlcul com a base de dades per sempre. Els fulls de càlcul són genials per començar, però tenen dificultats amb molts usuaris simultanis i els permisos. Consulta com convertir un full de càlcul en una aplicació.
Què demanar al teu constructor amb IA
- «Desa això en una base de dades, no al navegador. Digues-me quines taules crearàs.»
- «Mostra'm l'esquema com una taula senzilla: cada taula, les seves columnes i com s'enllacen.»
- «Un client pot tenir moltes reserves; cada reserva té exactament un servei i un membre del personal.»
- «Fes que el correu sigui obligatori i únic per als clients.»
- «Impedeix que dues reserves del mateix membre del personal se solapin.»
- «Només el propietari amb sessió iniciada pot llegir totes les reserves; els clients només poden veure les seves. Aplica-ho al servidor.»
- «Quan elimini un servei, no esborris les reserves passades: marca el servei com a inactiu.»
Bases de dades a Mythex
Quan la teva aplicació necessita desar dades, Mythex afegeix al projecte una base de dades Postgres dedicada: ho pots demanar al xat («desa les inscripcions a la llista d'espera en una base de dades») o fer servir l'ordre /database. Els detalls de connexió es passen automàticament a la teva aplicació, i l'agent crea les taules. La base de dades s'adorm després de cinc minuts d'inactivitat i es desperta amb la següent petició; l'ús publicat es cobra pel temps que ha estat activa, amb el mateix saldo de crèdits que la construcció. Està disponible als plans Free i Pro. La documentació de la base de dades n'explica els detalls, i les plantilles d'aplicacions inclouen punts de partida basats en dades.
Preguntes
Què és una base de dades en termes senzills?
Una base de dades és un magatzem organitzat d'informació on una aplicació pot desar i de qui pot llegir, com usuaris, comandes o reserves. A diferència de les dades que només es guarden a la pestanya del navegador, continuen allà després d'actualitzar la pàgina, de reiniciar o quan algú obre l'aplicació des d'un altre dispositiu.
Un full de càlcul és una base de dades?
Un full de càlcul pot contenir el mateix tipus de dades, però no està pensat per a aplicacions. Una base de dades real imposa regles sobre el que conté cada columna, enllaça les taules de manera fiable, gestiona molta gent escrivint alhora i controla qui pot llegir què.
Quina diferència hi ha entre les bases de dades SQL i NoSQL?
Les bases de dades SQL (relacionals), com Postgres i MySQL, guarden les dades en taules amb columnes definides i relacions entre elles. Les bases de dades NoSQL, com MongoDB, guarden documents més flexibles. La majoria d'aplicacions empresarials —reserves, CRM, botigues— encaixen bé amb el model relacional.
La meva aplicació necessita una base de dades?
Si ha de recordar qualsevol cosa que introdueixin les persones —registres, comandes, missatges, configuracions— i mostrar-la més tard o a algú altre, sí. Un lloc web purament informatiu, sense formularis que desin dades, normalment no en necessita.