Malgrado SQL Server 2005 sia stato rilasciato ormai da quasi un anno (novembre 2005), i libri in lingua italiana su questo argomento si possono contare sulle dita di una sola mano, e soprattutto non si distinguono certamente per l’eccelsa qualità (vedi le recensioni precedenti su questo sito).
Mi sono chiesto allora quale libro potevo acquistare, in lingua inglese, per approfondire le mie conoscenze sulla nuova versione del database di casa Microsoft.
Le qualità che cercavo erano innanzitutto quattro: 1 – Che trattasse l’argomento partendo da una base non troppo avanzata ma nemmeno troppo banale (una via di mezzo tra principianti ed utenti avanzati). 2 – Che comprendesse, pur se trattati in maniera non approfonditissima, argomento di “contorno”, dai Reporting Services agli Integration Services. 3 – Che fosse di una casa editrice qualitativamente riconosciuta. 4 – Che trattasse l’argomento da un punto di vista più da “sviluppatore” che da “DBA” (o sistemistica).
La mia scelta è allora caduta su questo testo di Robert Vieira della Wrox, una casa famosa per l’ottima impaginazione dei testi, oltre che per la qualità del contenuto, che al modico prezzo di poco più di 30 euro (anche meno se si ha fortuna col cambio), fornisce un introduttivo, ma pur esaustivo, testo sugli aspetti di programmazione e gestione di SQL Server 2005. Ora che lo ho letto tutto posso affermare di aver avuto fortuna nella scelta, pur con la sorpresa di notare che il linguaggio utilizzato dall’autore, ricco di slang e frasi tratte dall’americano colloquiale, non è immediatamente comprensibile a chi non mastica più che bene l’inglese.
Ma a parte questo, la qualità del contenuto è ottima, pur trattandosi di un libro basato sulla versione beta del programma, tanto che alcune immagini presenti nel testo non sono esattamente uguali a quelle che ci si aspetta prendendo pratica con gli esempi di codice.
La forza di questo testo, almeno dal mio punto di vista, è di non trattare gli aspetti più sistemistica di SQL Server (dall’installazione alla manutenzione), ma di sviscerare principalmente gli aspetti legati allo sviluppo, cioè di chi crea applicazioni basate sul database Microsoft. Come si può quindi intuire, gran parte del testo è dedicata al Transact-SQL, che sfocia nel 12esimo capitolo dedicato alle stored procedure, espressione massima dello sviluppo in questo linguaggio. Ovviamente la trattazione inizia gradualmente, partendo dalle basi su come si crea un database normalizzato e proseguendo con i principi basilari delle query, dalla Select alle Join, dagli indici alle constraints. L’autore (quando si riesce ad afferrare bene il suo modo di esprimersi) utilizza un linguaggio molto informale, ricco di interessantissimi spunti tratti dalla sua esperienza personale (parti scritte in corsivo) – le best practices -, e arricchisce il testo con esempi ben fatti e, cosa molto importante, tutti perfettamente funzionanti (non ho trovato una sola riga di codice sbagliata in tutto il testo). Come da consuetudine Wrox, negli esempi che vengono man mano portati avanti nel discorso, le parti nuove o modificate hanno uno sfondo grigio, in modo da facilitarne la lettura e la comprensione (e in effetti ciò aiuta realmente). Molto utili gli esempi riportanti più frequenti errori che possono capitare nelle normali attività di sviluppo (in quasi tutti mi sono ritrovato anche io).
Non ho avuto modo di avere tra le mani il precedente, analogo, testo su SQL Server 2000 dello stesso autore, ma sospetto che alcune parti siano state, diciamo, “riciclate”, in quanto ogni tanto qua e là ho trovato riferimenti al vecchio Query Analyzer, presente nella vecchia versione di SQL Server ma ora rimpiazzato dal Management Studio. Ciò comunque non disturba la lettura.
Essendo inoltre scritto da un solo autore (evento abbastanza raro nei libri della Wrox), la trattazione segue un eccellente filo logico, e solo in rarissimi casi si fa riferimento a concetti non ancora spiegati (e che comunque vengono segnalati dall’autore). Non solo, ma è anche ottima la giusta miscela tra teoria, sempre necessaria, ed esempi pratici (ottimo il capitolo 8 sul design e la normalizzazione del database, dove la teoria viene portata avanti passo passo con l’esempio).
Due brevi capitoli (giusto un infarinatura) sono dedicati ai Reporting Services e agli Integration Services (i vecchi DTS). Capitoli sufficienti per farsi un’idea, ma che andranno poi completati con altri testi dedicati (la Wrox ne ha a catalogo, ad esempio). Molto più che un’infarinatura è invece il capitolo dedicato alla gestione dei tipi di dati in XML, uno dei punti di forza della nuova versione di SQL Server.
Per terminare un capitoletto giusto con le necessarie attività amministrative, dai Job ai backup, necessarie anche per chi non è DBA e si dedica solo allo sviluppo.
Le appendici ricoprono un ruolo molto importante in questo testo (e non solo perché impiegano quasi 100 pagine); oltre alle soluzioni dei (pochi) esercizi presenti alla fine di ogni capitolo, è presente un lunghissimo capitolo su tutte le variabili di sistema e le funzioni di SQL Server, che ritornano molto utili in parecchi casi (peccato però non siano presenti esempi sul loro utilizzo, ma temo che in tal caso la lunghezza del capitolo sarebbe esplosa). Ringrazio anche l’autore per non aver infarcito il suo testo con tabelle e schemi copiati e incollati dall’MSDN (come purtroppo mi è capitato di vedere in un libro italiano sullo stesso argomento).
La rilegatura del testo è sufficientemente flessibile in modo da tenerlo aperto sulla scrivania anche nelle pagine centrali, e questo l’ho apprezzato molto.
A novembre è prevista l’uscita del naturale proseguimento di questo testo, “Professional SQL Server 2005 programming”, sempre dello stesso autore, ove in un numero quasi doppio di pagine è contenuto pressoché tutto lo scibile necessario (e trattato approfonditamente) per chi si occupa di programmazione su SS2005.
Alla pagina http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0764584332,descCd-tableOfContents.html è presente la scheda completa del libro, compreso il primo capitolo (scaricabile e stampabile), il sommario e alcune parti significative (stranamente non tutto) del codice presente nel testo (6 kb). In particolare è presente in formato Word (3 pagine) una parte del paragrafo Try/Catch che è stata saltata a pagina 378, e che quindi costituisce una indispensabile aggiunta. Consiglio di dare un’occhiata al sito della Wrox; io mi sono scaricato e stampato tutti i primi capitoli di parecchi libri su SQL Server 2005 e .NET in generale, e tutto a gratis.
Inoltre alla pagina http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764584332,descCd-view_errata.html sono presenti 3 piccole errata da correggere nel testo.
Pro
Il più evidente lato positivo del testo è di rendere il lettore “realmente” in grado di costruirsi il suo database rispettando i migliori dettami sul perfetto design, di svilupparsi ottime stored procedure e batch, e di ottimizzare il tutto con la sapiente scelta di legami, indici e tipo di dati. È un libro molto orientato al saper fare, ricco di ottimi e collaudati consigli, con la giusta presenza di immagini e con codice perfettamente funzionante e ben impostato. L’autore non impone il “fare così perché va fatto così”, ma il “va fatto così perché è meglio farlo così”, e questo non sempre si ritrova in libri sullo stesso argomento.
Tutti gli aspetti non necessari per chi si occupa di sviluppo, più che di amministrazione, vengono ovviamente tralasciati, dando spazio ad altri utili argomenti. Il prezzo è competitivo e l’impaginazione della Wrox è (come al solito) eccellente.
Contro
Pochi gli appunti che si possono fare a questo testo. Innanzitutto è poco adatto a chi non mastica più che bene l’inglese, dato che l’autore utilizza un linguaggio ricco di espressioni gergali e colloquiali. Inoltre di non fare troppo affidamento sulle immagini presentate, dato che nella versione finale di SQL Server 2005 sono leggermente cambiate. Infine di essere dotato di una copertina costituta da un cartoncino sottile e leggero, che si altera facilmente dopo un breve periodo di uso “intensivo”.
Voto complessivo: 9/10
Livello: Principiante/Intermedio
Sommario
Introduction.
Chapter 1: RDBMS Basics: What Makes Up a SQL Server Database?
Chapter 2: Tools of the Trade.
Chapter 3: The Foundation Statements of T-SQL.
Chapter 4: JOINs.
Chapter 5: Creating and Altering Tables.
Chapter 6: Constraints.
Chapter 7: Adding More to Our Queries.
Chapter 8: Being Normal: Normalization and Other Basic Design Issues.
Chapter 9: SQL Server Storage and Index Structures.
Chapter 10: Views.
Chapter 11: Writing Scripts and Batches.
Chapter 12: Stored Procedures.
Chapter 13: User Defined Functions.
Chapter 14: Transactions and Locks.
Chapter 15: Triggers.
Chapter 16: A Brief XML Primer.
Chapter 17: Reporting for Duty, Sir!: A Look At Reporting Services.
Chapter 18: Getting Integrated With Integration Services.
Chapter 19: Playing Administrator.
Appendix A: Exercise Solutions.
Appendix B: System Functions.
Appendix C: Finding the Right Tool.
Appendix D: Very Simple Connectivity Examples.
Appendix E: Installing and Using the Samples.
Index.