Leggere un libro sul T-SQL scritto da Itzik Ben-Gan è come leggere un libro di cucina scritto da uno dei più grandi chef del mondo.
È una indiscutibile garanzia di qualità. L’autore, infatti, è unanimemente riconosciuto come uno dei maggiori esperti a livello mondiale del linguaggio T-SQL, la versione di SQL che accompagna da sempre le varie versioni di SQL Server.
Chi frequenta conferenze sui database, lo riconosce subito dal suo modo di parlare, lento e preciso (non è madrelingua inglese, come si può intuire dal nome).
Ormai da circa 2 anni ha reso disponibile questo libro della Microsoft Press (ora confluita sotto l’egida della O’Reilly) dedicato a chi voglia imparare le basi di questo linguaggio di interrogazione dati. D’altronde il titolo è chiaro: “Fundamentals”, e idealmente rappresenterebbe il primo passo per diventare esperti programmatori in T-SQL.
Su Amazon statunitense, da quanto si vede a questo link, il risultato è stato molto apprezzato, dato che su 17 recensioni, ben 11 danno 5 stelle, 5 si limitano a 4 stelle, e la più bassa si ferma a 3 stelle.
In realtà, secondo me, si poteva realizzarlo meglio, e allo stato delle cose non direi che rappresenta un capolavoro.
Certo, l’autorevolezza dell’autore non si discute, ma è abbastanza deprimente leggere la notevole quantità di refusi ed errori (pur solo pochi gravi) presenti sia sulla pagina della O’Reilly sia su quella del sito dedicato al libro.
http://tsql.solidq.com/books/tsqlfund2008/
Tra l’altro, soprattutto nelle ultime pagine del libro, ne ho notati alcuni che nemmeno sono menzionati nelle errate.
Dato che io preferisco sempre, prima di iniziare a leggere un libro, mettermi lì con calma, matita alla mano, nella sistemazione delle eventuali errata, questo testo mi ha portato via molto tempo. Tempo che si poteva evitare con una maggiore cura realizzativa in fase di editing da parte della casa editrice.
La trattazione è tutta incentrata sul linguaggio. Non si troveranno quindi argomenti dedicati a SQL Server in quanto motore di database (ottimizzazioni, autenticazioni, gestione amministrativa, ecc. ecc.).
Il livello di approfondimento non è eccessivo. Diciamo che vengono affrontate le problematiche su cui ci si può imbattere l’80% delle volte nella propria vita di sviluppatore T-SQL.
Mancano trattazioni sui recenti e nuovi datatype (geometrico, geografico e gerarchico), come anche l’analisi di aspetti legati alle performance. Ci sono però paragrafi che trattano argomenti piuttosto avanzati e specifici, come possono esserlo le varie istruzioni di raggruppamento Pivot, Cube e Rollup.
Il capitolo dedicato alle transazioni (il 9, il penultimo) è molto valido e capace di chiarire dubbi o incertezze anche a chi già mastica il T-SQL da anni.
Stranamente non ci sono box o riquadri con approfondimenti vari (è uno dei rari libri di informatica che non ne abbia). Il discorso dell’autore, infatti, fluisce dall’inizio alla fine del capitolo senza distrazioni.
Fisicamente è un libro molto comodo da sfogliare. Sono meno di 400 pagine, la rilegatura è molto flessibile, la carta decisamente rugosa ma leggera (il libro infatti ha un basso peso specifico). È composto da 10 capitoli più un’unica appendice (chiamarla “A” forse è sovrabbondante) che spiega come installare la versione Enterprise o Developer di SQL Server 2008.
Di immagini praticamente non ce ne sono, e quelle poche sono gli screenshot di installazione del software presenti nell’appendice.
La lunghezza dei capitoli è molto varia: si passa dalle 20 pagine del capitolo 6 (operazioni di Set), alle 72 pagine del secondo capitolo (dedicato alla Select).
Alla fine di ogni capitolo ci sono una serie di esercizi da portare a termine, la cui soluzione è riportata solo qualche pagina dopo (molto comodo, effettivamente).
Il codice è chiaro è ben indentato, e anche se non si fa un uso massiccio di commenti annegati nel codice stesso, questo è spiegato con cura nel testo, per cui credo che nessun lettore farà troppa fatica a comprenderlo.
Questa è la pagina del sito O’Reilly relativa al testo:
http://oreilly.com/catalog/9780735626010/#toc
Meglio comunque rivolgersi direttamente al sito che l’autore stesso ha predisposto per i suoi libri, ovvero da questa pagina.
http://www.solidq.com/insidetsql/books/tsqlfund2008/
Il codice sorgente sono solo 150 kB ed è composto da 27 file di estensione .sql, di cui uno molto voluminoso (oltre 1 MB) per la creazione e il popolamento del database di prova (una versione “light” di AdventureWorks2008).
Ed è già bello vedere come lanciando questo file di script di oltre 1600 righe, viene portato a termine con successo, senza il minimo errore (cosa che non sempre accade nei file di script allegati ai libri).
Ho provato ad installarlo anche nell’ultimissima versione di SQL Server, la “Denali”, e non ho riscontrato problemi.
Qua sotto uno screenshot dalla mia installazione.
Gli script sql sono ben suddivisi per capitoli, come si può apprezzare da questa immagine.
Anche gli esercizi posti alla fine dei capitoli, come si vede, hanno i loro rispettivi file, sia per l’enunciato che per la soluzione.
Consiglio di partire prima da questa pagina delle Errata, in modo da “sistemare” il testo prima di iniziare a studiarlo.
http://www.solidq.com/insidetsql/books/tsqlfund2008/corrections.htm
oppure anche dalla medesima pagina sul sito della O’Reilly.
http://oreilly.com/catalog/errata.csp?isbn=9780735626010
Da quanto si legge sulla versione italiana di Amazon, aperta alla fine del mese scorso, la Mondadori Informatica renderà disponibile questo libro (al prezzo di 60 euro) in italiano da aprile del prossimo anno.
Chi preferisce leggere nella nostra lingua, può quindi aspettare qualche mese.
Sarebbe un peccato però se la Mondadori non introducesse, nella versione tradotta, tutte le errate segnalate fino a questo momento. Speriamo, invece, che sia così attenta e precisa da farlo.
Una curiosità irrisolta: la pinza raffigurata in copertina, ha il significato di attrezzo per “estrarre” i dati (ogni pinza che si rispetti estrae sempre qualcosa), oppure è finita lì per caso?
PRO
Autorevole trattazione delle basi del T-SQL 2008. Ottimo il capitolo dedicato alle transazioni e molto utili gli esercizi (con risposte) posti alla fine dei capitoli. Buona l’impaginazione e l’indentazione del codice.
CONTRO
Ritrovare in un libro di pur piccole dimensioni così tanti refusi (pur di piccola entità, almeno nella maggior parte dei casi), non è un buon biglietto da visita. Alcune frasi risultano di difficile (o strana) comprensione. Manca tutta la parte dei nuovi datatype introdotti con SQL Server 2008 e R2, come anche una disamina delle performance delle query. La notevole flessibilità della rilegatura, se da un lato lo rende comodo da consultare alla scrivania, nel caso di uso intenso del libro, può provocare il distacco di alcune pagine.
Voto complessivo: 7/10
Lettore: Principiante/Intermedio
Table of Contents
Acknowledgments
Introduction
1 – Cap. 1: Background to T-SQL Querying and Programming
25 – Cap. 2: Single-Table Queries
101 – Cap. 3: Joins
133 – Cap. 4: Subqueries
161 – Cap. 5: Table Expressions
193 – Cap. 6: Set Operations
213 – Cap. 7: Pivot, Unpivot, and Grouping Sets
237 – Cap. 8: Data Modification
279 – Cap. 9: Transactions and Concurrency
319 – Cap. 10: Programmable Objects
359 - Appendix A: Getting Started
379 - Index