Alcune volte mi domando come mai un libro, potenzialmente ben fatto e completo, sia in un certo senso rovinato dalla fretta di mandarlo alle stampe, mettendo come immagini degli screenshot presi dalle versioni Beta dei programmi, che poi, come sempre accade, non corrispondono alla versione finale del prodotto (questo testo si basa infatti sulla CTP – Community Technology Preview – di SQL Server 2005). Questo si verifica in questo, pur ottimo, testo, dove alcune immagini non trovano riscontro nella realtà, e possono lasciare i lettori, specie i meno esperti, nel dubbio se stanno facendo le cose corrette o meno (mi riferisco in particolare alla creazione di stored procedure e trigger, e alla gestione delle mail). A parte questo inconveniente, il testo è valido, ben fatto, completo, scritto bene, con pochissimi errori e fornisce una panoramica amplissima su tutte le funzionalità di SQL Server 2005.
La prima parte (4 capitoli) fornisce una più che vasta introduzione all’ambiente e a tutte le caratteristiche di SQL Server 2005, e, nel quarto capitolo, viene anche affrontata la teoria della normalizzazione dei database. In questa parte il codice è poco, mentre le spiegazioni teoriche abbondano.
La seconda (ancora 4 capitoli) è dedicata, giustamente, alle basi del T-SQL, fornendo al lettore una formazione, direi intermedia, sul linguaggio. A differenza di altri libri sul medesimo argomento che mi è capitato di leggere, in questo testo il codice e gli esempi sono in netto minor numero rispetto alla parte scritta. Gli (o il) scrittori si dilungano, forse un po’ troppo, nello spiegare a parole ogni singolo dettaglio, quando magari un pezzetto di codice di esempio in più non avrebbe guastato.
Gli argomenti trattati sono quelli classici: Select/Insert/Update/Delete in tutte le loro varie sfumature, non disdegnando qualche nuova funzionalità (la paginazione dei resultset ad esempio). Ovviamente, data la natura omnicomprensiva del libro, non viene trattato il T-SQL nella sua globalità, e per chi fosse interessato ad approfondire maggiormente questo argomento, consiglio di rivolgersi ad altri testi (o ai Books Online).
La lunga parte terza (7 capitoli) entra nel vivo di SQL Server, affrontando in ogni capitolo un argomento specifico, dalle tabelle alle viste, dai trigger alle stored procedure, anticipando il tutto con un lungo capitolo dedicato espressamente al Management Studio, il nuovo ambiente che rimpiazza l’accoppiata Enterprise Manager + Query Analyzer (tra l’altro quest’ultimo appare ogni tanto nello scritto, svista o errore non si sa).
Anche in questa parte si notano delle incoerenze tra quanto presente nella versione CTP (utilizzata nel testo) e la versione finale di SQL Server 2005. Ad esempio non si troverà il SQLiMail (pag. 489) ma il Database Mail. Appunto per questi motivi consiglio di leggere/studiare il testo tenendo sotto mano un pc per effettuare delle prove (capisco che la lettura, in questo modo, procederà più a rilento, ma è meglio sapere meno cose corrette, che tante sbagliate, col rischio poi di ritrovarsi sul lavoro a cercare una funzionalità che non esiste).
Questa è la parte che personalmente avrei rivisto. Troppi argomenti vengono diluiti in un’infinità di pagine di spiegazioni, senza contare le ripetizioni di concetti già affrontati nei capitoli precedenti, e dando maggiore risalto e importanza ad argomenti “clou”, come possono esserlo le stored procedure. Le informazioni fornite sono comunque parecchie, e ne fanno la parte più consistente del testo. La parte quarta è dedicata invece agli amministratori di database (finora la trattazione era più “sviluppatori side”), con argomenti classici, quali il backup/restore, la gestione degli indici, la creazione di job e tutte le problematiche relative alla sicurezza e alle autorizzazioni. Per chi si vuole fermare ad un livello puro database-centrico, direi che si potrebbe fermare qua. Da pag. 569 fino alla fine (pag. 951) gli argomenti trattati sono perlopiù avanzati o dedicati a tecnologie correlate in qualche modo a SQL Server. Mi riferisco in particolare agli Integration Services, ai Reporting Services, agli Analysis Services e al Service Broker. Non manca anche l’integrazione con il .NET Framework e un lunghissimo capitolo dedicato alla Replica. Le parti 5 e 6 (in tutto 11 capitoli) li considererei quindi da studiare “al bisogno”, quando se ne presenta la necessità. Sono inoltre parti ben fatte e discretamente approfondite. La parte sul Reporting, ad esempio, l’ho trovata proprio completa, a differenza di altri testi dove viene liquidata con il Wizard di creazione dei report.
L’ultimo capitolo, il 30esimo, è particolare; è dedicato infatti a diversi problemi che si possono incontrare nell’uso quotidiano di SQL Server, e consiglio di non saltarlo, qualsiasi sia lo scopo per cui si legge questo testo. Conclude il denso libro una breve, e sostanzialmente inutile, appendice sulla sintassi delle principali istruzioni T-SQL.
Devo ammettere anche che raramente un libro mi ha impegnato così tanto tempo per leggerlo come questo. Sia per la lingua – leggendo in inglese si procede comunque più lentamente che leggendo in italiano – sia per l’enorme mole di materiale presentato, tra l’altro scritto con un formato molto piccolo. Ammetto anche che qualche pagina l’ho saltata, altre però le ho lette più volte, e sommando il tutto direi che 2 mesi abbondanti – con letture quotidiane – sono necessari per “farsi propria” questa bibbia su SQL Server 2005. Mi rendo però conto ora che, a meno di non essere completamente digiuni della materia, questo libro può essere utilizzato come riferimento nei casi di bisogno, scegliendosi il capitolo adatto alle proprie immediate necessità, senza doverlo affrontare dall’inizio alla fine. In questo modo, forse, si evita anche di incorrere nelle numerose ripetizioni che spesso mi è capitato di incontrare nella lettura. Giusto per fare un esempio, i tipi di dati (con le loro caratteristiche) sono spiegati sia nella parte introduttiva, sia nelle basi del linguaggio T-SQL, e sia anche nel capitolo dedicato alla tabelle. Magari una maggiore attenzione a questi aspetti avrebbe reso il libro meno “massiccio” e ne avrebbe agevolato la fruibilità.
Il database utilizzato negli esempi è il consueto AdventureWorks, che ha preso il posto del glorioso Northwind nella stragrande maggioranza dei testi dedicati alla nuova versione di SQL Server. Le immagini sono in numero adeguato all’argomento trattato; scontano però una certa piccolezza che spesso rendono difficile discernere i particolari. Piccolezza che è ben adatta invece al tipo di carattere utilizzato, che consente di stipare in una sola pagina una certa mole di informazioni (e che comunque rende più facile la lettura).
L’inglese utilizzato dagli autori è scorrevole e chiaro, anche se, date le numerose pagine divulgative, è facile incontrare prima o poi qualche parola non di uso comune. Di refusi ne ho trovati davvero pochi, e considerando la quantità di parole presenti in questo testo, è un risultato eccellente.
Alla pagina http://www.sybex.com/WileyCDA/SybexTitle/productCd-0782143806,navId-290546.html è presente la scheda del libro, con la possibilità di scaricare, in formato Pdf, il sommario, l’indice analitico e il primo capitolo. Nella stessa pagina del sito della Sybex non è presente del codice scaricabile, ma considerando l’esigua quantità di esempi in confronto alla mole del libro, non se ne se sente alla fin fine la necessità.
Pro
Libro davvero completo ed omnicomprensivo, ricco di spiegazioni, graduale e didatticamente valido. La scelta di un tipo di carattere piccolo consente di “stipare”, pur nella sua massiccia mole, una gran quantità di informazioni. Per chi affronta SQL Server 2005, sia dal punto di vista dello sviluppatore, che del puro amministratore, questo il libro è il riferimento. Vaste le parti dedicate ai Report e agli Analysis Services. Ottima la rilegatura flessibile, che consente di tenerlo aperto sulla scrivania anche nelle pagine mediane.
Contro
I principali aspetti negativi del testo sono riconducibili al fatto che si basa su una versione di SQL Server 2005 non esattamente uguale a quella finale – e quindi con immagini e funzionalità che non sempre si ritrovano – e ad una certa prolissità degli autori, che si dilungano eccessivamente nelle spiegazioni, quando magari un calibrato esempio in più avrebbe reso la trattazione più comprensibile ed assimilabile.
Un po’ carente la parte dedicata al puro T-SQL e alle stored procedure. Non è presente una versione in formato elettronico del libro, cosicché se lo si vuole portare appresso (per leggerlo in treno ad esempio) ci si deve sobbarcare un bel pesetto.
Voto complessivo: 9/10
Livello: Principiante/Intermedio
Sommario
Introduction
Part 1 • Introducing SQL Server
Chapter 1: Introduction to SQL Server 2005
Chapter 2: Overview of Database Concepts.
Chapter 3: Overview of SQL Server
Chapter 4: Database Design and Normalization
Part 2 • Transact-SQL
Chapter 5: Transact-SQL Overview and Basics
Chapter 6: SELECT Queries
Chapter 7: Action Queries
Chapter 8: Topics in Advanced Transact-SQL
Part 3 • Digging into SQL Server
Chapter 9: Using SQL Server Management Studio
Chapter 10: Databases
Chapter 11: Tables
Chapter 12: Indexing
Chapter 13: Views
Chapter 14: Stored Procedures
Chapter 15: Using Triggers
Part 4 • Administering SQL Server
Chapter 16: Basic Administrative Tasks
Chapter 17: Automating Administration
Chapter 18: Security and SQL Server 2005
Part 5 • Development with SQL Server
Chapter 19: Integrating SQL Server with Microsoft .NET
Chapter 20: ADO.NET and SQL Server.
Chapter 21: SMO and RMO Programming.
Chapter 22: Integration Services
Part 6 • Advanced Topics
Chapter 23: Locking
Chapter 24: Monitoring and Optimizing SQL Server 2005
Chapter 25: Replication
Chapter 26: Analysis Services
Chapter 27: Notification Services
Chapter 28: Reporting Services
Chapter 29: Service Broker
Chapter 30: Troubleshooting
Appendix • Transact-SQL Reference
Index.
Titolo: Mastering Microsoft SQL Server 2005
Autori: Mike Gunderloy, Joseph L. Jorden, David W. Tschanz
Pagine: 1056
ISBN: 0-7821-4380-6
Editore: Sybex
Prezzo: 37,79 € (su Amazon)
Data di uscita: Mar. 2006