Credo che questo sia l’unico libro in italiano, scritto da un autore italiano, su SQL Server 2008.
Onore al merito, quindi, sia all’autore, Mario De Ghetto (Microsoft MVP su VB.NET), sia alla casa editrice FAG, per aver portato avanti questo progetto sfidando le possibili previsioni negative delle indagini di mercato che danno scarso successo per questo argomento dominato da casa editrici anglosassoni.
L’autore riesce, inoltre, nella sottile arte di posizionarsi sulla linea di confine tra il non scadere troppo nel banale (cosa comunque ardua: SQL Server si presta poco ad essere “banalizzato”), sia nello scendere troppo nei dettagli tecnici (cosa che avrebbe aggiunto un zero al numero di pagine del libro).
Le oltre 300 pagine di questo manuale si rivolgono principalmente a chi ha poca e scarsa conoscenza di SQL Server, come anche a chi, avendo lavorato con Access per un discreto periodo, voglia passare al “fratello maggiore” imparandone le basi e qualcosina di più.
Lo riterrei anche adatto a chi conosce già abbastanza bene l’argomento: ogni tanto, infatti, si possono scoprire dettagli e curiosità di cui non si era a conoscenza. Il fatto poi di essere in italiano, ammettiamolo candidamente, aiuta sempre un po’, perlomeno nella velocità con cui si procede nella lettura.
L’orientamento della trattazione è decisamente “pro-sviluppatori”, piuttosto che per amministratori di database, meglio tenerlo a mente.
Ma vediamo cosa contiene, seguendone il flusso dei capitoli, e commentando cosa personalmente mi è piaciuto di più e cosa di meno.
Nel primo lungo capitolo vengono descritte le versioni disponibili di SQL Server e si riportano una serie di link utili per approfondire l’argomento (MSDN, TechNet, community UGISS, ecc.). Si segue poi, passo per passo, l’installazione e configurazione della versione in italiano di “SQL Server 2008 Express with Advanced Services”, la versione gratuita e liberamente scaricabile su cui ci si baserà nel proseguo del libro.
Nella parte finale del capitolo, per fortuna, si analizza anche l’installazione della versione maggiore, la “Enterprise”, mostrando che differenze (in più) ci sono con la versione Express installata in precedenza.
Le immagini proposte sono tante e ben definite: purtroppo, nelle ultime di esse, si verifica un disallineamento con le didascalie, che non riportano quanto mostrato in realtà nell’immagine stessa. Su questo problema si potrebbe soprassedere se il lettore è già un minimo esperto e ha avuto esperienza almeno con una installazione precedente, ma potrebbe disorientare il lettore principiante dato che non ci capirebbe più niente tra quanto scritto nel testo e quanto mostrato dalle immagini.
Presupponendo che il lettore “ideale” rientri in quest’ultima categoria, ritengo che una maggiore attenzione in fase di “assemblaggio” di questo capitolo non avrebbe guastato.
Un altro piccolo appunto che mi permetterei di consigliare è di non riportare i vari link a fonti Microsoft o altro in formato esteso: spesso infatti si obbliga il lettore a digitarsi Url chilometrici. Meglio “tradurli” con TinyUrl o Snurl, in modo da renderli molto più brevi e gestibili (magari si può sempre lasciare il link esteso, per la curiosità di vedere a quale dominio appartiene).
Si prosegue poi con l’analisi delle novità introdotte in questa versione 2008. Questo capitolo – il terzo – pur essendo completo (benchè sintetico) e dettagliato, credo sarà poco comprensibile per un lettore novizio, dato che introduce dei termini non banali senza preventivamente spiegarli. Utile per chi invece conosce già SQL Server, dato che si fa un bel ripasso delle nuove feature. Chi parte da zero, o quasi, può passare subito al lungo capitolo 4 dedicato a SSMS, ovvero il Management Studio, con spiegazioni sulla creazione di database e tabelle.
La versione SQL Server utilizzata dall’autore è la Enterprise RTM in italiano. Il suo numero di versione, come si vede infatti dalle immagini, è 10.0.1600 che, se ben ricorso, era quello prima della versione definitiva (dopo il SP1 diventerà 10.0.2531, come nel mio pc). Il sistema operativo da cui trae le schermate per il libro è invece Windows Vista Ultimate a 64 bit, anch’esso in italiano.
Come si avrà modo di notare, tutte le immagini sono estremamente chiare, definite e della grandezza necessaria per apprezzare i particolari che si stanno discutendo (quindi piccole quando basta una vista d’insieme, e più grandi quando serve).
Piccolo errorino a pag. 104, in cui si consiglia di dare nomi significativi alle tabelle. L’esempio mostrato è descritto come “camel case”, ma in realtà è “Pascal Case”, dato che anche la prima lettera della parola composta è scritta in maiuscolo.
Inframmezzate al discorso di tutti i capitoli ci sono delle brevi note con sfondo grigio. Consiglio di non saltarle, dato che sono molto interessanti ed utili per completare l’argomento trattato e togliersi qualche curiosità.
Si prosegue poi analizzando i vari tipi di dati consentiti ed utilizzati in SQL Server: argomento spesso sottovalutato ma necessario. Il capitolo – il quinto – che li spiega è piuttosto approfondito e chiaro, e molto utili risultano le spiegazioni per i nuovi tipi di dato gerarchico, spaziale e geometrico.
Il capitolo 6 inizia riportando una cosa che non avevo mai visto prima in altri libri su SQL Server (perlomeno quelli letti da me): le 13 regole di Codd (pubblicate nel 1985) che sono alla base della teoria relazionale dei database. Onore a De Ghetto per averci pensato ed averle riportate.
Si parla poi di relazioni (ovviamente, data la premessa) e degli indici, argomento decisamente importante e sui cui l’autore si sofferma non poco.
Nei capitoli 7-8-9, per quasi un centinaio di pagine, ci si concentra sul T-SQL, argomento basilare del libro. All’inizio si parla di viste e query, con un’utile digressione sulle viste di sistema, di cui è sempre utile averne coscienza della loro esistenza ed utilità.
Poi si inizia con il “puro” T-SQL, dando la precedenza (aspetto abbastanza originale) al suo uso per la creazione e modifica di oggetti (database, tabelle, viste, indici). La tecnica didattica utilizzato dall’autore è di mostrare la sintassi delle varie istruzioni (come da BOL), e mostrare una serie di esempi commentati in cui si mette in pratica l’istruzione o il compito in oggetto. In questi capitoli le figure sono pochissime, dato che ci si concentra maggiormente sugli esempi di codice scritti a mano.
È necessario fare attenzione ai commenti di alcuni script: ho notato, ad esempio, che quelli delle pagine 225 e 226, dedicati alla gestione dei permessi, non sono corretti (probabilmente sono stati copia&incollati dagli esempi precedenti senza poi però cambiare il verbo della frase).
Nelle 30 pagine del capitolo 9, infine, ci si dedica finalmente alle istruzioni DML (Data Manipulation Language), ovvero le Select/Insert/Update/Delete.
La trattazione non è troppo banale, ma mancano le citazioni ad alcune delle recenti estensioni più interessanti, come, ad esempio, la clausola “Merge”.
Come base dati di appoggio si fa riferimento ad ipotetiche tabelle “Regioni” e “Provincie”, non presenti in nessun database reale. Ciò, alla fine, non costituisce un grave problema, dato il discorso rimane comunque ben comprensibile.
Nota importante: tutti gli esempi di codice presentati in questi capitoli non sono inseriti nel file di codice scaricabile dal sito dell’autore. Quindi, per chi è interessato ad usarli, meglio che si tenga il libro a portata di mano (o richieda alla FAG la copia in formato Pdf).
Il lungo capitolo 10 (37 pagine) affronta l’argomento principe di questo libro che, ricordiamolo, è particolarmente dedicato a chi utilizza SQL Server 2008 come sviluppatore (piuttosto che come sistemista), ovvero le stored procedure.
I principianti, nella lettura di questo capitolo, penso che necessiteranno di avere i Books Online a portata di mano. Ogni tanto, infatti, vengono introdotte negli esempi delle istruzioni che non sono state spiegate precedentemente. Mi riferisco, ad esempio, alle speciali tabelle “Inserted/Deleted” nello script di pagina 261, che un principiante (e forse anche un lettore con conoscenze medie) potrebbe non conoscere.
Tra l’altro, lo script riportato in questa pagina nemmeno compila, in quanto non è corretto (nella variabile tabella si tenta di inserire una colonna in più, e nel codice c’è qualche virgola di troppo).
Dopo i primi semplici esempi di script, l’autore crea stored procedure utilizzando il CLR e VB.NET come linguaggio. Questo può lasciare un attimo disorientati i lettori che si aspetterebbero stored procedure basate unicamente sul T-SQL, come si è sempre fatto, da che mondo è mondo, lasciando magari l’utilizzo del runtime .NET ad argomenti più avanzati o a qualche nota a margine.
Chiuso anzitempo il discorso stored procedure, l’autore spiega cosa sono e come si utilizzano le funzioni definite dall’utente (le UDF), altro argomento piuttosto importante, ma anche qua, subito dopo pochi semplici esempi, passa a crearle utilizzando VB.NET.
Nelle 40 pagine dell’undicesimo ed ultimo capitolo si apre Visual Studio 2008 ed, utilizzando VB.NET, si creano semplici applicazioni Win Forms che lavorano su database e interagiscono coi dati. Utilizzando una GridView si leggono, si aggiornano e si cancellano dati in forma tabellare, sia utilizzando ADO.NET, sia query SQL cablate nel codice, sia stored procedure. Anche qua le immagini non mancano, e il fatto che siano numerose e sufficientemente grandi, permette di usufruire proficuamente del capitolo anche senza l’effettivo utilizzo di Visual Studio (comunque sempre raccomandato se si vogliono fissare bene i concetti in memoria).
Dato lo scopo del libro – che è quello di concentrarsi su SQL Server in quanto DBMS – non vengono trattate le ultime innovazioni per la gestione dei dati da codice, come LINQ e Entity Framework.
Chiude il libro un sintetico indice analitico. Non ci sono esercizi da eseguire o completare, e nemmeno domande a quiz di riepilogo, come ogni tanto si incontrano in altri testi simili.
Finalmente l’impaginazione della FAG ha fatto passi in avanti. Ora, in cima alle pagine dispari, è riportato il capitolo di appartenenza, e anche il layout complessivo è più curato. La rilegatura purtroppo rimane sempre molto rigida, quasi ai limiti dell’usabilità (impossibile tenerlo aperto sulla scrivania senza inchiodare in qualche modo le pagine). Anche il tipo di font utilizzato lo cambierei, ma qua entrano in gioco gusti personali.
Questa è la pagina del sito della FAG dedicata al libro, mentre cliccando sulla voce “booksite” si viene rimandati al blog dell’autore
purtroppo, partendo dal blog, non è facile rintracciare il materiale scaricabile necessario per il libro.
Bisogna navigare tra tutti i suoi post per trovare quello in cui annuncia l’uscita del libro, questo, dove riporta i link per scaricare il materiale.
di cui, tra l’altro, tutto il capitolo 11.
C’è anche un link per scaricarsi vari database di esempio.
riporto qua sotto l’immagine del mio SQL Server dopo averli “attachati”.
Sono tutti piuttosto piccoli, circa 3 MB ciascuno, ma vanne bene per fare le prove.
Il codice scaricabile è composto unicamente dai progetti Visual Studio 2008 creati negli ultimi due capitoli.
Il non trovare gli esempi di codice proposti potrebbe deludere alcuni lettori, ansiosi di “copia&incollare” tali esempi per provarli al volo o utilizzarli tali e quali nelle proprie applicazioni. Personalmente credo però che questo non sia un difetto. In primo luogo tali script T-SQL sono sufficientemente brevi da poter essere riscritti senza pena ferire. In secondo luogo il fatto di riscriverseli a mano aumenta la comprensione e l’assimilazione.
PRO
L’utilità di questo libro si può applicare sia a chi necessita di imparare le basi di SQL Server, sia a chi, magari più esperto, necessita di un buon ripasso delle caratteristiche principali di questo database.
Ottime le immagini, sia come numerosità che come definizione. Linguaggio informale e zero refusi nel testo.
CONTRO
Qualche problema nelle didascalie delle immagini nel primo capitolo e in un esempio di codice.
Rilegatura troppo rigida per essere definita comoda.
Voto complessivo: 7/10
Lettore: Principiante/Intermedio
Sommario
11 – Introduzione
17 – Cap. 1: Primo contatto
49 – Cap. 2: Architettura di SQL Server 2008
63 – Cap. 3: Le novità
77 – Cap. 4: SQL Server Management Studio
111 – Cap. 5: Tipi di dati
135 – Cap. 6: Indici e relazioni
169 – Cap. 7: Viste e query
187 – Cap. 8: Linguaggio T-SQL: DDL e DCL
227 – Cap. 9: Linguaggio T-SQL: DML
259 – Cap. 10: Stored procedure
297 – Cap. 11: SQL Server e Visual Basic
339 – Indice analitico
Titolo: SQL Server 2008 Guida all’uso
Autore: Mario De Ghetto
Editore: FAG
ISBN: 9788882338008
Pagine: 352
Prezzo: 35 €
Data di uscita: Set. 2009