subscribe: Posts | Comments

Ma SQL Server è ancora di moda?

2 comments
Ma SQL Server è ancora di moda?

E’ da quando all’orizzonte c’è il cloud, l’applicazione è mobile e Javascript, per discrezione, lo si preferisce Unobtrusive, che le cose gli sviluppatori sembrano non farle più alla missionaria e cioè col metodo tradizionale. C’è ormai quasi una gara alla rottamazione del vecchio. Neppure i database sembrano esserne esenti. Ma stanno davvero così le cose?

 

Non passare il tempo con qualcuno che non sia disposto a passarlo con te.

Gabriel García Márquez

 

Microsoft SQL Server è il sistema di database relazionale (RDBMS) prodotto e sviluppato da Microsoft. Affonda le sue origini nel prodotto Sybase SQL Server 3 per Unix, da cui però si è fortemente evoluto e differenziato a partire dalla versione 7, che di fatto rappresenta una vera e propria riscrittura del code base. L’obiettivo originario, agli inizi degli anni 90, era quello di sviluppare una versione del prodotto per il sistema operativo OS/2. Tuttavia questa decisione è stata quasi da subito disattesa, seguendo la più generale strategia di uscita adottata da Microsoft nei confronti di OS/2, a favore del suo Windows NT. Nel 1994 la collaborazione con Sybase non viene rinnovata e da allora SQL Server subisce un fork di codice notevole. SQL Server 2012 è il nome commerciale dell’ultima versione del prodotto RDBMS di Microsoft e durante tutta la sua fase di sviluppo ha mantenuto il nome in codice Denali, l’ennesimo Parco Nazionale, come da tradizione nei code name del prodotto. Come tutti i prodotti Microsoft, SQL Server gira solo su piattaforma Windows, questo consente al prodotto di trarre il massimo dalla  piattaforma S.O. su cui si basa, permettendo una politica di fortissima integrazione (dal file system, alla gestione della sicurezza e all’uso ottimizzato delle API di sistema), proprio perché non ha velleità di prodotto multipiattaforma.

Inoltre gli consente di mantenere il look & feel dei tipici prodotti su piattaforma Windows oltre ad offrire una facilità di installazione che non ha pari nelle versioni per Windows di altri prodotti multipiattaforma. Ma probabilmente il maggior vantaggio rispetto ad altri prodotto concepiti su piattaforma Unix (praticamente tutti gli altri) è la scalabilità: ci sono versioni di SQL Server, come la Express, che girano su portatili non particolarmente dotati e, dall’altra parte, ci sono versioni come la Enterprise che girano su potenti server in cluster. Con Windows come unico collante.

Insomma, dopo questo lungo pistolotto autocitativo, l’avrete capito: SQL Server mi piace. Ma non dispregio affatto Oracle, ho usato a suo tempo con soddisfazione DB/2 e amo la versatilità di miracoli nani della tecnologia come SQLite, che gira dappertutto e bene. Ma davvero dappertutto, ma soprattutto bene! E c’è ancora nel mio cuoricino un posto tutto speciale per quella orribile cosa informe che è stata Access col suo JetEngine. Dunque mi piacciono i database, mi piace l’arguzia del linguaggio SQL e pur adorando gli ORM, non credo sia peccato mortale sporcarsi le mani col database anche in presenza di domain model entity oriented.NoSQL

Ma da un po’ c’è un nuovo vecchio all’orizzonte: nuovo perché ha un nome nuovo e un rinvigorirsi della moda di usarlo, vecchio perché esiste da sempre, da prima dei db SQL, ma senza la connotazione antitetica nel nome, cosa che l’avrebbe reso una specie di Oracolo di Delphi: sto parlando dell’approccio NoSQL. Volendo vergognosamente plagiare il lemma in Wikipedia Italia, NoSQL è un movimento che promuove sistemi software persistenza dei dati caratterizzati dal fatto di non utilizzare il modello relazionale, tipicamente usato dai database tradizionali (RDBMS). L’espressione NoSQL fa riferimento al linguaggio SQL, che è il più comune linguaggio di interrogazione dei dati nei database relazionali, qui preso a simbolo dell’intero paradigma relazionale. Questi archivi di dati tipicamente non richiedono uno schema fisso (schemaless), evitano spesso le operazioni di unione (join) e puntano a scalare orizzontalmente. Gli accademici e gli articoli si riferiscono a queste basi di dati come memorizzazione strutturata (structured storage).

Insomma hanno l’incredibile vantaggio della scalabilità, ottima per il cloud, dove gli RDBMS sono sempre stati il collo di bottiglia più grande, perché poco scalabili by design, di sicuro estremamente economici, perfetti per gli ORM, dato che non soffrono dell’annoso problema del Impedance Mismatch.

Dunque va tutto bene? Possiamo immolare l’agnello sacrificale dalle mille join? Non direi proprio. I database relazionali sono robusti, consistenti, precisi, donano capacità autovalidanti e salvifiche ai vostri dati, praticamente aggratis, anche per applicazioni povere di design.

Dunque tutto va male e dobbiamo continuare ad usare sempre gli RDBMS, ostinandoci ottusamente anche in contesti dove non sono adatti o dove non sono i più adatti, giusto per dare suffragio alle critiche dei detrattori sulla loro inappropriatezza?

Come sempre è un mondo difficile, sempre di più. E allora che fare? Una volta Bill Gates, buonanima (informaticamente parlando, s’intende), affermò che se il nostro solo strumento è un martello, ogni problema assomiglierà ad un chiodo da battere. Nonostante la grossolanità dell’attrezzo in questione (tool per i nerd che ci leggono), si tratta di una acutissima verità: non esiste un solo modo per fare una cosa e, cosa ancora più terribile, non esiste un solo modo per fare tutte le cose, ma va scelto lo strumento giusto, di volta in volta.

Al primo che commenta con un graziealcaso!, una statuetta commemorativa del giorno dell’ovvietà. Con la mia faccia incisa, s’intende…

 

Condividi questo articolo

  • Facebook
  • Twitter
  • Google Plus
  • LinkedIn
  • Email
  • RSS

  • Gilthanas

    graziealcaso!

  • http://www.facebook.com/alessandro.liti Alessandro Liti

    Per me non è così. Oggi con un database nosql in 10 minuti puoi scriverti un’applicazioncina funzionante, con sql (qualsiasi sql) si perde mezz’ora solo per la scrittura dello schema