La lliçó anterior acabava dient que el que queda per endavant no és més temari, sinó criteri, i que el criteri es fa amb projectes i amb errors propis. És cert, però incomplet: el criteri també es fa llegint gent que porta trenta anys cometent aquests errors i ha tingut la paciència d'escriure'ls ordenats. Aquesta lliçó és la llista d'aquesta gent.

No és un catàleg. Un catàleg de bibliografia —quaranta títols sense jerarquia— no ajuda ningú: paralitza. El que trobaràs aquí són set blocs temàtics, cadascun amb una taula que diu a quina lliçó d'aquest curs dona continuïtat cada llibre i per a qui no és, i fitxes detallades dels títols que de debò mereixen el teu temps. Al final hi ha un itinerari en tres etapes —tres mesos, dotze mesos, vint-i-quatre mesos— segons el perfil professional cap al qual t'adrecis.

Fes-la servir així: no la llegeixis sencera d'una tirada buscant "el llibre bo". Ves al bloc que correspon al que se't va encallar al curs, llegeix la fitxa, i compra o demana a la biblioteca un llibre. Un. Quan l'hagis treballat —treballat, no fullejat— torna aquí.

Advertiment important sobre disponibilitat. Les edicions, els preus, les traduccions al català i la disponibilitat a llibreries i biblioteques canvien constantment. Les dades d'edició que es donen aquí són orientatives i poden haver quedat enrere quan llegeixis això. Abans de comprar res, verifica al web de l'editorial o de l'autor quina edició és la vigent. En aquesta lliçó no es cita cap preu, deliberadament: els preus canvien, les promocions canvien, i el que avui té edició de butxaca demà està descatalogat.

Contingut

  1. Per què continuar llegint llibres quan existeix la documentació oficial
  2. Com es llegeix un llibre tècnic (no de cap a cap)
  3. Bloc A — Fonaments i teoria
  4. Bloc B — SQL pràctic
  5. Bloc C — Disseny i modelatge
  6. Bloc D — Rendiment i interioritats del motor
  7. Bloc E — NoSQL i sistemes distribuïts
  8. Bloc F — PostgreSQL en concret
  9. Bloc G — Clàssics i articles fundacionals
  10. Itinerari de lectura en tres etapes
  11. Edicions, traduccions i com aconseguir els llibres
  12. Errors Habituals i Consells
  13. Exercicis
  14. Conclusió

  1. Per què continuar llegint llibres quan existeix la documentació oficial

És una objecció raonable. El manual de PostgreSQL és exhaustiu, està actualitzat a la versió exacta que tens instal·lada, és gratuït i es cerca en dos segons. Per a què un llibre de 900 pàgines del 2019?

Perquè fan coses diferents. La documentació respon "com s'escriu això?". El llibre respon "per què existeix això i quan l'he de fer servir?". Són preguntes diferents i cap no substitueix l'altra.

El que dona la documentació oficial El que dona un bon llibre
La sintaxi exacta i completa de cada ordre El criteri per triar entre dues ordres que fan gairebé el mateix
Exactitud respecte a la teva versió concreta Idees que continuen valent quan canvies de motor
Resposta immediata a un dubte puntual Un ordre: què s'aprèn abans i què després
Cobertura total, sense jerarquia Jerarquia: què és central i què és un racó rar
Res de context històric Per què les coses són com són (i per què són estranyes)
Exemples mínims i descontextualitzats Casos complets amb les conseqüències del disseny
Neutralitat: mai no et diu què està malament Opinió argumentada: "això és un antipatró, no ho facis"

L'exemple que ja has viscut: la documentació de PostgreSQL descriu els quatre nivells d'aïllament amb una taula impecable de quina anomalia permet cadascun. És exactament el que necessites per configurar una transacció. Però el que vas fer a 06-02 —obrir dos terminals, veure l'actualització perduda amb els teus propis ulls i entendre per què READ COMMITTED és el valor per defecte tot i permetre lectures no repetibles— això no és al manual, i no hi és perquè el manual no és el lloc.

Hi ha una tercera raó, menys tècnica i més honesta: un llibre t'obliga a un ritme. La documentació es consulta en ràfegues de dos minuts entre tasca i tasca, i amb això s'aprèn a resoldre el problema d'avui i res més. Un capítol llegit sencer, amb la base de dades oberta al costat, deixa un pòsit diferent. Gairebé tothom que sap de bases de dades ha llegit llibres; gairebé ningú que només consulti la documentació acaba sabent-ne.

  1. Com es llegeix un llibre tècnic (no de cap a cap)

Això importa més que la llista. Un bon llibre mal llegit no serveix de res, i la manera habitual de llegir-lo malament és tractar-lo com una novel·la: començar per la pàgina 1 amb la intenció d'arribar a la 900, avorrir-se a la 60 i abandonar-lo.

Un llibre tècnic no es llegeix: es treballa. Aquest és el mètode.

Primer, el reconeixement (30-45 minuts). Abans de llegir una sola línia de contingut, llegeix-te l'índex complet dues vegades. Després, fulleja el llibre sencer passant pàgines de pressa: mira els títols de secció, les taules, els diagrames, els blocs de codi. No entenguis res, només mira. En acabar has de ser capaç de dir "aquí hi ha el dels índexs", "aquesta part és de recuperació davant de fallades", "això últim no ho necessitaré en anys". Aquest mapa mental és el que farà que després trobis les coses.

Segon, tria capítols, no el llibre. Decideix quins tres o quatre capítols treballaràs ara, i per què. Els altres existeixen per quan els necessitis. Un llibre de referència com el de Silberschatz no està escrit per llegir-se sencer fora d'una assignatura universitària; està escrit per tenir el capítol correcte quan et fa falta.

Tercer, amb la base de dades oberta al costat. Aquesta és la regla innegociable. Si el llibre posa una consulta, l'escrius tu, l'executes i la trenques expressament: treu-li el GROUP BY, canvia l'INNER per LEFT, posa-li un NULL on no l'espera. El que aprens no és l'exemple del llibre, és la diferència entre l'exemple i la teva versió espatllada. Tingues un esquema propi per a això —el de BiblioRed et serveix perfectament— i tradueix els exemples del llibre a les teves taules. La traducció és la meitat de l'aprenentatge.

Quart, pren notes de decisions, no de definicions. No copiïs "una clau candidata és un conjunt minimal d'atributs que...". Això és al llibre i el pots rellegir. Anota "si tinc una taula de préstecs amb data de devolució nul·la, Karwin diu que el problema no és el NULL sinó que estic modelant dos fets en una fila". Les notes útils són les que et discuteixen un disseny.

Cinquè, permet-te abandonar-lo. Si en tres sessions no n'has tret res, tanca'l. Pot ser que no sigui el teu moment, o que aquell llibre estigui escrit per a una altra persona. Tornar a un llibre dos anys després i entendre'l sencer és una experiència comuna i agradable; forçar-lo avui només produeix culpa.

Sisè, rellegir és normal. Els llibres de la categoria D d'aquesta lliçó es rellegeixen. La primera lectura de «Designing Data-Intensive Applications» sense haver patit mai un problema de replicació és útil però superficial; la segona, després d'haver-lo patit, és una altra cosa.

Tipus de llibre Com abordar-lo Senyal que l'estàs llegint malament
Manual de referència (Silberschatz, Elmasri, Date) Per capítols solts, segons necessitat Vas per la pàgina 200 i només has llegit
Receptari (SQL Cookbook) Per problema concret, quan el tens El llegeixes de principi a fi
Assaig amb tesi (Kleppmann, Karwin) Sencer i en ordre, és un argument Et saltes capítols "que no apliquen"
Tutorial guiat (Learning SQL, Hernandez) Sencer, fent tots els exercicis Només llegeixes el codi sense escriure'l
Interioritats (Petrov, Database Internals) Capítols aïllats, sense pressa, rellegint Et frustres per no seguir un algorisme

  1. Bloc A — Fonaments i teoria

Són els llibres de text universitaris. Grossos, cars, densos i de referència: no es llegeixen sencers, es consulten. El seu valor és que tracten la matèria amb rigor i amb demostracions, cosa que un tutorial no fa mai. Si alguna vegada t'has preguntat "això de la FNBC d'on surt exactament?", la resposta és aquí.

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
Database System Concepts — Silberschatz, Korth, Sudarshan (McGraw-Hill) Mitjà-alt 01-04, 02-01, 05-02, 06-01, 06-02 L'equilibri entre teoria i pràctica; els capítols de transaccions i recuperació són excel·lents Qui busqui aprendre SQL de pressa; qui no vulgui notació formal
Fundamentals of Database Systems — Elmasri, Navathe (Pearson) Mitjà-alt 04-02, 04-03, 05-01, 05-03 El tractament del model ER i del pas ER→relacional, el millor dels tres Qui no hagi de modelar; és més àrid que Silberschatz
An Introduction to Database Systems — C. J. Date (Addison-Wesley) Alt (teòric) 02-01, 05-02 El purisme relacional; entendre què és de debò una relació i per què SQL no la respecta del tot Gairebé tothom, tret que t'interessi el fonament teòric per si mateix

Fitxa: «Database System Concepts» — Silberschatz, Korth i Sudarshan

Què és. El llibre de text de referència de l'assignatura de bases de dades a mig món, des dels anys vuitanta i amb múltiples edicions. Cobreix absolutament tot el temari clàssic: model relacional, SQL, disseny, normalització, emmagatzematge, indexació, processament i optimització de consultes, transaccions, concurrència, recuperació, distribució i una part final de temes moderns.

Què cobreix d'aquest curs. Pràcticament tot el dels mòduls 1, 2, 4, 5 i 6, però amb demostració al darrere. Els números de capítol varien d'una edició a una altra, així que busca per títol a l'índex:

Mòdul d'aquest curs Capítol(s) a buscar a l'índex
M1 (01-01 a 01-04) «Introduction» i la part d'arquitectura del sistema
M2 (02-01 a 02-06) «The Relational Model» / «Relational Algebra», «Introduction to SQL», «Intermediate SQL», «Advanced SQL»
M4 (04-01 a 04-04) «Database Design and the E-R Model»
M5 (05-01 a 05-04) «Relational Database Design» (aquí hi ha les formes normals i les dependències funcionals)
M6 (06-01 a 06-04) «Transactions», «Concurrency Control», «Recovery System», «Indexing»

Nivell. Universitari de grau. Assumeix comoditat amb notació matemàtica lleugera (conjunts, funcions) però no exigeix més.

Com treballar-lo. No el compris per llegir-lo: compra'l (o aconsegueix-lo a una biblioteca) per tenir-lo. Quan a la feina aparegui "crec que aquí hi ha una anomalia d'actualització", vas al capítol de disseny relacional, llegeixes vint pàgines i tornes amb la resposta rigorosa. El capítol de control de concurrència és el millor complement possible al que vas fer a 06-02: allà vas veure el fenomen, aquí veus el protocol de bloqueig en dues fases que l'evita i per què.

Què saltar-se. La part d'àlgebra relacional formal, tret que t'interessi; per treballar no la necessites. Els capítols finals de "temes avançats" envelleixen de pressa a cada edició. I el capítol de SQL, francament, s'aprèn millor al bloc B.

Fitxa: «Fundamentals of Database Systems» — Elmasri i Navathe

Què és. L'altre gran llibre de text. Competeix directament amb Silberschatz i l'elecció entre tots dos és en bona mesura de gust. El seu tret diferencial és que dedica molt més espai i molt millor tractament al modelatge conceptual.

Què cobreix d'aquest curs. El seu territori natural són els mòduls 4 i 5. La part de model ER i ER estès, i la de transformació de diagrames a esquemes relacionals, és la més completa dels tres llibres d'aquest bloc i és la continuació directa de 04-02 i 04-03. També tracta a fons les dependències funcionals i l'algorisme de descomposició sense pèrdua, que a 05-03 vas aplicar de manera pràctica sense demostrar-lo.

Nivell. Universitari, lleugerament més àrid que Silberschatz.

Com treballar-lo. Si has de modelar esquemes professionalment, llegeix sencera la part de disseny conceptual, refent el diagrama de BiblioRed amb la seva notació. Veuràs que la notació d'Elmasri-Navathe difereix de la de potes de gall que vas fer servir amb Mermaid; saber llegir les dues és útil perquè a la documentació antiga de les empreses te les trobaràs totes dues.

Què saltar-se. Tota la resta, honestament, si ja tens Silberschatz. Tenir-los tots dos és redundant per al 95 % de la gent.

Fitxa: «An Introduction to Database Systems» — C. J. Date

Què és. Un llibre d'una tradició diferent. Date va ser col·lega d'E. F. Codd i ha dedicat la seva carrera a defensar el model relacional en la seva versió pura, cosa que el porta a criticar SQL amb duresa i constància: els duplicats, els NULL, l'ordre de les columnes, tot el que SQL fa i la teoria relacional no permet.

Què cobreix d'aquest curs. Dona la fonamentació teòrica de 02-01. Després de llegir-lo, entendràs per què en aquella lliçó es va insistir que una relació és un conjunt de tuples i que la taula de SQL no ho és del tot.

Nivell. Alt en exigència conceptual, encara que no en matemàtiques. És un llibre d'idees.

Com treballar-lo. Com a lectura de discussió, no de consulta. Llegeix els capítols sobre relacions, sobre NULL i sobre integritat, i contrasta'ls amb el que fas cada dia. El capítol sobre els valors nuls t'incomodarà, i aquesta incomoditat és productiva: la propera vegada que posis una columna NULL a BiblioRed et preguntaràs si estàs representant "no ho sé", "no aplica" o "encara no", que són tres coses diferents que SQL confon en una.

Què saltar-se. És un llibre que pots llegir només per parts sense cap problema. I és perfectament lícit no llegir-lo mai: és l'únic d'aquesta lliçó que és una recomanació per a una minoria.

  1. Bloc B — SQL pràctic

Aquí és on la majoria de la gent hauria de començar. Són llibres que es tradueixen directament a millor feina la setmana següent.

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
Learning SQL — Alan Beaulieu (O'Reilly) Iniciació 02-02, 02-03, 02-04, 02-05 Reforç ordenat i molt clar de tot el mòdul 2 Qui ja faci JOIN i agregacions amb soltesa: li sabrà a poc
SQL Cookbook — Anthony Molinaro (O'Reilly) Mitjà-alt 02-04, 02-05, 07-01, 07-04 Receptes per a problemes reals que no saps ni com buscar a Google Qui estigui començant: dona per sabut el SQL bàsic
SQL Antipatterns — Bill Karwin (Pragmatic Bookshelf) Mitjà 04-01, 04-04, 05-03 Ensenya a reconèixer els dissenys dolents que ja són en producció Qui vulgui aprendre sintaxi; aquí es parla de decisions

Fitxa: «SQL Antipatterns» — Bill Karwin

Què és. El llibre que més s'assembla en esperit a la lliçó 04-01 d'aquest curs. Cada capítol presenta un antipatró real —amb el nom col·loquial que té a la professió— explica per què la gent hi cau, quan és legítim (sempre hi ha un cas en què ho és) i quina és l'alternativa correcta.

Què cobreix. Antipatrons de disseny lògic (llistes separades per comes dins d'una columna, jerarquies mal representades, claus primàries mal triades, ús indegut de NULL, atributs entitat-valor), de disseny físic, de consulta i de desenvolupament d'aplicacions, inclosa la injecció de SQL.

Nivell. Mitjà. Necessites saber SQL, però no cal res avançat.

Com treballar-lo. Aquest sí que es llegeix sencer i en ordre, perquè és un argument acumulatiu. I es llegeix amb l'esquema de BiblioRed al davant: per cada capítol, pregunta't si el teu esquema comet aquest pecat. En trobaràs algun, i aquest exercici val més que qualsevol resum. El capítol sobre representació de jerarquies connecta directament amb el que vas resoldre al mòdul 4 amb les categories de materials.

Què saltar-se. Res, és curt. Si tens pressa, prioritza els capítols de disseny lògic sobre els de desenvolupament d'aplicacions, que són els més lligats a tecnologies concretes i per tant els que pitjor envelleixen.

Fitxa: «SQL Cookbook» — Anthony Molinaro

Què és. Un receptari en el sentit literal: dos-cents i escaig problemes concrets ("com trobar buits en una seqüència de dates", "com calcular una mitjana mòbil", "com pivotar files a columnes") amb la seva solució en SQL, explicada pas a pas i —això és el valuós— amb la variant per a cada motor quan difereixen.

Què cobreix. El territori del mòdul 7, especialment 07-04. Funcions de finestra, consultes jeràrquiques, manipulació de dates, pivotatge, deduplicació, càlculs entre files consecutives.

Nivell. Mitjà-alt. No és per aprendre SQL, és per deixar d'escriure SQL dolent.

Com treballar-lo. Per consulta, quan tinguis el problema. Però hi ha una excepció: llegeix-te sencer el capítol de funcions de finestra, encara que no el necessitis ara. És el salt de productivitat més gran disponible per a algú que ja sap GROUP BY, i és exactament la frontera on aquest curs t'ha deixat. Si a 07-04 et van costar les consultes de "el préstec anterior del mateix soci", aquest capítol és la teva resposta.

Què saltar-se. Les seccions de motors que no fas servir. Si treballes amb PostgreSQL, les variants d'Oracle i SQL Server són soroll en la primera lectura.

Fitxa: «Learning SQL» — Alan Beaulieu

Què és. Un manual d'iniciació ben construït, progressiu i amb exercicis. És el llibre que recomanaries a algú que arriba sense haver fet aquest curs.

Què cobreix. El mòdul 2 complet, amb més exercicis i més a poc a poc. Hi afegeix transaccions, vistes, índexs i restriccions a nivell introductori.

Nivell. Iniciació.

Com treballar-lo. Si el mòdul 2 et va resultar còmode, salta-te'l: no t'aportarà res. Si a 02-04 els JOIN i les subconsultes correlacionades et van costar —i és el més comú— treballa'l sencer, amb els seus exercicis, en tres o quatre setmanes. És el millor ús possible d'aquest temps. Fes servir MySQL o el motor que porta el llibre per seguir els seus exemples, o millor, tradueix els seus exemples a PostgreSQL i a les taules de BiblioRed.

Què saltar-se. Els capítols finals de temes avançats, que estan més ben tractats en altres llibres d'aquesta lliçó.

  1. Bloc C — Disseny i modelatge

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
Database Design for Mere Mortals — Michael J. Hernandez (Addison-Wesley) Iniciació-mitjà 04-01, 04-02, 04-03, 05-03 Un mètode de disseny pas a pas, sense àlgebra, aplicable el mateix dia Qui busqui teoria formal o rigor acadèmic
The Data Warehouse Toolkit — Ralph Kimball, Margy Ross (Wiley) Mitjà-alt 05-04, 02-05 La referència del modelatge dimensional: esquema en estrella, fets i dimensions Qui treballi només en aplicacions transaccionals

Fitxa: «Database Design for Mere Mortals» — Michael J. Hernandez

Què és. Un mètode complet de disseny de bases de dades relacionals explicat sense una sola fórmula. On Elmasri demostra, Hernandez dona una llista de passos i de preguntes a fer al client.

Què cobreix. El mòdul 4 sencer, amb un enfocament més de procés que de notació: com entrevistar els usuaris, com identificar entitats a partir del que diuen, com depurar les llistes de camps, com establir i validar les relacions, com escriure les regles de negoci que les restriccions hauran d'implementar. Arriba també a la normalització, però pel camí informal.

Nivell. Accessible. És el llibre de disseny per a qui no ve d'informàtica.

Com treballar-lo. Aplicant el seu mètode a un domini que no sigui el del llibre. L'exercici 1 d'aquesta lliçó va justament d'això.

Què saltar-se. El seu tractament de la normalització és correcte però fluix comparat amb el que ja saps després del mòdul 5. Si acabes de fer aquest mòdul, aquesta part et sobra.

Fitxa: «The Data Warehouse Toolkit» — Ralph Kimball i Margy Ross

Què és. El llibre fundacional del modelatge dimensional, és a dir, del disseny de bases de dades pensades per analitzar en lloc de per operar. Kimball és qui va popularitzar l'esquema en estrella que se't va presentar al final de 05-04 com l'exemple canònic de desnormalització deliberada.

Què cobreix. Taules de fets i taules de dimensions, granularitat, dimensions que canvien lentament (el famós problema de "el soci s'ha mudat, què passa amb els préstecs que va fer abans?"), i una col·lecció llarguíssima de casos per sector.

Nivell. Mitjà-alt, però conceptualment accessible; el difícil no és entendre'l, és aplicar-lo bé.

Com treballar-lo. Llegeix la primera part —els capítols de fonaments dimensionals— i un de sol dels casos sectorials, el que més s'assembli a la teva feina. Després, dissenya l'esquema en estrella dels préstecs de BiblioRed: taula de fets prestecs, dimensions soci, material, biblioteca, temps. És l'exercici 2 d'aquesta lliçó.

Què saltar-se. Els quinze capítols de casos sectorials que no et toquen. El llibre està pensat per consultar-se per sector, no per llegir-se sencer.

  1. Bloc D — Rendiment i interioritats del motor

Aquest és, amb diferència, el bloc més important de la lliçó per a algú que ja ha fet aquest curs. Conté el llibre que es recomana si només se n'ha de llegir un.

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
SQL Performance Explained — Markus Winand Mitjà 06-03 Explicar els índexs B-tree tan bé que ja no tornes a dubtar de l'ordre de les columnes Qui no hagi patit mai una consulta lenta
Designing Data-Intensive Applications — Martin Kleppmann (O'Reilly) Mitjà-alt 01-04, 03-04, 06-01, 06-02, 08-03 Unificar en un sol marc tot el que aquest curs ha anat deixant solt Ningú, honestament; és el següent llibre per a gairebé tothom
Database Internals — Alex Petrov (O'Reilly) Alt 01-04, 06-03 Obrir el motor: estructures en disc, B-trees, LSM-trees, consens Qui no senti curiositat genuïna per l'interior; no aporta al dia a dia

Fitxa: «SQL Performance Explained» — Markus Winand

Què és. Un llibre curt i quirúrgic sobre una sola cosa: com funcionen els índexs i per què les teves consultes no els fan servir. El seu contingut també està disponible al web de l'autor, https://use-the-index-luke.com/, que és una de les referències més útils i gratuïtes que existeixen sobre el tema.

Què cobreix. L'estructura del B-tree, l'ordre de les columnes en un índex compost (i per què és la font número u d'índexs inútils), predicats que impedeixen l'ús de l'índex, LIKE amb comodí inicial, funcions sobre columnes indexades, índexs que cobreixen la consulta, ordenació i agrupació que aprofiten l'índex, i paginació eficient.

Nivell. Mitjà, i sorprenentment fàcil per al que ensenya.

Com treballar-lo. És la continuació exacta de 06-03. Allà vas aprendre a llegir un EXPLAIN i a distingir un recorregut seqüencial d'un per índex; aquí aprens a predir quin obtindràs abans d'executar res. Treballa'l amb la base de dades al davant i amb volum suficient: si les teves taules tenen 50 files, el planificador farà recorregut seqüencial sempre i no aprendràs res. Genera mig milió de préstecs ficticis a BiblioRed (a 09-03 veuràs com) i repeteix cada exemple del llibre.

Què saltar-se. Res. És curt expressament. Si has de triar, el capítol sobre l'ordre de les columnes en índexs compostos i el de paginació són els que més rendiment et tornen per pàgina llegida.

Fitxa: «Designing Data-Intensive Applications» — Martin Kleppmann

Què és. El llibre que cal llegir després d'aquest curs si només se n'ha de llegir un. No és un llibre de bases de dades: és un llibre sobre sistemes que manegen dades, que inclou les bases de dades com una peça. I és la millor síntesi existent entre la teoria acadèmica i la pràctica industrial.

Què cobreix. Models de dades (relacional, documental, graf) i per què va guanyar cadascun on va guanyar; motors d'emmagatzematge i recuperació, amb B-trees davant de LSM-trees; codificació i evolució d'esquemes; replicació; particionat; transaccions i nivells d'aïllament, amb el millor tractament divulgatiu que existeix de l'aïllament snapshot i de l'anomalia d'escriptura esbiaixada; els problemes dels sistemes distribuïts —rellotges, fallades parcials, mentides de la xarxa—; consistència i consens; i una part final sobre processament per lots i per fluxos.

Nivell. Mitjà-alt, però molt ben escrit. Aquest curs et deixa en condicions de llegir-lo.

Com treballar-lo. Sencer i en ordre; és un argument, no una referència. Ritme raonable: un capítol per setmana, prenent notes. Els seus capítols de transaccions i de replicació són la continuació natural de 06-01 i 06-02, i tota l'última part és el que dona fonament al que vas fer a ull a 08-03: quan el llibre parla de change data capture estarà descrivint, amb nom propi i amb els seus modes de fallada estudiats, exactament el patró de taula outbox que vas fer servir per sincronitzar PostgreSQL amb MongoDB i Elasticsearch. Cada capítol acaba amb una bibliografia comentada extensíssima que és, a la pràctica, un mapa de tota la literatura del camp.

Què saltar-se. Res en primera lectura, encara que els capítols de consens són els més durs i és legítim deixar-los per a una segona passada. El web del llibre és https://dataintensive.net/.

Fitxa: «Database Internals» — Alex Petrov

Què és. El llibre que obre el motor que a 01-04 només es va descriure per fora. Es divideix en dues meitats ben diferenciades: emmagatzematge (com es guarden de debò les dades en disc) i sistemes distribuïts (com es posen d'acord diverses màquines).

Què cobreix. Format de pàgines i de fitxers, B-trees en detall i les seves variants reals, LSM-trees i compactació, gestió del búfer, registre d'escriptura anticipada (el WAL que va aparèixer a 06-01 com a garantia de durabilitat), i després difusió de fallades, detectors de fallada, líders, replicació i consens.

Nivell. Alt. És el més exigent de la lliçó juntament amb Date.

Com treballar-lo. Només si et pica la curiositat. No et farà millor a la teva feina la setmana que ve, però explica per què PostgreSQL i Cassandra es comporten tan diferent davant d'escriptures massives: un fa servir B-trees i l'altre LSM-trees, i tota la resta se'n deriva. Llegeix la primera meitat; la segona se solapa amb Kleppmann i Kleppmann és més llegible.

  1. Bloc E — NoSQL i sistemes distribuïts

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
NoSQL Distilled — Pramod J. Sadalage, Martin Fowler (Addison-Wesley) Iniciació-mitjà 03-01, 03-02, 03-04 Un panorama curt i honest de les famílies NoSQL i de quan fer-les servir Qui busqui detall d'un motor concret
MongoDB: The Definitive Guide — Bradshaw, Brazil, Chodorow (O'Reilly) Mitjà 03-03, 08-02 El llibre de referència de MongoDB més enllà del manual Qui no hagi de fer servir MongoDB
MongoDB Manual (documentació oficial, https://www.mongodb.com/docs/) Tots 03-03, 08-02, 08-03 És, a la pràctica, un llibre sencer: gratuït i sempre al dia

Fitxa: «NoSQL Distilled» — Sadalage i Fowler

Què és. Un llibre deliberadament breu que fa el que diu el seu títol: destil·lar. És l'origen del terme persistència poliglota que va estructurar tota la lliçó 08-03.

Què cobreix. Models d'agregats, les quatre famílies (clau-valor, documental, família de columnes, graf), distribució, consistència, el teorema CAP explicat sense misticisme, i l'elecció de motor.

Nivell. Accessible.

Com treballar-lo. És la lectura complementària del mòdul 3. Es llegeix en dues tardes.

Què saltar-se. El seu capítol de mapa-reducció i alguns exemples concrets de producte han envellit —el panorama de motors NoSQL va canviar molt des de la seva publicació— però el marc conceptual continua sent el bo. Llegeix-lo per les idees, no pels productes.

Sobre la documentació de MongoDB com a llibre

El MongoDB Manual mereix ser en una lliçó de llibres perquè funciona com un. Té una progressió pensada, capítols de conceptes i no només de referència, i una secció de modelatge de dades que és lectura obligatòria després de 03-03. És gratuït, està sempre actualitzat i no envelleix. Quan a 08-02 vas decidir incrustar les incidències dins del document de bicicleta en lloc de referenciar-les, estaves aplicant el que aquella secció explica formalment. Enllaç arrel: https://www.mongodb.com/docs/.

  1. Bloc F — PostgreSQL en concret

PostgreSQL ha estat el motor principal de tot aquest curs, així que aquests dos llibres són els d'aplicació més immediata.

Llibre Nivell Dona continuïtat a En què és bo Per a qui no és
PostgreSQL: Up and Running — Regina Obe, Leo Hsu (O'Reilly) Iniciació-mitjà 01-04, 06-04 Posar en marxa i administrar PostgreSQL sense ser administrador de sistemes Qui ja administri PostgreSQL cada dia
The Art of PostgreSQL — Dimitri Fontaine Mitjà-alt 02-04, 02-05, 07-04 Convèncer-te que moltíssima lògica que escrius a l'aplicació va millor en SQL Qui no faci servir PostgreSQL
Manual de PostgreSQL (https://www.postgresql.org/docs/) Tots Tot el curs Exhaustiu, exacte i sorprenentment ben escrit

Fitxa: «The Art of PostgreSQL» — Dimitri Fontaine

Què és. Un llibre amb una tesi clara: la majoria dels desenvolupadors fan servir la base de dades com un magatzem ximple i escriuen en el seu llenguatge d'aplicació coses que SQL resol millor. Cada capítol demostra la tesi amb un cas: una consulta que a l'aplicació són dues-centes línies i en SQL vint, i a sobre més ràpides.

Què cobreix. SQL avançat amb les eines específiques de PostgreSQL: funcions de finestra, expressions de taula comunes, LATERAL, tipus de dades rics (rangs, jsonb, arrays, tipus geomètrics), extensions, i una secció notable sobre modelatge.

Nivell. Mitjà-alt. Necessites el mòdul 2 assentat.

Com treballar-lo. És el complement perfecte de 07-04. Agafa'l capítol a capítol i, per cada tècnica nova, busca on encaixaria a BiblioRed. El capítol de tipus de rang, per exemple, resol d'una tacada el problema de reserves solapades de sales que al mòdul 7 vas haver d'atacar amb restriccions i comprovacions manuals: PostgreSQL té una restricció d'exclusió que ho fa declarativament.

Què saltar-se. Res rellevant, però és un llibre per consumir a poc a poc.

Sobre el manual de PostgreSQL

No el tractis com un simple manual de consulta. Les seves parts de Tutorial, The SQL Language i Server Administration són capítols de llibre amb totes les de la llei. A 09-02 trobaràs un ordre de lectura recomanat per al manual complet; aquí n'hi ha prou de dir que si t'haguessis de quedar amb un sol text sobre PostgreSQL, seria aquest, i és gratuït.

  1. Bloc G — Clàssics i articles fundacionals

Aquí hi ha una idea que convé defensar: llegir articles originals és més fàcil del que sembla i més útil del que se suposa. La reputació d'inaccessibles que tenen els articles acadèmics ve de l'àrea equivocada; en bases de dades, els articles fundacionals estan escrits per enginyers que volien que se'ls entengués.

Fitxa: «A Relational Model of Data for Large Shared Data Banks» — E. F. Codd (1970)

Què és. L'article que va inventar el model relacional, publicat a Communications of the ACM, volum 13, número 6, el juny de 1970. Es va citar a 01-03 en explicar la història; aquí la recomanació és que el llegeixis sencer.

Per què val la pena. Són unes dotze pàgines. I en aquestes dotze pàgines hi ha, ja formulat, gairebé tot el que has estudiat als mòduls 2, 4 i 5: la independència de les dades respecte de la seva representació física, les relacions com a conjunts de tuples, les claus, la redundància i les anomalies, i fins i tot un primer esbós de normalització. Llegir-lo produeix un efecte útil: descobrir que les idees que t'han ensenyat com a "això es fa així" van ser una proposta discutida d'una persona concreta contra el consens de la seva època, que era el model jeràrquic i el de xarxa.

Com aconseguir-lo. Està disponible a la biblioteca digital de l'ACM (https://dl.acm.org/) i reproduït en múltiples repositoris universitaris. Busca'l pel seu títol exacte; no cal cap subscripció per trobar-ne una còpia legítima.

Com llegir-lo. Dues passades. La primera, sencera i sense aturar-te, acceptant que la notació de 1970 és diferent de l'actual. La segona, traduint el seu vocabulari al teu: on diu relation pensa taula, on diu domain pensa tipus de dada, on parla de nonsimple domains està anticipant el debat que cinquanta anys després va reaparèixer com a jsonb i documents imbricats.

Altres clàssics que pots llegir directament

Article / obra Any aprox. Dona continuïtat a Per què
«A Critique of ANSI SQL Isolation Levels» — Berenson, Bernstein, Gray, Melton, O'Neil, O'Neil 1995 06-02 Demostra que les definicions de l'estàndard SQL dels nivells d'aïllament són ambigües, i introdueix l'aïllament snapshot. És el text sobre el que vas veure en aquella lliçó
«Transaction Processing: Concepts and Techniques» — Jim Gray, Andreas Reuter 1992 06-01, 06-02 El tractat de referència sobre transaccions. Enorme; es consulta, no es llegeix
«CAP Twelve Years Later: How the "Rules" Have Changed» — Eric Brewer 2012 03-01, 03-04 El mateix autor del teorema CAP explica com s'ha malinterpretat el seu enunciat durant una dècada

Una nota sobre per què llegir originals. Quan llegeixes un resum del teorema CAP en un blog, estàs llegint la interpretació d'algú que va llegir algú que va llegir Brewer. Cada baula simplifica i deforma. El cas del CAP és l'exemple canònic: la versió de blog ("tria dos de tres") és directament falsa, i el mateix Brewer va escriure l'article del 2012 per corregir-la. Els originals costen una tarda i et vacunen contra una dècada de simplificacions repetides.

  1. Itinerari de lectura en tres etapes

Cap itinerari no serveix per a tothom. Aquests tres estan construïts a partir d'on et deixa aquest curs, cap a tres destinacions professionals diferents.

flowchart TD
    A["Fi del curs<br/>(has acabat 08-03)"] --> B{"Cap a on vas?"}
    B --> C["Desenvolupament d'aplicacions"]
    B --> D["Analisi de dades"]
    B --> E["Administracio de bases de dades"]

    C --> C1["0-3 mesos<br/>SQL Antipatterns<br/>+ SQL Performance Explained"]
    C1 --> C2["3-12 mesos<br/>Designing Data-Intensive Applications<br/>+ The Art of PostgreSQL"]
    C2 --> C3["12-24 mesos<br/>SQL Cookbook (consulta)<br/>+ Database Internals (1a meitat)"]

    D --> D1["0-3 mesos<br/>SQL Cookbook (finestres)<br/>+ Learning SQL si cal"]
    D1 --> D2["3-12 mesos<br/>The Data Warehouse Toolkit<br/>+ The Art of PostgreSQL"]
    D2 --> D3["12-24 mesos<br/>Designing Data-Intensive Applications<br/>(part de processament)"]

    E --> E1["0-3 mesos<br/>PostgreSQL: Up and Running<br/>+ manual oficial (administracio)"]
    E1 --> E2["3-12 mesos<br/>SQL Performance Explained<br/>+ Silberschatz (transaccions)"]
    E2 --> E3["12-24 mesos<br/>Database Internals<br/>+ Gray i Reuter (consulta)"]

    C3 --> Z["Codd 1970 i els articles<br/>classics: en qualsevol moment"]
    D3 --> Z
    E3 --> Z

En taula, amb el detall de per què cada elecció:

Etapa Desenvolupament d'aplicacions Anàlisi de dades Administració de BD
Propers 3 mesos «SQL Antipatterns» + «SQL Performance Explained». Són curts, s'apliquen immediatament i arreglen el que ja tens en producció El capítol de funcions de finestra de «SQL Cookbook». Si el mòdul 2 va costar, «Learning SQL» sencer abans «PostgreSQL: Up and Running» + les parts d'administració del manual oficial
Propers 12 mesos «Designing Data-Intensive Applications» sencer + «The Art of PostgreSQL» «The Data Warehouse Toolkit» (fonaments + un cas) + «The Art of PostgreSQL» «SQL Performance Explained» + els capítols de transaccions, concurrència i recuperació de Silberschatz
Propers 24 mesos «SQL Cookbook» com a referència + primera meitat de «Database Internals» La part de processament per lots i fluxos de Kleppmann «Database Internals» sencer + Gray i Reuter com a referència permanent
En qualsevol moment L'article de Codd del 1970, i la crítica dels nivells d'aïllament del 1995 Ídem Ídem, més l'article de Brewer del 2012

Tres avisos sobre l'itinerari. Un: són uns vuit llibres en dos anys, i això ja és un ritme ambiciós per a algú que a més treballa. Si en fas la meitat, vas bé. Dos: l'ordre importa més que la quantitat; llegir Kleppmann abans d'haver patit un problema real de dades és llegir-lo a mitges. Tres: si només has de fer una cosa de tota aquesta lliçó, que sigui llegir «Designing Data-Intensive Applications» durant el proper any, sigui quin sigui el teu perfil.

  1. Edicions, traduccions i com aconseguir els llibres

Edicions. Els llibres de text del bloc A van per edicions molt avançades i cada nova edició reordena capítols i afegeix temes moderns. Per a l'ús que els donaràs, una edició anterior serveix perfectament i és molt més fàcil d'aconseguir: la teoria relacional i les formes normals no han canviat. On sí que importa l'edició recent és en els llibres lligats a un producte —PostgreSQL, MongoDB— perquè les versions del motor avancen i els exemples deixen de funcionar.

Traduccions al català. La situació és desigual i canvia amb el temps. Els llibres de text clàssics han tingut traduccions en algun moment, de vegades d'edicions antigues; els llibres més recents i els d'editorials tècniques petites solen ser només en anglès. Verifica abans de comprar i no donis per fet que existeix versió en català d'un títol concret. Dit sense embuts: l'anglès tècnic de lectura és, a hores d'ara, part de l'ofici, i és molt més fàcil del que sembla perquè el vocabulari és el que ja coneixes.

On aconseguir-los. Biblioteques universitàries (els llibres del bloc A són a totes les d'escoles d'informàtica), biblioteques públiques amb préstec interbibliotecari, edicions electròniques de les mateixes editorials, i les subscripcions de lectura tècnica que moltes empreses ja paguen sense que els seus empleats ho sàpiguen —pregunta a la teva feina abans de comprar res—. Diversos dels recursos citats són gratuïts i legals: el manual de PostgreSQL, el MongoDB Manual, el contingut de use-the-index-luke.com i l'article de Codd.

I de nou, l'advertiment que obre la lliçó: disponibilitat, edicions vigents, formats i preus canvien. Comprova sempre a la font oficial —web de l'editorial o de l'autor— abans de comprar.

Errors Habituals i Consells

Error 1: comprar cinc llibres de cop. És la manera més eficaç de no llegir-ne cap. La pila de llibres sense llegir genera culpa, i la culpa genera evitació. Un cada vegada.

Error 2: començar pel més gros. Silberschatz té nou-centes pàgines i sembla "el complet", així que molta gent hi comença i abandona al capítol 3. Comença per «SQL Antipatterns» o per «SQL Performance Explained», que són curts, s'acaben i donen resultats visibles. Acabar un llibre tècnic genera l'impuls per al següent.

Error 3: llegir sense teclat. Ja s'ha dit i es repeteix perquè és l'error dominant. Un llibre tècnic llegit al metro és entreteniment; llegit amb la base de dades oberta és formació.

Error 4: creure que l'edició antiga no val. Per a teoria, l'edició de fa quinze anys és idèntica en el que t'importa. No deixis de llegir un clàssic perquè només en trobis una edició vella.

Error 5: confondre "conegut" amb "adequat per a mi ara". «Database Internals» és un llibre excel·lent i és una pèrdua de temps per a qui encara dubta amb els LEFT JOIN. El millor llibre és el que està un esglaó per damunt d'on ets, no cinc.

Error 6: no rellegir. Els tres o quatre llibres centrals de la teva carrera es rellegeixen cada pocs anys i cada vegada diuen una cosa diferent, perquè qui ha canviat ets tu.

Consell 1: porta una llista de "conceptes que no vaig entendre". Cada vegada que un llibre esmenti alguna cosa que no coneixes —write-ahead log, LSM-tree, dimensió que canvia lentament— anota-la en comptes d'aturar-te. En acabar el capítol, resol les tres més repetides. Aturar-te a cadascuna fa que no acabis mai.

Consell 2: fes servir sempre el mateix esquema de pràctiques. Tradueix tots els exemples de tots els llibres a BiblioRed o a VallBici. Tenir un domini propi que coneixes al dit converteix cada exemple nou en una comparació, i les comparacions es recorden.

Consell 3: la bibliografia d'un bon llibre és un mapa. Kleppmann acaba cada capítol amb desenes de referències comentades. Quan un tema t'enganxi, aquesta bibliografia és millor guia que qualsevol cerca a internet.

Consell 4: desconfia de les llistes sense criteri, inclosa aquesta si no la contrastes. Que un llibre sigui aquí significa que a molta gent li ha servit, no que et servirà a tu. Fulleja abans de comprometre trenta hores.

Exercicis

Aquests exercicis no són de memòria: són de planificació i de pràctica real. No tenen una única resposta correcta, i les solucions que segueixen són respostes model raonades, no la resposta. El teu itinerari serà diferent del que apareix aquí i estarà bé si el raonament s'aguanta.

Exercici 1: el teu itinerari personal de dotze mesos

Dissenya el teu propi pla de lectura per als propers dotze mesos. Ha d'incloure, obligatòriament:

  1. Una autoavaluació honesta: de les 33 lliçons anteriors d'aquest curs, quines són les tres que domines pitjor? Sigues concret (no "el mòdul 6", sinó "no sabria decidir entre READ COMMITTED i REPEATABLE READ per al tancament d'un préstec").
  2. Un perfil objectiu entre els tres de l'apartat 10, o una barreja justificada.
  3. Tres llibres com a màxim, amb l'ordre en què els llegiràs i per què en aquest ordre.
  4. Per a cada llibre: quins capítols concrets treballaràs primer i quins posposaràs.
  5. Un lliurable per llibre: alguna cosa construïda sobre BiblioRed o VallBici que demostri que l'has treballat.
  6. Una estimació realista d'hores setmanals i la data en què revisaràs el pla.

Exercici 2: aplicar un llibre abans de llegir-lo

Tria un d'aquests dos encàrrecs i desenvolupa'l fins al punt en què puguis defensar-lo per escrit en una pàgina:

Opció A (Kimball). Dissenya l'esquema en estrella per a l'anàlisi de préstecs de BiblioRed: identifica la taula de fets, la seva granularitat exacta, les seves mesures, i les dimensions necessàries. Resol explícitament el problema de la dimensió que canvia lentament: un soci es muda de barri; els préstecs que va fer l'any passat s'han d'atribuir al barri antic o al nou? Justifica la decisió i explica com la implementaries.

Opció B (Karwin). Audita l'esquema relacional de BiblioRed dels mòduls 4 i 5 buscant antipatrons: columnes multivaluades, claus primàries sense criteri, jerarquies mal representades, usos ambigus de NULL, atributs entitat-valor encoberts. Enumera els que trobis —o els que vas estar a punt d'introduir— i, per a cadascun, digues quina seria l'alternativa i en quin cas l'antipatró hauria estat acceptable.

Exercici 3: llegir un original

Localitza i llegeix sencer l'article d'E. F. Codd del 1970, «A Relational Model of Data for Large Shared Data Banks». Després respon per escrit, en no més d'una pàgina:

  1. Quin problema concret dels sistemes de la seva època diu Codd que ve a resoldre?
  2. Assenyala dues idees de l'article que hagis estudiat en aquest curs i digues en quina lliçó van aparèixer.
  3. Assenyala una idea de l'article que aquest curs no hagi tractat, o que hagi tractat de manera diferent.
  4. Hi ha alguna cosa a l'article que avui consideraríem superada o equivocada?

Solucions

Recorda: són respostes model, no les úniques correctes. El que s'avalua és la qualitat del raonament, no la coincidència amb el que segueix.

Solució 1 (resposta model)

Un pla ben construït, per a un perfil de desenvolupament d'aplicacions back-end:

Autoavaluació. (a) No sé predir si el planificador farà servir un índex; a 06-03 vaig entendre l'EXPLAIN a posteriori però no anticipo el pla. (b) A 05-03 vaig normalitzar seguint el procediment, però davant d'un esquema aliè no sabria detectar la dependència transitiva sense que me l'assenyalin. (c) A 08-03 vaig entendre la sincronització amb taula outbox però no sabria raonar què passa si el procés que la llegeix cau a mitges.

Perfil. Desenvolupament d'aplicacions, amb un peu a administració perquè al meu equip no hi ha especialista.

Llibres i ordre.

Ordre Llibre Per què en aquesta posició Capítols primer Ajorno
1 «SQL Performance Explained» Ataca directament la debilitat (a), és curt i dona resultats en setmanes Índexs compostos, predicats que anul·len l'índex, paginació Res; és breu
2 «SQL Antipatterns» Ataca (b) des del costat pràctic: reconèixer dissenys dolents aliens Antipatrons de disseny lògic Els de desenvolupament d'aplicacions
3 «Designing Data-Intensive Applications» Ataca (c) i consolida tot; requereix els altres dos com a base Emmagatzematge i recuperació, replicació, transaccions Consens, per a una segona passada

Lliurables.

  1. Un document amb cinc consultes lentes de BiblioRed sobre 500.000 préstecs ficticis, el seu pla abans i després, l'índex creat en cada cas i la justificació de l'ordre de les seves columnes.
  2. Una auditoria escrita de l'esquema de BiblioRed amb els antipatrons detectats i la correcció proposada de cadascun.
  3. Una implementació funcionant del patró outbox de 08-03 entre PostgreSQL i MongoDB, amb una prova deliberada: matar el procés lector a mitja tanda i documentar què passa i per què no es perd cap esdeveniment.

Ritme. Quatre hores setmanals, en dues sessions de dues hores. Revisió del pla als tres mesos: si a aquestes alçades no he acabat el primer llibre, el problema és el ritme, no el llibre, i redueixo el pla a dos llibres.

Solució 2 (resposta model, opció A)

Taula de fets: fets_prestec.

Granularitat: una fila per préstec individual d'un exemplar. És la decisió més important del disseny i cal declarar-la abans de triar cap columna. Es tria la granularitat més fina disponible perquè des d'ella es pot agregar a qualsevol nivell (mes, biblioteca, categoria), mentre que des d'una taula ja agregada no es pot baixar.

Mesures: dies_prestec, dies_retard, import_multa, i un comptador implícit (cada fila és un préstec).

Dimensions: dim_soci, dim_material, dim_exemplar, dim_biblioteca, dim_temps_prestec, dim_temps_devolucio. Les dues dimensions de temps apunten a la mateixa taula de calendari amb dos papers diferents.

La dimensió que canvia lentament. El soci es muda de barri. Hi ha tres tractaments clàssics i l'elecció depèn de la pregunta de negoci:

Tractament Què fa Conseqüència analítica
Sobreescriure el valor El barri antic desapareix Tots els préstecs històrics es reatribueixen al barri nou. La sèrie històrica per barri canvia retroactivament
Nova fila versionada S'afegeix una fila amb nova clau subrogada, dates de vigència i marca de versió actual Cada préstec queda unit al barri que el soci tenia en aquell moment. La història és estable
Columna de valor anterior Es guarden barri actual i barri previ Permet comparar "abans i després" però no reconstrueix una història llarga

Decisió per a BiblioRed: nova fila versionada. Raó: l'ús analític principal és mesurar l'activitat lectora per barri al llarg del temps per decidir on reforçar la col·lecció. Si en mudar-se un soci se li reescrivís la història, l'informe de l'any passat canviaria cada vegada que algú es muda, i un informe que canvia cap enrere no serveix per prendre decisions ni per retre comptes. La taula de fets guarda la clau subrogada de la versió vigent en el moment del préstec, no l'identificador natural del soci.

Matís honest: si la pregunta de negoci fos "on viuen avui els nostres socis més actius?", el tractament per sobreescriptura seria el correcte i el versionat, un excés. La resposta depèn de la pregunta, i per això el disseny dimensional comença sempre per les preguntes i no per les taules.

Solució 3 (resposta model)

1. El problema. Codd assenyala que en els sistemes de la seva època —jeràrquics i de xarxa— els programes d'aplicació depenien de com estaven emmagatzemades i ordenades físicament les dades: canviar un índex, un ordre o una estructura de punters obligava a reescriure programes. La seva proposta busca la independència de les dades respecte de la seva representació interna.

2. Dues idees ja vistes. (a) Les relacions com a conjunts de tuples sobre dominis, amb l'ordre de les files irrellevant: és el fonament de 02-01. (b) L'eliminació de la redundància i les anomalies derivades, amb el germen de la normalització: 05-01 i 05-02.

3. Una idea tractada d'una altra manera. Codd desenvolupa un càlcul i una àlgebra de relacions com a llenguatge de consulta; aquest curs ha fet servir directament SQL, que és una implementació comercial parcial i no del tot fidel d'aquelles idees (SQL admet duplicats i ordre, coses que la relació pura no té). Aquest desajust és just el que C. J. Date porta dècades assenyalant.

4. Què ha quedat enrere. La preocupació pel cost de l'emmagatzematge i per l'eficiència de les representacions, molt present a l'article, avui té una altra escala; i el seu tractament dels dominis no simples —relacions dins de relacions— va quedar fora del model relacional pràctic, encara que va reaparèixer dècades després per una altra porta amb els tipus jsonb i els documents imbricats que vas fer servir al mòdul 3. Res del nucli de l'article no està superat, que és exactament el que és notable d'un text de més de cinquanta anys.

Conclusió

Un mòdul de recursos corre sempre el risc de ser una llista, i una llista sense criteri no val res. Per això aquesta lliçó ha insistit més en com llegir i en quin ordre que en quants títols existeixen.

Tres coses per endur-se.

La primera: el llibre i la documentació fan feines diferents. La documentació de PostgreSQL et dirà sempre la sintaxi exacta de CREATE INDEX i mai no et dirà si aquell índex té sentit. Per al segon cal algú que hagi vist mil índexs inútils i s'hagi assegut a escriure per què ho eren. Continua fent servir el manual cada dia —és excel·lent— i llegeix llibres a part.

La segona: un llibre tècnic es treballa, no es llegeix. Amb el teclat al davant, traduint cada exemple a un esquema que coneguis, trencant les consultes expressament i anotant decisions en lloc de definicions. Un capítol treballat així val per deu llegits al sofà.

I la tercera: menys llibres i més vegades. Si de tota aquesta lliçó t'endús un sol títol, que sigui «Designing Data-Intensive Applications» de Martin Kleppmann per als propers dotze mesos; i si vols un resultat visible en tres setmanes en lloc d'en un any, comença per «SQL Performance Explained» de Markus Winand, que és la continuació exacta de 06-03 i s'acaba en unes poques tardes. I tingues present el que s'ha repetit: edicions, traduccions, disponibilitat i preus canvien; verifica sempre a la font oficial abans de comprar.

Els llibres donen ordre i criteri, però són un format lent i solitari. La lliçó 09-02 cobreix l'altra cara de l'aprenentatge autònom: la documentació oficial estudiada de debò, les plataformes on es practica SQL amb correcció automàtica, els cursos universitaris publicats en obert, i com construir amb tot això un pla d'estudi de dotze setmanes que comenci exactament on aquest curs t'ha deixat.

© Copyright 2026. Tots els drets reservats