Progettazione di banche dati. Migliori pratiche

In previsione dell'inizio del flusso successivo al ritmo "Banca dati" Abbiamo preparato un piccolo materiale d'autore con suggerimenti importanti per la progettazione di un database. Ci auguriamo che questo materiale ti sia utile.

Progettazione di banche dati. Migliori pratiche

I database sono ovunque: dai blog e directory più semplici ai sistemi informativi affidabili e ai grandi social network. Che il database sia semplice o complesso non è così importante quanto è importante progettarlo correttamente. Quando un database è progettato in modo sconsiderato e senza una chiara comprensione dello scopo, non solo è inefficace, ma l'ulteriore lavoro con il database sarà un vero tormento, una foresta impenetrabile per gli utenti. Ecco alcuni suggerimenti per la progettazione di database che ti aiuteranno a creare un prodotto utile e facile da usare.

1. Determinare a cosa serve la tabella e qual è la sua struttura

Progettazione di banche dati. Migliori pratiche

Oggi, metodi di sviluppo come Scrum o RAD (Rapid Application Development) aiutano i team IT a sviluppare rapidamente i database. Tuttavia, alla ricerca del tempo, la tentazione è molto grande di tuffarsi direttamente nella costruzione di una base, immaginando vagamente quale sia l'obiettivo stesso, quali dovrebbero essere i risultati finali.
 
È come se la squadra fosse concentrata su un lavoro efficiente e veloce, ma questo è un miraggio. Quanto più si approfondisce e velocemente il progetto, tanto più tempo sarà necessario per identificare e modificare gli errori nella progettazione del database.

Quindi la prima cosa che devi decidere è definire lo scopo del tuo database. Per quale tipo di applicazione viene sviluppato il database? L'utente lavorerà solo con i record e dovrà prestare attenzione alle transazioni o è più interessato all'analisi dei dati? Dove dovrebbe essere schierata la base? Monitorerà il comportamento dei clienti o gestirà semplicemente le relazioni con i clienti? 

Quanto prima il team di progettazione risponderà a queste domande, tanto più agevole sarà il processo di progettazione del database.

2. Quali dati dovrei scegliere per l'archiviazione?

Progettazione di banche dati. Migliori pratiche

Pianificare in anticipo. Pensieri su cosa farà in futuro il sito o il sistema per il quale è stato progettato il database. È importante andare oltre i semplici requisiti delle specifiche tecniche. Per favore, non iniziare a pensare a tutti i possibili tipi di dati che un utente potrà mai archiviare. Pensa invece se gli utenti potranno scrivere post, caricare documenti o foto o scambiare messaggi. Se questo è il caso, è necessario allocare spazio nel database.

Collaborare con il team, il dipartimento o l'organizzazione per cui la base di progettazione verrà supportata in futuro. Comunicare con persone a diversi livelli, dagli specialisti del servizio clienti ai capi dipartimento. In questo modo, con l'aiuto del feedback, avrai un'idea chiara delle esigenze dell'azienda. 

Inevitabilmente, le esigenze degli utenti anche all’interno dello stesso dipartimento entreranno in conflitto. Se ti imbatti in questo, non aver paura di fare affidamento sulla tua esperienza e di trovare un compromesso adatto a tutte le parti e che soddisfi l'obiettivo finale del database. Stai tranquillo: in futuro riceverai +100500 in karma e una montagna di biscotti.

3. Modellare i dati con cura

Progettazione di banche dati. Migliori pratiche

Esistono diversi punti chiave a cui prestare attenzione durante la modellazione dei dati. Come abbiamo detto in precedenza, lo scopo del database determina quali metodi utilizzare nella modellazione. Se stiamo progettando un database per l'elaborazione dei record online (OLTP), ovvero per la creazione, modifica ed eliminazione dei record, utilizziamo il modello di transazione. Se il database deve essere relazionale, allora è meglio utilizzare la modellazione multidimensionale.

Durante la modellazione vengono creati modelli di dati concettuali (CDM), fisici (PDM) e logici (LDM). 

I modelli concettuali descrivono le entità e i tipi di dati che includono, nonché le relazioni tra loro. Dividi i tuoi dati in blocchi logici: rende la vita molto più semplice.
La cosa principale è la moderazione, non esagerare.

Se un'entità è molto difficile da classificare in una parola o frase, allora è il momento di utilizzare i sottotipi (entità figlie).

Se un'entità conduce la propria vita, ha attributi che descrivono il suo comportamento e il suo aspetto, nonché le relazioni con altri oggetti, allora puoi tranquillamente utilizzare non solo un sottotipo, ma anche un supertipo (entità genitore). 

Se trascuri questa regola, altri sviluppatori si confonderanno nel tuo modello e non comprenderanno appieno i dati e le regole su come raccoglierli.

I modelli concettuali vengono implementati utilizzando quelli logici. Questi modelli sono come una mappa stradale per la progettazione di database fisici. Nel modello logico vengono identificate le entità dei dati aziendali, determinati i tipi di dati e lo stato della chiave della regola che regola le relazioni tra i dati.

Quindi il modello logico dei dati viene confrontato con la piattaforma DBMS (sistema di gestione del database) preselezionata e si ottiene un modello fisico. Descrive come i dati vengono archiviati fisicamente.

4. Utilizza i tipi di dati corretti

Progettazione di banche dati. Migliori pratiche

L'utilizzo del tipo di dati errato può comportare dati meno accurati, difficoltà nell'unire tabelle, difficoltà nella sincronizzazione degli attributi e dimensioni dei file eccessive.
Per garantire l'integrità delle informazioni, un attributo deve contenere solo tipi di dati accettabili. Se nel database viene inserita l'età, assicurarsi che la colonna contenga numeri interi di un massimo di 3 cifre.

Crea un minimo di colonne vuote con un valore NULL. Se crei tutte le colonne come NULL, questo è un grosso errore. Se hai bisogno di una colonna vuota per eseguire una funzione aziendale specifica, quando i dati sono sconosciuti o non hanno ancora senso, sentiti libero di crearla. Dopotutto non possiamo compilare in anticipo le colonne “Data di morte” o “Data di licenziamento”; non siamo dei pronostici che puntano il dito verso il cielo :-).

La maggior parte dei software di modellazione (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data ti consente di creare prototipi di aree dati. Ciò garantisce non solo il tipo di dati corretto, la logica dell'applicazione e buone prestazioni, ma anche che il valore sia richiesto.

5. Diventa naturale

Progettazione di banche dati. Migliori pratiche

Quando decidi quale colonna di una tabella utilizzare come chiave, considera sempre quali campi l'utente può modificare. Non sceglierli mai come chiave: una cattiva idea. Tutto può succedere, ma devi assicurarti che sia unico.

È meglio utilizzare una chiave naturale o aziendale. Ha un significato semantico, quindi eviterai duplicazioni nel database. 

A meno che la chiave aziendale non sia univoca (nome, cognome, posizione) e si ripeta in diverse righe della tabella o non debba cambiare, la chiave artificiale generata dovrebbe essere designata come chiave primaria.

6. Normalizza con moderazione

Progettazione di banche dati. Migliori pratiche

Per organizzare in modo efficace i dati in un database, è necessario seguire una serie di linee guida e normalizzare il database. Ci sono cinque forme normali da seguire.
Con la normalizzazione, eviti la ridondanza e garantisci l'integrità dei dati utilizzati nella tua applicazione o sito.

Come sempre, tutto dovrebbe essere moderato, anche la normalizzazione. Se nel database sono presenti troppe tabelle con le stesse chiavi univoche, ti sei lasciato prendere la mano e hai normalizzato eccessivamente il database. Una normalizzazione eccessiva influisce negativamente sulle prestazioni del database.

7. Prova presto, prova spesso

Progettazione di banche dati. Migliori pratiche

Il piano di test e i test adeguati dovrebbero far parte della progettazione del database.

Il modo migliore per testare il tuo database è tramite l'integrazione continua. Simula uno scenario di "un giorno nella vita di un database" e controlla se tutti i casi limite vengono gestiti e quali sono le probabili interazioni dell'utente. Prima trovi i bug, più risparmierai tempo e denaro.

Questi sono solo sette suggerimenti che puoi utilizzare per progettare un database di produttività ed efficienza eccezionale. Se li segui, eviterai la maggior parte dei mal di testa in futuro. Questi suggerimenti sono solo la punta dell'iceberg nella modellazione di database. Esistono moltissimi trucchi per la vita. Quali usi?

Fonte: habr.com

Aggiungi un commento