A 09-01 vam veure l'aprenentatge lent: llibres, capítols treballats amb el teclat al davant, un títol cada tres mesos. Aquesta lliçó cobreix l'altra cara, la que dona resultats en setmanes: documentació oficial estudiada de debò, plataformes on escrius SQL i algú et corregeix a l'instant, cursos universitaris publicats en obert, i les fonts que et mantenen al dia un cop el curs s'acaba.

També cobreix una cosa que gairebé ningú no explica i que estalvia mesos: com distingir un curs que ensenya d'un que entreté. Hi ha una quantitat enorme de material sobre bases de dades en línia, i bona part és el mateix SELECT * FROM clients repetit durant nou hores de vídeo. Aprendre a descartar de pressa és una habilitat tan valuosa com saber triar.

La lliçó acaba amb una plantilla concreta de pla d'estudi de dotze setmanes, construïda exactament sobre el punt en què aquest curs t'ha deixat: algú que ha dissenyat i normalitzat un esquema, ha escrit consultes multitaula i amb agregació, ha llegit un pla d'execució, ha modelat documents a MongoDB i ha repartit un sistema entre quatre motors.

Advertiment important. La disponibilitat dels cursos, els seus preus, els seus plans gratuïts, els seus continguts i fins i tot la seva existència canvien constantment. Les plataformes retiren cursos, les universitats reorganitzen els seus programes i els plans gratuïts es retallen o s'amplien sense avís. En aquesta lliçó no es cita cap preu i no es donen enllaços profunds: per a cada curs s'indica el seu títol exacte i la institució que l'imparteix, i la instrucció és que el busquis per aquest títol a la plataforma corresponent. Abans de matricular-te o pagar res, verifica a la font oficial què hi ha disponible avui.

Contingut

  1. Com triar un curs en línia sense perdre el temps
  2. La documentació oficial com a primer recurs
  3. Com s'estudia el manual de PostgreSQL
  4. La documentació dels altres motors
  5. Plataformes de pràctica interactiva
  6. Cursos estructurats d'universitats i plataformes
  7. Blogs, canals i butlletins per mantenir-se al dia
  8. Certificacions: per a qui sí i per a qui no
  9. El teu pla d'estudi personal: plantilla de 12 setmanes
  10. Errors Habituals i Consells
  11. Exercicis
  12. Conclusió

  1. Com triar un curs en línia sense perdre el temps

Abans de la llista, el filtre. Aquests són els senyals que es poden comprovar en deu minuts, abans d'invertir quaranta hores.

Senyals de qualitat

Senyal Per què importa
Hi ha un projecte que es construeix al llarg del curs Obliga a arrossegar decisions d'una lliçó a una altra; és on apareix el criteri
Es justifiquen les decisions, no només la sintaxi "Fem servir TEXT en lloc de VARCHAR(50) perquè…" és ensenyament; "escriu TEXT" és dictat
Es mostren errors i com es depuren El professor que mai no s'equivoca a la pantalla ha editat el vídeo, i amb tu l'error sí que passarà
Hi ha exercicis amb correcció, no només vídeos La diferència entre reconèixer i saber fer
S'indica la versió concreta del motor Un curs que no diu si és PostgreSQL 12 o 17 no s'ha revisat mai
El temari esmenta índexs, transaccions o plans d'execució Senyal que va més enllà de la sintaxi
Es pot veure el temari complet abans de matricular-se Si l'amaguen, sol ser perquè és prim
Hi ha data d'última actualització visible I és recent

Senyals d'alarma

Senyal Què sol significar
Títol amb promesa de temps o de feina ("domina SQL en 7 dies", "de zero a expert") Màrqueting per damunt de contingut
Quaranta hores de vídeo i cap exercici corregit Curs de consum passiu
El temari acaba en GROUP BY Només sintaxi: no arriba a disseny, índexs ni transaccions
Captures de pantalla amb interfícies clarament antigues Fa anys que no es toca
Els comentaris recents pregunten per què alguna cosa ja no funciona Desactualitzat i sense manteniment
No s'anomena cap motor concret "SQL genèric" que no funciona enlloc
Tot el curs passa en una eina gràfica d'arrossegar i deixar anar No aprendràs a llegir ni escriure SQL
El projecte final és "una base de dades d'una botiga" i res més Absència de domini real i de restriccions interessants

El problema dels cursos que només ensenyen sintaxi

La sintaxi de SQL és petita. L'essencial cap en un parell de tardes, i aquest curs ja te la va donar al mòdul 2. El que costa anys és l'altra cosa: decidir. Si aquella columna ha d'admetre NULL, si aquella taula s'ha de partir, si aquell índex servirà d'alguna cosa, si aquell JOIN hauria de ser una subconsulta, si aquella operació necessita una transacció i amb quin nivell d'aïllament.

Un curs que només ensenya sintaxi produeix una sensació agradable de progrés —cada lliçó afegeix una paraula clau nova— i deixa l'alumne incapaç de dissenyar res. És la raó per la qual aquest curs va dedicar dos mòduls sencers (4 i 5) a disseny i normalització abans de considerar acabat l'assumpte, i per la qual els mòduls 7 i 8 van ser tot exercicis i casos.

Quan avaluïs un curs, busca la part de decisions. Si no la té, no importa quantes hores duri.

Per què el projecte propi val més que el certificat

Dit sense adorns: en una entrevista tècnica, un certificat de finalització d'una plataforma oberta pesa molt poc, i un repositori amb un esquema ben dissenyat, les seves migracions, els seus índexs justificats i un README que explica les decisions pesa molt.

La raó no és esnobisme. El certificat prova que vas veure el material; el projecte prova que vas prendre decisions sota restriccions i que les saps defensar. I les decisions són la feina.

Per això, al pla de dotze setmanes de l'apartat 9, cada bloc té un lliurable, i el certificat no apareix enlloc.

  1. La documentació oficial com a primer recurs

El costum més estès i més costós és buscar a internet abans que al manual. Es fa perquè el manual "és dens" i la resposta d'un fòrum "és més ràpida". És cert a curt termini i fals a mitjà: la resposta del fòrum és del 2013, està escrita per a una altra versió, resol un cas semblant però no el teu, i no t'ensenya on mirar la propera vegada.

Comença sempre per la documentació oficial. I no només per a consultes puntuals: estudia-la per blocs, com si fos un llibre, perquè en diversos d'aquests motors ho és.

Documentació Enllaç arrel Què buscar-hi Dona continuïtat a
Manual de PostgreSQL https://www.postgresql.org/docs/ Tutorial, el llenguatge SQL, tipus de dades, índexs, rendiment, administració Tot el curs; especialment M2, M4, M6
MongoDB Manual https://www.mongodb.com/docs/ Modelatge de dades, CRUD, canalitzacions d'agregació, índexs, explain() 03-03, 08-02
SQLite https://sqlite.org/ «When to use SQLite», tipatge dinàmic, limitacions deliberades 01-02, 01-04
Redis https://redis.io/docs/ Tipus de dades, caducitat de claus, persistència, patrons de cau 03-02, 08-03
Neo4j https://neo4j.com/docs/ Modelatge de grafs, llenguatge de consulta Cypher 03-02
Elasticsearch https://www.elastic.co/ Anàlisi de text, mapatges, consultes de cerca 03-02, 08-03
Apache Cassandra https://cassandra.apache.org/ Modelatge dirigit per consultes, claus de partició 03-02, 03-03

Dos advertiments sobre documentació. Primer: fixa't sempre en la versió. El manual de PostgreSQL es publica per versió i és fàcil acabar llegint el d'una versió que no tens instal·lada; comprova el selector de versió de la pàgina. Segon: la documentació oficial mana sobre qualsevol curs, blog o resposta de fòrum. Si un vídeo diu una cosa i el manual en diu una altra, el manual té raó.

  1. Com s'estudia el manual de PostgreSQL

El manual de PostgreSQL espanta per la seva mida, i no hauria de fer-ho: està organitzat en parts amb propòsits molt diferents, i només dues o tres són lectura seguida. Aquest és un ordre de lectura raonable per a algú que acaba aquest curs.

Fase Part del manual a llegir Per què ara Dona continuïtat a
1 Tutorial (complet, en una tarda) És curt i ancora el vocabulari oficial. Et sorprendrà el que aclareix encara que ja sàpigues SQL 02-01, 02-02
2 The SQL Language → Data Types És on de debò decideixes bé: text, numeric, timestamptz, jsonb, rangs, arrays 04-04
3 The SQL Language → Data Definition Restriccions, claus foranes amb les seves accions, herència, particionat 02-06, 04-04
4 The SQL Language → Queries i Functions and Operators Consultes avançades, LATERAL, expressions de taula comunes, funcions de finestra 02-04, 02-05, 07-04
5 The SQL Language → Indexes Tipus d'índex (B-tree, GIN, GiST, BRIN), índexs parcials, índexs per expressió 06-03
6 Server Administration → Backup and Restore pg_dump, còpies físiques, recuperació a un instant 06-04
7 Server Administration → Client Authentication i el capítol de rols Qui es connecta i què pot fer 06-04
8 Server Administration → Server Configuration Memòria, work_mem, WAL, manteniment automàtic 06-03, 06-04
9 Internals → Concurrency Control i Performance Tips El perquè del control de concurrència multiversió i del planificador 06-02, 06-03
Consulta Reference (ordres SQL, aplicacions client) No es llegeix: es consulta cada dia

Un mètode que funciona bé: una secció del manual per setmana, amb una llibreta de consultes pròpia. Per cada secció, escriu cinc consultes contra BiblioRed que facin servir alguna cosa que acabes de descobrir. La secció de tipus de dades, per exemple, gairebé segur que et farà reescriure un parell de columnes del teu esquema tan bon punt descobreixis els tipus de rang i timestamptz.

  1. La documentació dels altres motors

MongoDB Manual i MongoDB University. El manual (https://www.mongodb.com/docs/) té una secció de modelatge de dades que és lectura obligada després de 03-03: formalitza el criteri d'incrustar davant de referenciar que vas aplicar a ull a 08-02, amb els seus patrons amb nom. A part del manual, MongoDB manté MongoDB University, una plataforma de formació pròpia amb rutes d'aprenentatge per a desenvolupament i administració, accessible des del lloc oficial de MongoDB. És de les formacions de producte més ben fetes que existeixen. Com tota la resta d'aquesta lliçó: comprova al lloc oficial quines rutes hi ha disponibles avui i en quines condicions, perquè canvien.

SQLite. La seva documentació té una particularitat estranya i valuosa: a més de la referència, publica documents d'opinió i de disseny —quan fer servir SQLite i quan no, per què el seu sistema de tipus és dinàmic, quines limitacions són deliberades—. Llegir aquestes pàgines és la millor continuació de 01-02, perquè expliquen amb honestedat per a què serveix una base de dades incrustada i per a què no. Arrel: https://sqlite.org/.

Redis. La documentació (https://redis.io/docs/) està organitzada per tipus de dades, i aquesta organització és en si mateixa l'ensenyament: entendre què resol un conjunt ordenat davant d'una llista davant d'un hash és entendre Redis. La part de caducitat de claus i la de persistència són les que donen fonament al que vas fer a 08-03 amb la disponibilitat en temps real de VallBici.

Neo4j. La seva documentació (https://neo4j.com/docs/) inclou material d'aprenentatge del llenguatge Cypher i de modelatge de grafs. Neo4j va ser el motor que a 03-02 es va esmentar i no es va practicar; si vols cobrir aquell buit, és el millor lloc per fer-ho, i el modelatge de grafs té un efecte secundari interessant: t'obliga a pensar en relacions com a ciutadanes de primera classe, cosa que canvia com veus el model relacional.

Elasticsearch. La documentació a https://www.elastic.co/ cobreix l'anàlisi de text, els mapatges i el llenguatge de consulta. El que convé estudiar després de 08-03 és la part d'analitzadors: entendre què li passa a un text entre que s'indexa i que es cerca és el que explica per què Elasticsearch troba "Vallmar" quan escrius "valmar" i ILIKE no.

  1. Plataformes de pràctica interactiva

Escriure SQL i que alguna cosa et digui immediatament si està bé és, per aprendre consultes, més eficaç que qualsevol vídeo. Aquestes són les plataformes consolidades.

Plataforma Enllaç arrel Nivell Tipus d'exercici Per a què serveix Per a qui no és
SQLBolt https://sqlbolt.com/ Iniciació Lliçons curtes amb exercici immediat Repassar del SELECT al JOIN en un parell de tardes Qui ja domini el mòdul 2
SQLZoo https://sqlzoo.net/ Iniciació-mitjà Exercicis per temes amb dades reals (mundials, països) Practicar JOIN i agregació amb dades que conviden a preguntar Qui busqui casos de negoci realistes
PGExercises https://pgexercises.com/ Mitjà Exercicis sobre PostgreSQL amb un esquema de club esportiu El millor recurs gratuït per consolidar el mòdul 2 sobre PostgreSQL real Qui no faci servir PostgreSQL
Select Star SQL https://selectstarsql.com/ Iniciació-mitjà Llibre interactiu sobre un conjunt de dades real Aprendre a fer preguntes a les dades, no només a consultar-les Qui busqui referència ràpida
HackerRank (domini SQL) https://www.hackerrank.com/ Mitjà Reptes amb correcció automàtica i dificultat creixent Volum de pràctica i preparació d'entrevistes Qui busqui disseny o modelatge
LeetCode (secció de bases de dades) https://leetcode.com/ Mitjà-alt Problemes tipus entrevista, molts amb funcions de finestra Preparació d'entrevistes tècniques Qui vulgui aprendre bases de dades: aquí només hi ha consultes
DataLemur https://datalemur.com/ Mitjà-alt Preguntes d'entrevista d'anàlisi de dades Pràctica orientada a llocs de dades Qui vagi a desenvolupament d'aplicacions
Advent of SQL i reptes estacionals semblants Busca'l pel seu nom Mitjà-alt Un problema diari durant un mes, amb comunitat Mantenir el múscul i veure solucions alienes al mateix problema Qui comenci: la corba és dura

Per on començar segons el que et va costar al mòdul 7

Si al mòdul 7 et va costar… Comença per I segueix amb
07-01, les consultes bàsiques i els filtres SQLBolt sencer, després SQLZoo PGExercises, seccions bàsiques
07-01/07-04, els JOIN de tres o més taules SQLZoo (secció de JOIN) PGExercises, secció d'unions
07-04, agregacions i subconsultes correlacionades PGExercises sencer HackerRank, dificultat mitjana
07-04, el "préstec anterior del mateix soci" i similars LeetCode, secció de bases de dades, filtrant per funcions de finestra «SQL Cookbook», capítol de finestres (09-01)
07-02, disseny d'esquemes Cap d'aquestes: el disseny no es practica amb correcció automàtica. Ves a l'exercici 2 d'aquesta lliçó «Database Design for Mere Mortals» (09-01)
07-03, normalització Ídem: no hi ha plataforma que ho corregeixi. Audita esquemes reals aliens Mòdul 5 rellegit + «SQL Antipatterns»

Aquest últim punt mereix èmfasi: les plataformes interactives ensenyen a consultar, no a dissenyar. Cobreixen perfectament el mòdul 2 i bona part del 7, i no cobreixen els mòduls 4, 5 i 8. No hi ha drecera per al disseny: s'aprèn dissenyant i sotmetent el disseny a crítica.

  1. Cursos estructurats d'universitats i plataformes

Aquí es donen títols exactes i institució. Busca'ls per aquest títol a la plataforma corresponent; els catàlegs i les adreces canvien, i per això no s'enllaça a fitxes concretes.

Curs (títol exacte) Institució On buscar-lo Nivell Dona continuïtat a
Sèrie de mini-cursos «Databases» (Jennifer Widom): entre d'altres, Relational Databases and SQL, Advanced Topics in SQL, Modeling and Theory, Semistructured Data Universitat de Stanford Portal de cursos oberts de Stanford Online i plataformes de cursos massius Mitjà M2, M4, M5, M3
«Introduction to Structured Query Language (SQL)» (Charles Severance), dins d'una especialització d'aplicacions web Universitat de Michigan Coursera, buscant pel títol Iniciació 02-01 a 02-05
«Intro to Database Systems» (curs de grau, publicat en obert amb vídeos i material) Carnegie Mellon University — CMU Database Group Canal i lloc del CMU Database Group, https://db.cs.cmu.edu/ Alt 01-04, 06-01, 06-02, 06-03
«Advanced Database Systems» (curs de postgrau, publicat en obert) Carnegie Mellon University — CMU Database Group Ídem Molt alt 01-04, 06-03
Rutes d'aprenentatge de MongoDB University (desenvolupament i administració) MongoDB, Inc. Lloc oficial de MongoDB Iniciació-mitjà 03-03, 08-02

Fitxa: els cursos del CMU Database Group

Què és. Carnegie Mellon publica en obert, curs rere curs, les seves assignatures de sistemes de bases de dades: les classes enregistrades, les transparències, els enunciats dels projectes. És material universitari de primer nivell disponible sense matrícula.

Què cobreix. El curs d'introducció recorre emmagatzematge, formats de pàgina, índexs B-tree, processament de consultes, planificació i optimització, control de concurrència, recuperació i sistemes distribuïts. El de postgrau va a fons en motors moderns, execució vectoritzada i emmagatzematge en columnes.

Nivell. Alt. És un curs d'informàtica, amb programació de sistemes als projectes.

Com treballar-lo. No l'intentis sencer d'entrada. És la continuació perfecta de 01-04 —on es va descriure l'arquitectura d'un gestor per fora— i de 06-03 —on vas llegir plans d'execució sense saber com es generen—. Comença veient únicament les classes d'índexs, processament de consultes i optimització de consultes, en aquest ordre. Si t'enganxen, segueix; si no, ja n'has tret el principal.

Què saltar-se. Els projectes de programació, tret que vulguis dedicar-te a construir motors. Veure les classes sense fer els projectes ja aporta moltíssim.

Fitxa: la sèrie «Databases» de Stanford

Què és. El material del curs clàssic de bases de dades de Stanford, reorganitzat en diversos mini-cursos autoguiats, cadascun centrat en un bloc. És probablement el curs en línia de bases de dades més veterà i més polit que existeix.

Què cobreix. Model relacional i SQL, disseny i teoria —incloses dependències funcionals i formes normals, amb més rigor del que va donar el mòdul 5—, dades semiestructurades (XML, JSON), i temes avançats de SQL com vistes, activadors i restriccions.

Nivell. Mitjà, amb parts teòriques exigents.

Com treballar-lo. Si a 05-02 et vas quedar amb la sensació d'haver aplicat les formes normals sense entendre del tot el seu fonament, el mini-curs de modelatge i teoria és exactament el remei. Els exercicis tenen correcció automàtica, cosa que per a teoria és rara i molt valuosa.

Què saltar-se. La part d'XML, tret d'interès específic; avui pesa molt menys del que pesava quan es va gravar.

  1. Blogs, canals i butlletins per mantenir-se al dia

Acabat el curs, el problema deixa de ser aprendre i passa a ser no rovellar-se. El parany aquí és subscriure's a trenta fonts, no llegir-ne cap i sentir-se malament. L'estratègia que funciona és la contrària: dues o tres fonts fixes i una estona fixa a la setmana.

Font Enllaç arrel Què publica Freqüència recomanada de lectura
Markus WinandUse The Index, Luke! i el seu lloc sobre SQL modern https://use-the-index-luke.com/ Índexs, rendiment i quines parts de l'estàndard SQL implementa cada motor Com a referència, quan toqui el tema
Planet PostgreSQL (agregador de blogs de la comunitat) https://planet.postgresql.org/ Tot el que escriu la comunitat PostgreSQL, en brut Un repàs de titulars cada setmana
Blog de Hubert Lubaczewski (depesz) https://www.depesz.com/ Novetats de cada versió de PostgreSQL, explicades una a una Quan surti una versió nova
Jepsen https://jepsen.io/ Anàlisis independents de les garanties de consistència de bases de dades distribuïdes, sotmeses a fallades reals Quan t'interessi un motor concret
Butlletins setmanals de bases de dades (per exemple Postgres Weekly i DB Weekly) Busca'ls pel seu nom Resum setmanal d'articles, versions i eines Quinze minuts a la setmana
Blogs d'enginyeria d'empreses que publiquen casos reals de migració, escalat o incidents Postmortems i decisions d'arquitectura amb números Quan aparegui un del tema que t'ocupa

Sobre Jepsen, una nota: és el lloc on les afirmacions comercials sobre consistència es posen a prova de debò. Després de 06-02 i 08-03, llegir un informe de Jepsen sobre un motor que creies conèixer és una experiència formativa notable, perquè mostra la distància entre el que un producte promet al seu web i el que garanteix sota partició de xarxa.

Com no ofegar-se. Tres regles. Una: els agregadors es llegeixen per titulars, no per articles; n'obres dos, no dotze. Dues: si un tema no et toca a la feina ni en un projecte propi, llegir-ne és entreteniment, no formació —cosa que està bé, però no ho comptis com a estudi—. Tres: reserva una estona fixa, trenta minuts setmanals, i fora d'aquesta estona no llegeixis res. L'actualitat tècnica no és urgent gairebé mai.

  1. Certificacions: per a qui sí i per a qui no

Les certificacions existeixen en tres famílies: les de producte de base de dades (per exemple, les certificacions oficials de MongoDB per a desenvolupament i administració, o les que ofereixen les empreses que donen suport comercial a PostgreSQL), les de proveïdor de núvol (els tres grans tenen certificacions de dades i de bases de dades, amb catàlegs que reorganitzen sovint) i les de plataforma de formació, que en realitat són certificats de finalització i no certificacions.

Perfil Té sentit certificar-se? Comentari
Desenvolupador amb experiència i projectes propis Poc El teu repositori i les teves decisions pesen més en qualsevol conversa tècnica
Qui canvia de sector i no té experiència demostrable De vegades Serveix com a senyal de compromís davant d'algú que no et pot avaluar tècnicament
Qui treballa en consultoria o en empreses amb requisits d'acreditació De vegades és un requisit contractual del client, no una elecció
Administrador de sistemes que es mou al núvol Sí, la de proveïdor El seu temari d'operació, còpia i alta disponibilitat és útil per si mateix
Estudiant o acabat de titular Depèn Abans que una certificació, un projecte públic ben documentat

Dues cauteles. Primera: els catàlegs, noms, codis i requisits de les certificacions canvien amb freqüència —es retiren exàmens, es reanomenen, es fusionen—; consulta sempre el catàleg oficial del proveïdor i no et fiïs de llistes de tercers, inclosa aquesta. Segona: el valor més gran d'una certificació no sol ser el diploma, sinó que el seu temari oficial és una llista de comprovació excel·lent del que hauries de saber. Pots fer servir aquest temari com a pla d'estudi sense presentar-te mai a l'examen, i és una estratègia perfectament legítima.

  1. El teu pla d'estudi personal: plantilla de 12 setmanes

Un pla d'estudi necessita cinc coses: hores setmanals realistes, temes ordenats, un recurs concret per tema, un lliurable per bloc i una data de revisió. Sense lliurable no és un pla, és una llista de desitjos.

Aquest és l'esquelet, pensat per escriure's en un fitxer i versionar-se al costat del teu projecte.

# pla-estudi.yml — plantilla de 12 setmanes després de «Fonaments de Bases de Dades»
punt_de_partida:
  completat: "Curs complet, 36 lliçons (M1-M9)"
  se_fer:
    - "Dissenyar i normalitzar un esquema relacional fins a 3FN/FNBC"
    - "Consultes multitaula, agregació i subconsultes"
    - "Llegir un EXPLAIN i decidir un índex senzill"
    - "Modelar documents a MongoDB segons els patrons d'accés"
  punts_febles:              # <- omple'ls tu, sigues específic
    - "..."
    - "..."
  perfil_objectiu: "desenvolupament | analisi_dades | administracio"

recursos_dedicats:
  hores_setmana: 4           # sigues conservador: és millor complir 3 que fallar 8
  sessions: 2                # dues de dues hores rendeix més que vuit de mitjana
  dia_i_hora_fixos: "dimarts i dijous, 19:00-21:00"

blocs:
  - id: 1
    setmanes: "1-3"
    tema: "SQL avançat: funcions de finestra i CTE"
    recursos:
      - "Manual PostgreSQL: Queries + Functions and Operators"
      - "PGExercises, seccions d'agregació i avançades"
    lliurable: "10 consultes analítiques sobre BiblioRed, documentades"
    criteri_exit: "Les escric sense consultar la sintaxi"

  - id: 2
    setmanes: "4-6"
    tema: "..."
    recursos: ["..."]
    lliurable: "..."
    criteri_exit: "..."

revisio:
  data: "en acabar la setmana 6"
  preguntes:
    - "He complert les hores? Si no, retallo el pla o canvio l'horari?"
    - "Els lliurables existeixen de debò o només he llegit?"
    - "Continua sent correcte el perfil objectiu?"

I aquesta és una instància completa de la plantilla, per a un perfil de desenvolupament d'aplicacions. Serveix com a exemple de nivell de concreció, no com a pla universal.

Setmanes Tema Recursos Lliurable
1-2 Consolidar SQL sobre PostgreSQL real PGExercises sencer + manual de PostgreSQL, part Queries Les solucions pròpies comentades, i tres consultes de PGExercises reescrites contra l'esquema de BiblioRed
3-4 Funcions de finestra i expressions de taula comunes Manual de PostgreSQL, Functions and Operators; capítol de finestres de «SQL Cookbook» Un informe mensual de préstecs de BiblioRed: rànquing per biblioteca, mitjana mòbil de 7 dies i variació respecte al mes anterior, tot en SQL
5-6 Tipus de dades i restriccions a fons Manual de PostgreSQL, Data Types i Data Definition Revisió de l'esquema de BiblioRed: timestamptz on correspongui, tipus de rang per a les reserves de sales amb restricció d'exclusió, i CHECK per a les regles que avui només són a l'aplicació
7-8 Índexs i rendiment «SQL Performance Explained» + manual, Indexes i Performance Tips Un banc de proves: 500.000 préstecs generats, cinc consultes lentes, el seu pla abans i després, i l'índex justificat en cada cas
9-10 Transaccions i concurrència de debò Manual, Concurrency Control; capítol de transaccions de «Designing Data-Intensive Applications» Reproduir en dos terminals una escriptura esbiaixada sobre les reserves de sales, i arreglar-la de dues maneres diferents (bloqueig explícit i SERIALIZABLE), documentant el cost de cadascuna
11-12 Posada en producció del projecte propi Manual, Backup and Restore i Client Authentication; eines de 09-03 Repositori públic de BiblioRed: esquema amb migracions versionades, rols i permisos, còpia de seguretat automatitzada, dades de prova reproduïbles i README amb les decisions de disseny

Com detectar que un curs fa anys que no es toca (rellevant en triar els recursos del teu pla): la versió del motor que apareix a les captures està diverses versions per darrere de l'actual; es fan servir eines la interfície de les quals ja no s'assembla a la real; els comentaris recents pregunten per què un pas ja no funciona; el temari ignora funcionalitats que avui són estàndard al motor; i no hi ha data d'actualització visible enlloc. Qualsevol d'aquests senyals no invalida un curs de teoria —la normalització no ha canviat—, però descarta un de producte.

Errors Habituals i Consells

Error 1: col·leccionar cursos. Matricular-se en sis cursos i no acabar-ne cap és un patró tan comú que té nom propi a les plataformes. Un cada vegada, amb el seu lliurable, i fins que no hi hagi el lliurable no comença el següent.

Error 2: veure vídeo sense escriure codi. Veure algú escrivint SQL produeix la il·lusió completa d'haver après, i aquesta il·lusió es desfà tan bon punt tens el cursor parpellejant en una consulta en blanc. Atura el vídeo, escriu tu, i quan funcioni, trenca'l expressament.

Error 3: buscar en un fòrum abans que al manual. La resposta del fòrum resol el símptoma d'avui; el manual t'ensenya on serà la resposta de demà. I en un percentatge sorprenent de casos, la resposta del fòrum és d'una versió que ja no existeix.

Error 4: perseguir el certificat en lloc del projecte. Ja s'ha dit: un esquema ben dissenyat i documentat en un repositori públic pesa més en una conversa tècnica que qualsevol diploma de finalització.

Error 5: estudiar un motor que no faràs servir. Aprendre Cassandra "per si de cas" quan treballes amb PostgreSQL és temps que rendeix poc. L'excepció legítima és estudiar un motor de família diferent per entendre el contrast, que és just el que va fer el mòdul 3 d'aquest curs: no per fer servir Neo4j, sinó per veure el model relacional des de fora.

Error 6: no fixar hora. "Estudiaré quan pugui" significa no estudiar. Dues franges fixes al calendari, amb avís, i tracta-les com una reunió.

Consell 1: barreja sempre un recurs lent i un de ràpid. Un llibre en marxa (format de 09-01) i una plataforma de pràctica en marxa. El llibre dona criteri, la pràctica dona soltesa, i cadascun fa suportable l'altre.

Consell 2: escriu el que aprens. Una nota curta per sessió —què vaig provar, què va fallar, què vaig entendre— converteix hores disperses en alguna cosa consultable. I si t'atreveixes a publicar-les, escriure per a altres és el millor detector de llacunes pròpies que existeix.

Consell 3: tradueix-ho tot al teu domini. Els exercicis de PGExercises van d'un club esportiu; reescriu-ne tres contra BiblioRed. La traducció és on s'aprèn, perquè obliga a entendre la consulta en lloc de copiar-la.

Consell 4: fes servir els temaris oficials com a llistes de comprovació. El temari d'una certificació o l'índex d'un curs universitari són inventaris molt treballats del que cal saber. Aprofita'ls encara que no t'hi matriculis.

Exercicis

Aquests exercicis són de planificació i de pràctica real, no de memòria. No tenen una única resposta correcta: les solucions són respostes model raonades, i la teva serà diferent i podrà ser igual de bona si el raonament s'aguanta.

Exercici 1: construeix el teu pla de dotze setmanes

Omple la plantilla pla-estudi.yml de l'apartat 9 amb el teu cas real. Requisits mínims:

  1. Tres punts febles concrets, citant la lliçó on van aparèixer (no "SQL", sinó "a 07-04 no vaig saber resoldre el préstec anterior del mateix soci sense subconsulta correlacionada").
  2. Un perfil objectiu justificat.
  3. Hores setmanals que puguis complir de debò, amb dia i hora fixos.
  4. Quatre blocs de tres setmanes, cadascun amb recursos anomenats i un lliurable verificable.
  5. Un criteri d'èxit per bloc que no sigui "haver-ho llegit".
  6. Una data de revisió intermèdia i les preguntes que et faràs en aquell moment.

Exercici 2: avalua tres cursos en vint minuts

Busca tres cursos en línia sobre bases de dades o SQL: un d'una universitat, un d'una plataforma comercial i un de gratuït d'una comunitat o d'un fabricant. Sense matricular-te a cap, en vint minuts per curs, omple aquesta taula i decideix quin faries i per què:

Criteri Curs A Curs B Curs C
Hi ha projecte que s'arrossegui entre lliçons?
Es justifiquen decisions o només es dona sintaxi?
Arriba a índexs, transaccions o plans?
S'indica versió del motor? Quina?
Hi ha exercicis amb correcció?
Última actualització visible?
Senyals d'alarma detectats
Veredicte i per què

Afegeix una frase final: quina part d'aquell curs et saltaries, atès el que ja saps després d'aquest.

Exercici 3: una setmana amb la documentació oficial

Durant una setmana, prohibeix-te buscar a internet qualsevol dubte de PostgreSQL: només el manual oficial. Tria una secció de la taula de l'apartat 3 que no hagis treballat (per exemple, Data Types o Indexes), llegeix-la sencera i produeix:

  1. Cinc consultes o sentències DDL contra BiblioRed que facin servir alguna cosa que has descobert en aquella secció i que abans no coneixies.
  2. Un canvi a l'esquema de BiblioRed que faries a la llum del que has llegit, amb la seva justificació.
  3. Tres coses que creies saber i estaven malament o incompletes.
  4. Una valoració honesta: quant més lent va ser que buscar a internet, i va compensar?

Solucions

Són respostes model. El que s'avalua és el raonament, no la coincidència.

Solució 1 (resposta model)

punt_de_partida:
  punts_febles:
    - "07-04: no resolc 'el préstec anterior del mateix soci' sense ajuda;
       sospito que hi ha funcions de finestra que no domino"
    - "06-03: llegeixo l'EXPLAIN però no predic si l'índex es farà servir; no sé
       decidir l'ordre de columnes d'un índex compost"
    - "08-03: entenc el patró outbox però no sé raonar les seves fallades parcials"
  perfil_objectiu: "desenvolupament"

recursos_dedicats:
  hores_setmana: 4
  sessions: 2
  dia_i_hora_fixos: "dimarts i dijous, 19:00-21:00"

blocs:
  - id: 1
    setmanes: "1-3"
    tema: "Funcions de finestra i CTE"
    recursos:
      - "Manual PostgreSQL: Queries + Functions and Operators"
      - "SQL Cookbook, capítol de funcions de finestra"
      - "LeetCode, secció de bases de dades, problemes amb finestres"
    lliurable: "Informe mensual de BiblioRed en SQL pur: rànquing per
                biblioteca, mitjana mòbil de 7 dies i variació intermensual"
    criteri_exit: "Resolc 'el préstec anterior del mateix soci' amb
                   LAG en menys de cinc minuts i sense consultar res"

  - id: 2
    setmanes: "4-6"
    tema: "Índexs i plans d'execució"
    recursos:
      - "SQL Performance Explained (Winand)"
      - "Manual PostgreSQL: Indexes + Performance Tips"
    lliurable: "Banc de proves amb 500.000 préstecs generats, cinc
                consultes lentes, pla abans/després i índex justificat"
    criteri_exit: "Predic el pla abans d'executar EXPLAIN i encerto
                   en quatre de cada cinc casos"

  - id: 3
    setmanes: "7-9"
    tema: "Transaccions, aïllament i patrons d'integració"
    recursos:
      - "Manual PostgreSQL: Concurrency Control"
      - "Designing Data-Intensive Applications, capítols de transaccions"
    lliurable: "Escriptura esbiaixada reproduïda en dos terminals sobre les
                reserves de sales, i arreglada de dues maneres diferents"
    criteri_exit: "Sé explicar per escrit el cost de cada arranjament"

  - id: 4
    setmanes: "10-12"
    tema: "Posada en producció del projecte propi"
    recursos:
      - "Manual PostgreSQL: Backup and Restore, Client Authentication"
      - "Eines de la lliçó 09-03"
    lliurable: "Repositori públic de BiblioRed amb migracions versionades,
                rols, còpia automatitzada, dades de prova i README de
                decisions de disseny"
    criteri_exit: "Una altra persona clona el repositori i té la base de
                   dades funcionant amb dades en menys de deu minuts"

revisio:
  data: "en acabar la setmana 6"
  preguntes:
    - "Existeixen els dos primers lliurables o només he llegit?"
    - "Si vaig per sota de 4 h/setmana, retallo a tres blocs en lloc de quatre"

El que fa bo aquest pla no és la seva ambició, sinó tres coses: els punts febles estan citats per lliçó, els lliurables són verificables per un tercer, i hi ha un mecanisme explícit per retallar a la revisió en lloc d'abandonar.

Solució 2 (resposta model)

Un veredicte típic, amb els tres perfils habituals:

Criteri A: universitari obert (CMU) B: comercial de plataforma massiva C: gratuït de fabricant (MongoDB University)
Projecte continuat Sí, projectes de programació d'un motor Sí, "una botiga", superficial Sí, sobre un conjunt de dades propi
Decisions vs. sintaxi Decisions i fonaments Gairebé tot sintaxi Decisions de producte, sintaxi explicada
Índexs/transaccions/plans Sí, és el nucli Un vídeo solt al final Índexs i explain() sí; transaccions, poc
Versió del motor Indicada per edició del curs No s'indica Sí, i s'actualitza
Exercicis corregits Autoavaluació i projectes Qüestionaris d'opció múltiple Sí, amb laboratoris
Última actualització Visible, per any acadèmic No visible Visible
Alarmes Cap; el risc és el nivell Títol amb promesa de feina; temari acaba en GROUP BY Biaix natural cap al producte
Veredicte El faria parcialment: només les classes d'índexs, processament i optimització No el faria: no aporta res per damunt del mòdul 2 d'aquest curs El faria si he de fer servir MongoDB de debò

Què em saltaria de l'A: els projectes de programació, tret d'interès a construir motors. Del C: els mòduls introductoris de CRUD, ja coberts per 03-03 i 08-02.

La conclusió important de l'exercici sol ser aquesta: després d'aquest curs, la majoria dels cursos generalistes de SQL ja no t'aporten res, i el temps rendeix molt més en documentació oficial, pràctica corregida i material universitari de nivell alt.

Solució 3 (resposta model, secció Data Types)

1. Cinc coses noves aplicades a BiblioRed.

-- 1. Rang temporal per a les reserves de sales, en lloc de dues columnes soltes
ALTER TABLE reserves_sala ADD COLUMN periode tstzrange;

-- 2. I la restricció que impedeix solapaments de manera declarativa:
--    el que al mòdul 7 es va resoldre amb comprovacions manuals
ALTER TABLE reserves_sala
  ADD CONSTRAINT sense_solapaments
  EXCLUDE USING gist (sala_id WITH =, periode WITH &&);

-- 3. timestamptz en lloc de timestamp per a tot instant real
ALTER TABLE prestecs ALTER COLUMN data_prestec TYPE timestamptz;

-- 4. Un tipus enumerat per a l'estat de l'exemplar, en lloc de text lliure
CREATE TYPE estat_exemplar AS ENUM ('disponible','prestat','reparacio','baixa');

-- 5. Restricció de domini reutilitzable per a l'ISBN
CREATE DOMAIN isbn13 AS text CHECK (VALUE ~ '^[0-9]{13}$');

2. Canvi d'esquema justificat. Substituir data_inici/data_fi de reserves_sala per un tstzrange amb restricció d'exclusió. Motiu: la regla "dues reserves de la mateixa sala no es poden solapar" passa de ser una comprovació a l'aplicació —que falla sota concurrència, just el problema de 06-02— a ser una restricció del motor, que no falla mai. És el mateix principi de 02-06: si la regla és d'integritat, viu a la base de dades.

3. Tres coses que creia saber i estaven malament.

  • Creia que timestamp i timestamptz es diferenciaven en el fet que un guarda la zona horària. No la guarda: timestamptz normalitza a UTC en emmagatzemar i converteix a la zona de la sessió en llegir. Això canvia com cal pensar els informes per franja horària.
  • Creia que varchar(n) era més eficient que text a PostgreSQL. No ho és; el límit és una restricció, no una optimització, i posar-lo sense motiu només genera migracions futures.
  • No sabia que existien els tipus de rang ni les restriccions d'exclusió, i feia temps que resolia a mà un problema que el motor resol declarativament.

4. Va compensar? Va ser clarament més lent: llegir la secció sencera va costar unes tres hores davant dels dos minuts d'una cerca puntual. Va compensar, i molt, perquè les tres troballes anteriors no es poden buscar: no sabia que existien, i per tant no hauria formulat mai la consulta que les trobaria. Aquest és l'argument a favor de llegir documentació per blocs en lloc de només consultar-la: resol el problema de les coses que no saps que no saps.

Conclusió

Aquesta lliçó es pot resumir en quatre decisions.

La primera: comença per la documentació oficial, i estudia-la per blocs. El manual de PostgreSQL no és només una referència per consultar dubtes: llegit secció a secció, amb una llibreta de consultes pròpia, és el millor curs disponible sobre el motor, i és gratuït. El mateix val per al MongoDB Manual, per a la documentació de SQLite —els documents de disseny de la qual són lectura formativa per si mateixos— i per a Redis, Neo4j i Elasticsearch quan els necessitis. La documentació oficial mana sobre qualsevol curs.

La segona: practica on et corregeixin. PGExercises, SQLZoo, SQLBolt per al bàsic, HackerRank i LeetCode per a volum i entrevistes. Tria la plataforma segons el que se't va encallar al mòdul 7, i recorda el seu límit: ensenyen a consultar, no a dissenyar. Els mòduls 4, 5 i 8 d'aquest curs no tenen plataforma equivalent, i el seu equivalent és dissenyar coses i sotmetre-les a crítica.

La tercera: quan vulguis profunditat, ves a la universitat. El material obert del CMU Database Group i la sèrie «Databases» de Stanford estan a un nivell que cap curs comercial de SQL no assoleix, i són la continuació natural del que 01-04 i 06-03 van deixar apuntat. Busca'ls pel seu títol exacte al lloc de la institució.

I la quarta, la que decideix si les altres tres serveixen d'alguna cosa: escriu el teu pla i posa-li lliurables. Quatre blocs de tres setmanes, un recurs anomenat i una cosa construïda per bloc, dues franges fixes al calendari i una revisió a mig camí per retallar sense abandonar. Sense lliurables no hi ha pla; amb lliurables, en dotze setmanes tens un projecte públic que val més que qualsevol certificat.

I per última vegada l'advertiment que obre i tanca aquesta lliçó: cursos, preus, plans gratuïts, catàlegs de certificació i continguts canvien sense avís, i els cursos de producte envelleixen malament. Verifica sempre a la font oficial abans de matricular-te o pagar, i davant de qualsevol discrepància entre un curs i la documentació del motor, la documentació té raó.

Ja tens què llegir i on practicar. Falta el tercer vèrtex: amb què. La lliçó 09-03 cobreix les eines amb què es treballa de debò —els motors a la teva màquina, els clients, les eines de disseny, les migracions, les dades de prova, el diagnòstic i les còpies de seguretat— i inclou el fitxer de Docker Compose que aixeca en una ordre l'entorn exacte del cas poliglota de 08-03.

© Copyright 2026. Tots els drets reservats