Prova
I database e le app Web possono produrre notevoli vantaggi aziendali. La progettazione del database è fondamentale per poter realizzare i tuoi obiettivi: dalla gestione delle informazioni dei dipendenti alla reportistica dei dati settimanali fino alla gestione degli ordini dei clienti. Investendo il tempo necessario per identificare la progettazione ideale, potrai creare database che funzionino correttamente sin dall'inizio e che si adattino a esigenze in continua evoluzione.
Importante: Le app Web di Access sono diverse dai database desktop. Questo articolo non descrive la progettazione di app Web.
Concetti e termini
Iniziamo da alcuni termini e concetti di base. Per progettare un database utile, devi creare tabelle incentrate su un solo argomento. Nelle tabelle acquisirai i dati necessari per l'argomento in campi, che contengono l'unità di dati più piccola possibile.
Database relazionali |
Database in cui i dati sono divisi in tabelle, che sono simili a fogli di calcolo. Ogni tabella ha un solo argomento, ad esempio clienti (una tabella) o prodotti (un'altra tabella). |
Record e campi |
Archiviazione per i dati discreti in una tabella. Le righe (o record) archiviano ogni punto dati univoco, ad esempio il nome di un cliente. Le colonne (o campi) isolano le informazioni acquisite su ogni punto dati nell'unità più piccola possibile. Il nome potrebbe essere una colonna e il cognome potrebbe essere un'altra. |
Chiave primaria |
Valore che assicura che ogni record è univoco. Ad esempio, due clienti potrebbero chiamarsi entrambe Palmira Loggia. Uno dei record Palmira Loggia ha tuttavia il numero 12 come chiave primaria, mentre l'altro ha la chiave primaria 58. |
Relazioni padre-figlio |
Relazioni comuni tra tabelle. Ad esempio, un cliente può essere associato a più ordini. Le tabelle padre hanno chiavi primarie. Le tabelle figlio hanno chiavi esterne, ovvero valori provenienti dalla chiave primaria che indicano il modo in cui i record della tabella figlio sono collegati alla tabella padre. Queste chiavi sono collegate tramite una relazione. |
Quando una progettazione di database è appropriata?
Due principi sono fondamentali per una buona progettazione di database:
-
Evitare informazioni duplicate (chiamate anche dati ridondanti). Le informazioni duplicate comportano uno spreco di spazio e aumentano la probabilità di errori.
-
Assicurarsi che i dati siano corretti e completi. Informazioni incomplete o errate vengono usate in query e report e in definitiva possono produrre decisioni basate su informazioni non corrette.
Per risolvere questi problemi:
-
Suddividi le informazioni del database in tabelle incentrate su un argomento molto specifico. Evita la duplicazione di informazioni in più tabelle. Ad esempio, i nomi dei clienti devono essere inclusi in una sola tabella.
-
Unisci le tabelle tramite chiavi invece di duplicare i dati.
-
Includi processi che supportino e assicurino l'accuratezza e l'integrità delle informazioni del database.
-
Progetta il database tenendo sempre presenti le tue esigenze di elaborazione e creazione di report dei dati.
Per migliorare l'utilità a lungo termine dei database, segui questi cinque passaggi di progettazione:
Passaggio 1: Determinare lo scopo del database
Prima di iniziare, definisci l'obiettivo del database.
Per guidare la progettazione, definisci lo scopo del database e fai riferimento regolarmente a questa definizione. Se vuoi creare un piccolo database per un'azienda a conduzione familiare, ad esempio, potresti scrivere qualcosa di semplice come "Il database dei clienti mantiene un elenco di informazioni sui clienti allo scopo di produrre la corrispondenza e i report". Per un database aziendale, potresti dover scrivere più paragrafi per descrivere quando e come persone di diversi ruoli useranno il database e i dati contenuti. Crea una definizione degli obiettivi specifica e dettagliata cui fare riferimento durante tutto il processo di progettazione.
Passaggio 2: Individuare e organizzare le informazioni necessarie
Raccogli tutti i tipi di informazioni che vuoi registrare, come nomi di prodotto e numeri di ordine.
Inizia dalle informazioni e dai metodi di raccolta dei dati esistenti. Attualmente potresti, ad esempio, registrare gli ordini di acquisto nella contabilità generale o conservare le informazioni sui clienti in moduli cartacei. Usa queste origini per elencare le informazioni attualmente acquisite, ad esempio tutte le sezioni nei moduli. Se ancora non registri alcune informazioni importanti, determina quali sono i dati discreti di cui hai bisogno. Ogni singolo tipo di dati diventa un campo nel database.
Non preoccuparti di creare un elenco che sia inizialmente perfetto, perché potrai perfezionarlo nel tempo. Considera tuttavia tutte le persone che usano queste informazioni e chiedi la loro opinione.
Quindi, pensa a cosa vuoi ottenere dal database e i tipi di report o di corrispondenza che vuoi generare. Assicurati di acquisire le informazioni necessarie per realizzare questi obiettivi. Ad esempio, se vuoi un report che mostri le vendite in base all'area, devi acquisire i dati sulle vendite a livello di area geografica. Prova a delineare una bozza del report con i dati effettivi che deve contenere. Elenca quindi i dati necessari per creare il report. Fai la stessa cosa per la corrispondenza o altri output che vuoi ottenere dal database.
Esempio
Immagina che i tuoi clienti abbiano la possibilità di fornire o negare il consenso per ricevere gli aggiornamenti periodici tramite posta elettronica e che tu voglia stampare un elenco di chi ha dato il proprio consenso. Dovrai creare una colonna Invia messaggio nella tabella dei clienti, con valori consentiti Sì e No.
Per i clienti disposti a ricevere messaggi di posta elettronica, devi includere un indirizzo di posta elettronica, che a sua volta richiede un campo. Se vuoi includere una formula di apertura appropriata (come Signore, Signora o Gentile cliente), includi il campo Formula di apertura. Se nei messaggi di posta elettronica vuoi rivolgerti ai clienti usandone il nome, aggiungi il campo Nome.
Suggerimento: Ricorda di dividere i dati nelle unità più piccole utilizzabili, ad esempio il nome e il cognome per una tabella dei clienti. In generale, se vuoi ordinare, cercare, calcolare o creare report in base a un tipo di dati, ad esempio il cognome dei clienti, devi inserire questo tipo di dati nel campo corrispondente.
Passaggio 3: Suddividere le informazioni in tabelle
Suddividi i dati in entità o argomenti principali, come prodotti, clienti e ordini. Ogni argomento diventa una tabella.
Dopo aver elencato le informazioni necessarie, determina le entità (o argomenti) principali che ti servono per organizzare i dati. Evita di duplicare i dati tra entità. Ad esempio, l'elenco preliminare per un database delle vendite dei prodotti può avere un aspetto simile a questo:
Le entità principali sono clienti, fornitori, prodotti e ordini. Inizia quindi con queste quattro tabelle, una per i dati relativi ai clienti, una per quelli relativi ai fornitori e così via. Questa progettazione potrebbe non essere quella finale, ma è un buon punto di partenza.
Nota: I database migliori contengono più tabelle. Evita di cedere alla tentazione di inserire tutte le informazioni in un'unica tabella. Questa metodologia può generare informazioni duplicate, database di dimensioni più grandi e un maggior numero di errori. Progetta il database in modo da registrare ogni dato una volta sola. Se ti rendi conto che le informazioni sono ripetute, ad esempio l'indirizzo di un fornitore, ristruttura il database in modo da inserirle in una tabella separata.
Per capire perché sia preferibile lavorare con un maggior numero di tabelle, osserva questa tabella:
Ogni riga contiene informazioni sul prodotto e sul suo fornitore. Poiché possono essere presenti molti prodotti dello stesso fornitore, le informazioni su nome e indirizzo del fornitore devono essere ripetute molte volte. Questo provoca uno spreco dello spazio su disco. In alternativa, puoi registrare le informazioni sul fornitore una sola volta in una tabella Fornitori separata e quindi collegare questa tabella alla tabella Prodotti.
Un secondo problema in questa progettazione è evidente quando devi modificare le informazioni sul fornitore. Supponi di dover modificare l'indirizzo di un fornitore. Poiché è visualizzato in molti punti, potresti accidentalmente modificare l'indirizzo in un punto dimenticando di modificarlo negli altri. La registrazione dell'indirizzo del fornitore in un'unica posizione risolve il problema.
Supponi infine che Coho Winery fornisca un solo prodotto e di voler eliminare il prodotto conservando invece le informazioni su nome e indirizzo del fornitore. Con questa progettazione potresti eliminare il record del prodotto senza perdere anche le informazioni sul fornitore? No, non potresti. Poiché ogni record contiene i dati su un prodotto insieme ai dati su un fornitore, è impossibile eliminare i primi senza eliminare anche gli altri. Per mantenere separati questi dati, dividi la tabella in due: la prima per le informazioni sui prodotti e la seconda per le informazioni sui fornitori. In questo modo, quando elimini il record di un prodotto, eliminerai solo i dati sul prodotto e non quelli sul fornitore.
Passaggio 4: Trasformare le informazioni in colonne
Stabilisci quali informazioni archiviare in ogni tabella. Questi dati discreti diventano campi nella tabella. Ad esempio, una tabella Dipendenti può includere campi come Nome, Cognome e Data assunzione.
Dopo aver scelto l'argomento per una tabella di database, le colonne della tabella devono archiviare dati solo su questo argomento specifico. Una tabella di prodotti, ad esempio, deve archiviare solo dati sui prodotti e non sui rispettivi fornitori.
Per determinare le informazioni di cui tenere traccia nella tabella, usa l'elenco che hai creato in precedenza. La tabella Clienti, ad esempio, può includere: Nome, Cognome, Invia messaggio, Formula di apertura e Posta elettronica. Ogni record (cliente) nella tabella contiene lo stesso set di colonne, in modo da poter archiviare esattamente le stesse informazioni per ogni cliente.
Crea prima di tutto l'elenco e quindi esaminalo e perfezionalo. Ricorda di suddividere le informazioni nei campi più piccoli possibile. Ad esempio, se l'elenco iniziale ha un campo Indirizzo, suddividi queste informazioni in Via, Città, Paese e CAP oppure, se i tuoi clienti sono internazionali, in un numero ancora maggiore di campi. In questo modo, ad esempio, puoi creare corrispondenze nel formato appropriato o report sugli ordini in base al paese.
Dopo aver perfezionato le colonne di dati in ogni tabella, puoi scegliere la chiave primaria di ogni tabella.
Passaggio 5: Specificare le chiavi primarie
Scegli la chiave primaria di ogni tabella. La chiave primaria, come ID prodotto o ID ordine, identifica in modo univoco ogni record. Se non hai un identificatore univoco chiaro, usa Access per crearne uno.
È necessario un modo per identificare in modo univoco ogni riga di ogni tabella. Ricordi l'esempio precedente in cui due clienti hanno lo stesso nome? Poiché condividono un nome, è necessario un modo per identificarle separatamente.
Di conseguenza, ogni tabella deve includere una colonna (o set di colonne) che identifichi in modo univoco ogni riga. Questa è la chiave primaria ed è spesso un numero univoco, ad esempio un ID dipendente o un numero di serie. Access usa le chiavi primarie per associare rapidamente dati di più tabelle e unire i dati automaticamente.
A volte la chiave primaria è costituita da due o più campi. Ad esempio, una tabella Dettagli ordine che archivia voci per gli ordini può usare due colonne nella propria chiave primaria: ID ordine e ID prodotto. Quando una chiave primaria usa più di una colonna, è chiamata anche chiave composta.
Se hai già un identificatore univoco per le informazioni in una tabella, come i numeri di prodotto che identificano in modo univoco ogni prodotto nel catalogo, puoi usarlo, ma solo se i valori soddisfano queste regole per le chiavi primarie:
-
L'identificatore sarà sempre diverso per ogni record. In una chiave primaria non sono permessi valori duplicati.
-
L'elemento è sempre associato a un valore. Ogni record nella tabella deve avere una chiave primaria. Se usi più colonne per creare la chiave (come Famiglia parte e Numero parte), entrambi i valori devono essere sempre presenti.
-
La chiave primaria è un valore che non cambia. Poiché altre tabelle fanno riferimento alle chiavi, qualsiasi modifica apportata a una chiave primaria in una tabella ne implica la modifica in qualsiasi punto in cui si fa riferimento alla chiave. Modifiche frequenti aumentano il rischio di errori.
Se non hai un identificatore chiaro, usa un numero univoco arbitrario come chiave primaria. Ad esempio, puoi assegnare a ogni ordine un numero di ordine univoco per poter identificare l'ordine.
Suggerimento: Per creare un numero univoco come chiave primaria, aggiungi una colonna usando il tipo di dati Numerazione automatica. Il tipo di dati Numerazione automatica assegna automaticamente un valore numerico univoco a ogni record. Questo tipo di identificatore non contiene informazioni reali che descrivono la riga che rappresenta. È ideale per l'uso come chiave primaria perché i numeri non cambiano, diversamente da una chiave primaria contenente dati su una riga, come un numero di telefono o il nome di un cliente.
Altre informazioni
Istruzioni per la denominazione di campi, controlli e oggetti