Hai bisogno della modellazione dei dati per risparmiare a te stesso o alla tua organizzazione un sacco di soldi, ore e problemi. Continua a leggere per scoprire come i modelli di dati fanno la sua magia.
La modellazione dei dati è il processo di creazione di una vista concettuale delle informazioni che un database contiene o dovrebbe contenere. Come risultato di questo processo, viene creato un modello di dati, che dà forma agli oggetti dati (tutti quei soggetti per i quali devono essere archiviate informazioni), alle associazioni o relazioni tra di loro e alle regole o restrizioni che regolano le informazioni che entrano nel database .
Molto bello, ma è davvero necessario lavorare con i modelli di dati? Non possiamo semplicemente saltare questo passaggio, risparmiare tempo e passare direttamente alla creazione di oggetti nel database? Un corso sulla modellazione di database risponderà a queste domande, ma se desideri un riepilogo, ti fornirò ragioni sufficienti per avere un modello di dati a portata di mano ogni volta che devi lavorare con le informazioni archiviate in un database. Quando finirai di leggere questo articolo, sarai d'accordo con me sul fatto che lavorare con un database senza un modello adeguato equivale a costruire una casa - o anche un grattacielo - senza fondamenta adeguate.
Iniziamo prendendo in considerazione due contesti in cui viene principalmente eseguita la modellazione dei dati:
- Modellazione strategica, che viene eseguita come parte della strategia generale dei sistemi informativi in un'organizzazione.
- Progettazione di database, che fa parte della fase di progettazione nel processo di sviluppo del software.
In entrambe le situazioni, ci sono molte ragioni per eseguire la modellazione dei dati. Per prima cosa vedremo quelli che hanno a che fare con la strategia dei sistemi informativi, poi quelli relativi allo sviluppo del software.
Maggiore qualità delle informazioni
Un modello di dati è essenziale per fornire chiarezza e coerenza nei metadati , le definizioni degli oggetti che compongono un database. Ciò contribuisce ad aumentare la qualità dell'informazione. Ad esempio, un modello di dati può garantire che vengano utilizzati i formati corretti per elementi di dati come numeri di telefono e codici postali e in un database in cui sono archiviati i dati dei clienti, può garantire che ogni cliente abbia almeno un indirizzo.
È inoltre possibile garantire la qualità delle informazioni archiviate in un database imponendo regole in modo che solo i dati validi entrino nelle tabelle. A tale scopo, quando si progetta il modello dati, si imposta il dominio del valore per ciascun campo e si differenziano i campi che devono avere valori da quelli che possono essere lasciati vuoti.
Le definizioni dei modelli di dati garantiscono la conformità dei dati a regole di business. Ad esempio, potresti voler imporre a ciascun cliente di disporre di un indirizzo con il formato del codice postale corretto o di associare ogni indirizzo a una città e ogni città a uno stato.
La qualità dell'informazione viene inoltre migliorata imponendo restrizioni che garantiscano l'integrità referenziale e mantengano la cardinalità prevista nelle relazioni tra entità. Tali restrizioni possono essere derivate solo da un modello di dati adeguato.
Riutilizzo delle risorse di dati
Quando si sviluppa un nuovo sistema o si aggiungono nuove funzionalità a un sistema esistente, è normale che alcune delle entità di dati richieste dal nuovo sviluppo esistano già in un database e quindi possano essere riutilizzate. L'unico modo per scoprire quali entità esistono già è sfogliare modelli di dati aggiornati che descrivono adeguatamente le strutture dei database in uso dall'organizzazione.
I modelli di dati concettuali, logici e fisici devono essere mantenuti per fornire viste con diversi livelli di astrazione per consentire di rilevare facilmente le risorse di dati riutilizzabili. Puoi sfruttare uno strumento di progettazione specializzato, come la piattaforma Vertabelo, per facilitare la creazione di diversi tipi di modelli di dati e persino per derivarne uno dall'altro.
Questa buona pratica evita di generare dati ridondanti in schemi diversi, che prima o poi portano a informazioni incoerenti (ne parleremo più avanti).
Migrazione ad ambienti cloud
Con infrastrutture DaaS (Data as a Service) o database nel cloud, determinati requisiti, come la privacy del database , scalabilità dinamica e efficienza nella gestione di più tenant , diventa più critico.
I modelli di dati sono uno strumento prezioso per soddisfare questi requisiti, poiché facilitano la verifica della conformità di un progetto di schema. A loro volta, consentono di definire le partizioni degli schemi e i relativi requisiti di archiviazione, essenziale per dimensionare correttamente il livello di servizio richiesto e la crescita di archiviazione prevista quando i database risiedono in cloud privati o pubblici.
Gli artefatti della progettazione di database come i diagrammi ER sono gli strumenti preferiti durante la preparazione per la migrazione a un ambiente cloud. Una guida su come utilizzare i diagrammi ER può darti un'idea della loro utilità nella migrazione del database.
Modellazione di database per Big Data e NoSQL
I database non relazionali, come NoSQL e gli schemi dimensionali, possono costringerci a mettere da parte (almeno per un momento) la nostra tradizionale mentalità relazionale. Ma ciò non significa che possiamo fare a meno dei modelli di dati. Al contrario, la modellazione dei dati diventa ancora più importante.
Quando devi lavorare con i Big Data, ti trovi comunemente di fronte a enormi silos di informazioni che devono essere scomposte, perfezionate e strutturate in modo tale che tu o un analista di dati possiate ricavarne approfondimenti strategici. È necessaria un'attenta progettazione dello schema, sia per repository di informazioni o data warehouse raffinati, sia per repository di staging utilizzati per la pulizia dei dati e i processi di strutturazione dei dati.
C'è un malinteso, principalmente da parte dei programmatori, che i database NoSQL non utilizzino schemi e quindi non richiedano modelli di dati. Niente potrebbe essere più lontano dalla verità. Poiché le tecnologie NoSQL non forniscono un modo standardizzato per visualizzare i metadati (qualcosa che fa ogni RDBMS), i modelli di dati diventano essenziali per consentire alle persone di utilizzare e condividere le informazioni archiviate nel database.
Fusioni e acquisizioni
Qualsiasi fusione tra due organizzazioni rappresenta una sfida enorme per i rispettivi dipartimenti IT. Una parte significativa di questa sfida è nel consolidamento del database. Se entrambe le organizzazioni dispongono di modelli di dati aggiornati, questo consolidamento può essere effettuato nei modelli anziché direttamente nei database, riducendo sostanzialmente lo sforzo dedicato all'attività.
Finora, abbiamo visto i vantaggi della modellazione dei dati associati alla pianificazione strategica IT di un'organizzazione. Se questi motivi non sono sufficienti per convincerti dell'importanza della modellazione dei dati, diamo un'occhiata anche ai vantaggi che apporta allo sviluppo del software.
Costi di sviluppo ridotti
Nelle prime fasi di un progetto di sviluppo, quando il budget viene analizzato, la necessità di impegnarsi nella costruzione di un modello di dati può essere messa in discussione. Se i leader e i manager di progetto sono abbastanza intelligenti, confronteranno quanto costa costruire e mantenere un modello di dati con i costi che verranno risparmiati e decideranno a favore della creazione del modello.
La modellazione dei dati è solo il 10% del budget di un progetto di sviluppo e ha il potenziale per ridurre i costi effettivi del progetto a meno di un terzo.
Considera solo quanto segue. Nella maggior parte dei casi, il costo della modellazione dei dati (ovvero il costo dello sforzo richiesto per costruire e mantenere il modello) è inferiore al 10% del budget totale per un progetto software. In confronto, il risparmio sui costi associato all'utilizzo dei modelli di dati arriva fino al 70%, tutto grazie alla riduzione delle ore per la codifica e la manutenzione.
Quindi, nello sviluppo del software, il primo e più importante motivo per fare la modellazione dei dati è l'indiscutibile ROI (ritorno sull'investimento), che i leader di progetto devono considerare nelle prime fasi di ogni progetto.
Migliori definizioni dei requisiti
Nello sviluppo del software è possibile garantire una maggiore comprensione del sistema da sviluppare se le attività di modellazione dei dati vengono svolte parallelamente alla raccolta dei requisiti. I requisiti saranno più completi e corretti.
La modellazione dei dati aiuta a scoprire le regole di business e a porre domande durante l'ingegneria dei requisiti, garantendo al contempo l'integrità dei dati. È più efficace delle attività di modellazione dei processi come la progettazione di casi d'uso o la progettazione di flussi di lavoro, e ovviamente più espressiva e meno prolissa della descrizione in prosa delle regole aziendali.
Sviluppo più rapido
Quando gli sviluppatori hanno a portata di mano modelli di dati adeguati, possono svolgere il proprio lavoro con meno errori. Gli strumenti di modellazione dei dati generano e gestiscono automaticamente schemi di database, creando script DDL (Data Definition Language) che sono spesso troppo lunghi, complessi e disordinati per essere generati manualmente dagli sviluppatori.
A loro volta, questi strumenti favoriscono la collaborazione consentendo la condivisione dei modelli tra gli sviluppatori. Quando sono necessarie modifiche, puoi apportarle nel modello dati, assicurandoti che tutti gli sviluppatori siano informati e che vengano applicati ai database senza interrompere nulla.
Tutto ciò consente di consegnare i sistemi prima e con meno bug.
Potenziamento delle metodologie agili
Le metodologie agili mirano ad accelerare il processo di sviluppo concentrando gli sforzi sulla fornitura di software funzionante ed evitando burocrazia, documentazione eccessiva e fasi eseguite una dopo l'altra.
La modellazione del database deve affrontare una sfida significativa quando si lavora in ambienti agili, poiché il progettista deve essere in grado di lavorare sul "quadro generale", mentre gli sviluppatori hanno bisogno solo degli oggetti dati richiesti per ogni user story. Per raggiungere un consenso tra modellatori di dati e sviluppatori, le metodologie agili utilizzano tecniche come il sandboxing e ramificazione .
Una sandbox è l'ambiente di lavoro di ogni sviluppatore. Il progettista può lavorare con i rami del modello di dati principale nella sandbox di ogni sviluppatore, che fornirà feedback per perfezionarlo. Al termine di ogni fase (o sprint), il progettista del database unisce i diversi rami per mantenere aggiornato il modello completo.
Potresti pensare che la modellazione dei dati rallenti i team agili e che gli sviluppatori debbano attendere che i modelli siano pronti per iniziare il loro lavoro. Ma in realtà, l'utilizzo di tecniche come sandboxing e branching mantiene i principi di agilità e allo stesso tempo consente di ottenere i miglioramenti di velocità sopra menzionati.
Cosa succede se non utilizzo i modelli di dati?
Potresti pensare che puoi ancora sopravvivere senza i vantaggi dei modelli di dati menzionati finora per risparmiare tempo. Ma se decidi di non modellare i dati, rischi di incorrere in problemi seri come:
- Ridondanza non necessaria:poiché non esiste un modello per vedere chiaramente gli oggetti dati, verranno visualizzate versioni diverse degli stessi oggetti con informazioni diverse. Ad esempio, un sistema di inventario può segnalare che 500 unità di un articolo sono state vendute nell'ultimo mese, mentre un sistema logistico può segnalare che 1000 unità dello stesso articolo sono state spedite nello stesso periodo. Quale è giusto? Chissà.
- App lente:l'assenza di un modello di dati rende difficili le attività di ottimizzazione, riducendo la reattività delle applicazioni.
- Incapacità di soddisfare gli standard di qualità:se non esiste un modello di dati, i database non verranno documentati, il che è obbligatorio in scenari come le migrazioni di database.
- Qualità del software scadente:i requisiti di sviluppo del software saranno scarsi e gli utenti non avranno le applicazioni di cui hanno bisogno o che desiderano.
- Costi di sviluppo più elevati:ho già menzionato i notevoli risparmi sui costi che si possono ottenere in un progetto di sviluppo utilizzando i modelli di dati. Se scegli di non utilizzarli, dovrai decidere chi paga per i costi aggiuntivi di sviluppo e manutenzione. E chi si scuse quando le scadenze non vengono rispettate.
Non sei ancora convinto?
Se ciò che hai letto finora non è sufficiente per convincerti dell'importanza della modellazione dei dati, ricorda che i dati stanno diventando una risorsa sempre più preziosa per tutti i tipi di organizzazioni. La modellazione delle strutture per sfruttare le informazioni ha oggi un'importanza senza precedenti.
Considera questo:durante la corsa all'oro, i ragazzi che guadagnavano di più non erano quelli che cercavano pepite d'oro, ma piuttosto quelli che fornivano gli strumenti per estrarre l'oro. Nel 2021, le pepite d'oro si presentano sotto forma di informazioni approfondite e i minatori che estraggono tale materiale prezioso devono essere forniti di modelli di dati.