Home > Libri > “Desk Reference For The Thinking Data Professional And User”

“Desk Reference For The Thinking Data Professional And User”

Ho da poco finito di leggere l’ultimo lavoro di Fabian Pascal:

THE DBDEBUNK GUIDE TO MISCONCEPTIONS ABOUT DATA FUNDAMENTALS — A DESK REFERENCE FOR THE THINKING DATA PROFESSIONAL AND USER

una raccolta ragionata dei post più importanti apparsi sul suo sito, in cui ogni mito, preconcetto o errata convinzione a riguardo del Modello Relazionale, il suo uso, il suo scopo ed i suoi limiti sono sfatati.

Conosco Fabian personalmente da anni. Sono un fan dei suoi libri e del suo lavoro: la sua abilità nello spiegare l’importanza ed i dettagli del Modello Relazionale sono impareggiate ed illuminanti. Non è una sorpresa, quindi, che anche il suo ultimo lavoro sia un libro che chiunque, lo ripeto, chiunque, lavori in ambito IT ed in un modo o nell’altro abbia a che fare con dei dati dovrebbe leggere. Non importa se usate il Modello Relazionale o no: leggete questo libro.

Tenete però a mente che non sarà una lettura facile. Fabian è molto critico rispetto a tutte le maggiori implementazioni del modello relazionale (quindi di SQL Server, Oracle e DB2). In effetti si spinge a sostenere che nessuno di questi è veramente aderente al Modello Relazionale descritto e proposto da Codd, e in tutta onestà, ha perfettamente ragione. Purtroppo però, “business is business”: non viviamo in un mondo perfetto, quindi giusto criticare in modo costruttivo ma il continuo lamentarsi non giova a nessuno. Ed in tutto il libro, qui e là, troverete critiche ai vari vendor (Microsoft, Oracle e IBM), al fatto che il Modello Relazionale non è implementato correttamente e che, anzi, è assolutamente inadeguato e fallace e, su tutto, che c’è pochissima formazione e conoscenza a riguardo.

In effetti la conoscenza è la parola chiave. Capire cosa c’è di errato o limitato nelle implementazioni attuali del Modello Relazionale ci permette di sapere cosa aspettarci da un prodotto e che cosa invece dobbiamo implementare manualmente nelle nostre soluzioni. Detto in altre parole siamo in grado di capire quando ha senso spendere del tempo (e dei soldi) nello scrivere codice, rispetto a quando possiamo tranquillamente affidarci alle capacità del prodotto.

Un esempio pratico: se si conosce l’esistenza ed il principio di funzionamento della divisione nell’algebra relazionale, che sta alla base del Modello Relazionale, si è in grado di capire quando e come usarla. Attualmente, nessuna implementazione mette a disposizione tale operatore, ma questo non è più un limite insormontabile. Dato che il suo funzionamento è ben spiegato, si tratta solo di implementarlo, senza stare a perdere tempo a cercare di capire come risolvere un problema che è stato risolto da tempo, ma semplicemente non è stato implementato per noi in qualche prodotto. Questa è una differenza enorme.

Andate quindi oltre le critiche e troverete delle vere e proprie gemme. Se argomenti come

  • Data independence (logical, integrity, physical)
  • Data integrity (business rules, integrity constraints, database consistency)
  • Data models (relational, hierarchic, network)
  • Relational data sub-language (vs. computationally complete language)
  • Database and application-specific functions
  • Domains (simple, non-simple, data types)
  • Entity supertype-subtypes (and inapplicable data)
  • Keys (natural, primary, surrogate)
  • Levels of representation (conceptual, logical, physical)
  • Missing data (NULL, many-valued logics)
  • Normalization, further normalization, denormalization, normal forms
  • Relational Data Model
  • Relations (base, derived) vs. R-tables
  • SQL and relational fidelity
  • Types of model (conceptual, logical, physical, data)

vi sembrano oscuri, esageramente complessi o non utili nel lavoro giornaliero, oppure se pensate che la buzzword di questi ultimi anni – “dati non strutturati” – abbia veramente un senso, allora questo libro è per voi.

Nel libro troverete delle chiare risposte ai questi argomenti, con anche riferimenti a libri e post dove approfondirne la conoscenza. E magari arriverete al punto che desidererete iniziare a studiare anche la teoria e la logica degli insiemi che sta dietro al Modello Relazionale, che è veramente straordinaria. Permette di capire in profondità il concetto di database, così da capire se, quando e come è corretto lasciare il Modello Relazionale per strade alternative. In questo modo avrete la capacità di fare scelte architetturali informate e non basate su idee non corrette e fuorvianti: state effettivamente incontrando un limite del Modello Relazionale e quindi è corretto usare una soluzione non-relazionale oppure state solo prendendo un abbaglio o, peggio, seguendo una moda?

Oltre a questo leggendo il libro troverete interessanti spunti per apprezzare come la conoscenza della teoria sia fondamentale per mettervi nelle condizioni di fare un lavoro migliore. Non per avere l’approvazione del proprio responsabile o del cliente, ma per avere la serenità di aver fatto scelte architetturali basate su solide fondamenta: quelle della matematica. Fondamenta che vi garantiscono la correttezza e la robustezza che ogni soluzione implicitamente richiede. E, grazie agli ultimi sviluppi delle implementazioni correnti del Modello Relazionale, anche se così criticate da Fabian, la capacita di fare scale-out e scale-up in modo molto molto semplice.

Oltre a questo mi auguro che, come accaduto a me quando ho iniziato per la prima volta a leggere i post sul blog di Fabian, si accenda anche in voi quella scintilla che vi porta a volerne sapere sempre di più, quasi come si fosse alla ricerca di un tesoro nascosto. E se amate veramente lo sviluppo (lo amate! non lo considerate un gioco o una cosa divertente o un modo per far soldi) allora succederà anche a voi. Avete sicuramente realizzato che il mondo in cui viviamo – e quello del futuro – è basato sui dati. Sapere come maneggiarli correttamente fa la differenza tra un buon professionista ed un professionista eccezionale.

Leggete il libro in particolare se non state usando alcun RDBMS. Praticamente tutte le soluzioni No-SQL stanno convergendo verso il buon vecchio SQL e quindi più ne sapete del Modello Relazionale, meglio sara per voi e per la vostra carriera. Sapere di più è sempre meglio che sapere di meno. Vi permette di fare scelte informate. E con l’enorme quantità di tecnologie oggi alla nostra portate questo è un fattore fondamentale.

Quindi, fatevi un favore: comprate questo libro

http://www.dbdebunk.com/p/blog-page_17.html

Chi è Davide Mauri

Microsoft Data Platform MVP dal 2007, Davide Mauri si occupa di Data Architecture e Big Data nel mondo dell'IoT. Attualmente ricopre il ruolo di "Director Software Development & Cloud Infrastructure" in Sensoria, societa specializzata nella creazione di Wearables e sensori per l'IoT applicati a tessuti ed oggetti sportivi.

Leggi Anche

PASS Marathon BI (Dicembre 2019): Sessioni registrate!

Le sessioni presentate durante l’evento PASS Marathon “Edizione BI”, tenuto lo scorso 11 Dicembre 2019, …