La modellazione di database ha un po' di scienza, un po' di arte, molte tecniche e un po' di saggezza generale. Tutti i bravi modellatori di database studiano molto, si esercitano molto, coltivano la creatività e sviluppano abilità interpersonali.
La strada per diventare un progettista di database può sembrare ardua. Ma se ti piace lavorare con i dati, dare una struttura dove apparentemente non ce ne sono e aiutare le persone a trovare verità nascoste nelle maree di informazioni, troverai sicuramente il viaggio piacevole.
Che cos'è la modellazione dei dati?
Cominciando dall'inizio. Cerchiamo di essere chiari su cosa sia la modellazione dei dati. La modellazione dei dati è il processo di creazione di una rappresentazione concettuale delle informazioni da contenere in un database. Il risultato di questo processo è un modello di dati, con gli oggetti dati (le entità per le quali le informazioni devono essere archiviate), le associazioni o relazioni tra di loro e le regole o vincoli che regolano le informazioni nel database.
La persona responsabile della modellazione dei dati è il progettista del database, sebbene la modellazione sia spesso tra le responsabilità dell'ingegnere del database o dell'architetto. Il lavoro del progettista di database non si limita al semplice disegno di diagrammi, ma include la revisione dei requisiti, sia leggendo la documentazione che intervistando gli utenti, quindi creando un modello di dati che soddisfi tali requisiti. Questo è il motivo per cui hai bisogno della modellazione dei dati.
Una volta creato un modello di dati, il progettista deve supportare quel modello e guidarlo attraverso la sua evoluzione e ciclo di vita. Ciò significa lavorare a stretto contatto con programmatori, analisti e chiunque altro abbia bisogno di utilizzare il modello. Significa anche accettare richieste di modifiche al modello, accettare suggerimenti per migliorarlo o adattarlo a nuove esigenze.
Passi verso la carriera di un designer di database
Roma non è stata costruita in un giorno e non diventerai un progettista di database dall'oggi al domani. Per arrivare al traguardo, devi seguire una serie di passaggi. Si parte con il conseguimento di una laurea, poi l'approfondimento di alcune conoscenze specifiche, l'apprendimento dell'uso degli strumenti, l'ottenimento della certificazione, il diventare un esperto di determinate abilità specifiche, e infine l'apprendimento di abilità indirettamente legate all'attività che si vuole svolgere – le cosiddette "soft" abilità. Ma facciamoli un passo alla volta.
1. Guadagnare una laurea
La prima pietra miliare importante nella carriera di qualsiasi progettista di database è ottenere una laurea. I programmi di laurea e di laurea sono il percorso migliore per coloro che vogliono acquisire una comprensione introduttiva della progettazione di database e dello sviluppo di software. I corsi di laurea associati coprono aspetti specifici della progettazione e del software di database offrendo al contempo corsi di istruzione e business più generali. I corsi di laurea triennali offrono ancora più corsi legati al business e possono preparare i laureati a posizioni più elevate nel campo dell'informatica o dello sviluppo di software.
La differenza più ovvia tra i due tipi di laurea (oltre al costo) è il tempo necessario per guadagnarli ciascuno. Per uno studente a tempo pieno, un corso di laurea associata richiede solitamente due anni. Un corso di laurea, d'altra parte, richiede solitamente quattro anni per uno studente a tempo pieno. Ovviamente i quattro anni del corso di laurea triennale ti permetteranno di imparare molto di più di quanto faresti in un corso di laurea associata.
Puoi seguire un breve corso sulla progettazione di database. Ma i corsi brevi in genere richiedono una conoscenza preliminare di diversi aspetti dell'informatica. Ci sono anche corsi pensati per persone che non conoscono l'informatica. Vertabelo Academy offre un'ampia gamma di tali corsi appositamente progettati per persone non IT.
Hai anche la possibilità, se sei abbastanza disciplinato, di imparare da solo senza prendere una laurea o un corso. Ci sono molte scelte nei libri di progettazione di database che puoi leggere. Tieni solo a mente che, quando si tratta di preparare il tuo curriculum, non ti farà molto bene menzionare che hai letto questo o quel libro sul design. Al contrario, avere una laurea o almeno un certificato di aver frequentato un corso aiuta.
2. Approfondisci le tue conoscenze
Una volta acquisite le conoscenze necessarie sulla progettazione di database, consolidarle e rafforzarle con la pratica reale. La teoria che impari in un corso o in una laurea, anche insieme agli esercizi che ti viene dato da risolvere, ti dà solo un'idea dei problemi che affronti nel tuo lavoro di progettista di database. Per inciso, questa conoscenza aggiuntiva ti prepara meglio per quando devi andare a un colloquio di lavoro per una posizione di progettista di database. Le seguenti sono le abilità che devi padroneggiare per diventare un progettista di database.
Normalizzazione, chiavi e istinto del designer
Che tu abbia preso una laurea o un corso o abbia semplicemente letto un libro, avrai sicuramente imparato qualcosa sulla prima, seconda e terza forma normale. Ma per rafforzare le tue conoscenze, guarda diversi diagrammi entità-relazione (presumo che tu sappia già cosa sono gli ERD e a cosa servono) e analizzali per vedere se sono normalizzati. Dovresti essere in grado di determinare in quale forma normale si trovano.
In questo diagramma, le stesse entità sono rappresentate in due modi diversi. Puoi dire a colpo d'occhio in quale forma normale si trova la tabella a sinistra e in quale forma si trova lo schema a destra?
Consiglio anche di studiare i problemi che uno schema senza normalizzazione può causare. Puoi confrontare lo spazio occupato da uno schema non normalizzato e uno schema normalizzato degli stessi dati per vedere le differenze, ovviamente con le tabelle popolate con una quantità ragionevole di dati. Oppure puoi provare a eseguire query su tabelle non normalizzate per vedere le incongruenze che appaiono.
Ci sono un paio di cose che impari con la pratica. Innanzitutto, non dovresti mai lasciare una tabella senza una chiave primaria. In secondo luogo, quando due tabelle sono correlate, è necessario definire una chiave esterna che associ i campi coinvolti di entrambe le tabelle. Se dimentichi questi suggerimenti, ti viene ricordato quando trovi righe duplicate in una tabella o elementi orfani nelle relazioni master-dettaglio e questo ti dà incubi.
A proposito di chiavi, probabilmente hai sentito parlare di chiavi naturali e di chiavi surrogate. Fino a quando non avrai molta esperienza, devi prenderti il tempo per pensare a quale tipo di chiave dare a ogni tabella che crei. Dopo aver eseguito alcune dozzine di ERD, avrai sviluppato l'istinto del designer di creare schemi nella terza forma normale senza sforzo, con le relazioni corrette e la chiave migliore per ogni tabella.
Data Warehouse:dimensioni, misure, modelli di schemi e altri concetti
I concetti di progettazione del database vengono generalmente insegnati tenendo conto dell'elaborazione transazionale. Ma oggi, i designer si occupano sempre più di database per l'elaborazione analitica. Questi database sono noti come data warehouse e hanno alcune idee e tecniche di progettazione che differiscono da quelle dei database convenzionali.
I data warehouse sono costruiti utilizzando il modello relazionale tradizionale, ma con diversi nuovi concetti aggiuntivi. Ad esempio, alcuni campi rappresentano dimensioni, mentre altri rappresentano misure. Alcune tabelle raccolgono fatti, mentre altre raggruppano dimensioni. Ora esistono modelli di progettazione specifici per schemi di data warehouse, come stella, fiocco di neve e galassia.
Infine, i data warehouse introducono una tecnica chiamata denormalizzazione. A differenza di quanto si potrebbe pensare, la denormalizzazione non significa annullare i precedenti tentativi di normalizzazione. Per capire a cosa serve la denormalizzazione, pensala come una tecnica per introdurre la ridondanza nei progetti di tabelle per semplificare le query e la visualizzazione dei dati.
3. Scegli i tuoi strumenti
Oltre alle conoscenze teoriche fornite dai tuoi studi e alle conoscenze pratiche fornite dalla tua esperienza, devi padroneggiare gli strumenti per la progettazione di database. Gli strumenti del progettista di database sono quelli che ti aiutano nel compito di creare modelli di dati.
La verità è che i bravi designer possono fare il loro lavoro senza alcuno strumento diverso da carta e matita. Ma per essere efficienti e portare a termine i propri compiti nel più breve tempo possibile, devono utilizzare strumenti che li aiutino a essere più efficienti.
Gli strumenti che fanno risparmiare più tempo per il progettista di database sono gli strumenti di progettazione ERD, come la piattaforma Vertabelo.com. Questi strumenti semplificano il lavoro del progettista di database di disegnare diagrammi, automatizzare la creazione di script SQL e generare diagrammi da database esistenti.
Un altro strumento fondamentale per ogni progettista di database è il linguaggio SQL. DDL (Data Definition Language) è necessario per creare o modificare schemi, ma per essere un progettista di database, devi anche sapere come scrivere query SQL per ottenere informazioni da un database.
Esistono altri strumenti utili per il progettista di database, come strumenti di monitoraggio e profilazione e linguaggi di programmazione per l'analisi dei dati e gli amministratori di database. Se conosci questi strumenti, elencarli aggiunge valore al tuo curriculum.
4. Ottieni la certificazione
Abbiamo parlato di strumenti di mastering, ma come fai a dimostrare nel tuo curriculum di sapere come scrivere SQL o di sapere come utilizzare alcuni strumenti di progettazione ERD? Puoi farlo frequentando corsi specifici, sostenendo esami e ottenendo la certificazione.
Esistono fondamentalmente due tipi di certificazioni:quelle che dimostrano che hai padroneggiato uno strumento particolare e quelle che dimostrano che hai una certa abilità. Entrambi aggiungono valore quando vengono visualizzati nel tuo curriculum.
Le aziende che sviluppano gli strumenti spesso offrono programmi di formazione e, quando si completa uno di questi programmi, si ottiene un certificato a dimostrazione della padronanza dello strumento. Queste certificazioni sono spesso gratuite. Sono interessati a certificare molti professionisti nell'uso dei loro strumenti, quindi è nel loro interesse addestrarti a utilizzarli senza farti pagare (molto) per questo.
Le certificazioni in una determinata competenza, come ad esempio la programmazione SQL, la gestione di database NoSQL o la progettazione di processi ETL, sono spesso costose, ma aggiungono molto valore al tuo curriculum, principalmente perché evitano agli intervistatori di dover valutare se tu sai davvero come fare il tuo lavoro. I corsi post-laurea sono un'opzione adatta se hai già una laurea.
5. Vai fino in fondo
Hai già studiato e imparato i materiali per essere un progettista di database. Hai approfondito le tue conoscenze. Hai frequentato corsi e ottenuto certificazioni. Cosa ti manca per diventare un progettista di database? Saper svolgere attività chiave ed essere in grado di eseguirle dall'inizio alla fine.
Modellazione di un database
Potresti sapere come disegnare un ERD, ma la modellazione di un database implica più di questo. Per essere un progettista di database, devi essere in grado di passare dal rilevamento e dall'analisi dei requisiti alla generazione ed esecuzione di script per trasformare i diagrammi in database funzionanti.
Scrittura di query complesse in SQL
Non si tratta semplicemente di una query che restituisce i dati che dovrebbe restituire, ma anche di restituirli il più rapidamente possibile. Saper scrivere query SQL significa pensare con la stessa logica del motore di database per raccogliere le informazioni richieste e consegnarle con il minimo sforzo.
Ottimizzazione delle prestazioni
L'ottimizzazione delle prestazioni del database include la creazione di una progettazione appropriata e il monitoraggio delle attività del database per rilevare le operazioni che riducono le prestazioni. Implica anche sapere come risolvere i problemi di prestazioni, sia che si tratti di creare indici, riprogettare lo schema o informare il DBA di potenziali problemi nell'ottimizzazione del motore di database.
Protezione di un database
Sebbene l'assegnazione di autorizzazioni e privilegi agli oggetti del database non sia normalmente compito del progettista del database, lui o lei può identificare le aree di responsabilità nei loro progetti che rendono più semplice per un amministratore assegnare correttamente le autorizzazioni a ciascun utente del database.
6. Acquisire competenze trasversali
Quest'ultimo passaggio è spesso trascurato nella carriera di un progettista di database, ma non lasciarlo irrisolto. In molte situazioni, le competenze trasversali menzionate di seguito sono importanti, se non di più, delle competenze e delle conoscenze tecniche tradizionali, alias le competenze difficili.
Acuità per gli affari
I designer con acume per gli affari possono interpretare meglio e dare la giusta dimensione a ogni esigenza che ricevono, e questo si traduce in migliori decisioni di progettazione. Qualcosa di semplice come decidere se utilizzare una chiave naturale o una chiave surrogata per una tabella può essere importante per l'azienda; allineare le tue decisioni con gli obiettivi di business è la chiave del successo del tuo lavoro.
Comunicazioni e capacità interpersonali
Creare un buon design è solo una parte del lavoro. Dopo aver creato e perfezionato il tuo modello, devi essere in grado di presentarlo, spiegarlo e aiutare chiunque abbia bisogno di lavorarci. Devi anche accettare che ogni progetto possa essere migliorato, quindi preparati a ricevere suggerimenti e critiche. In generale, come designer, fai parte di una squadra. Essere una parte utile della squadra significa essere un giocatore di squadra che pensa sempre al vantaggio per la squadra.
Il traguardo:un lavoro di progettazione di database
Se hai fatto tutte queste cose, probabilmente stai già modellando database come un professionista e hai molte storie da raccontare. Lo spazio commenti qui sotto serve per condividere consigli utili e storie divertenti e per contribuire ad arricchire le nostre vite come progettisti di database.