Strutturazione di un database (fonte: Microsoft)

 

Una buona strutturazione semplifica le operazioni di aggiornamento e manutenzione del database. I dati vengono memorizzati in tabelle e ogni tabella include i dati relativi a un solo argomento, ad esempio i clienti. In questo modo, se è necessario aggiornare un'informazione specifica, ad esempio un indirizzo, è possibile apportare la modifica in una sola posizione per renderla disponibile automaticamente in tutto il database.

Un database ben strutturato include, in genere, diversi tipi di query per la visualizzazione delle informazioni necessarie. Le query consentono di visualizzare un sottoinsieme di dati, ad esempio tutti i clienti di Londra, oppure combinazioni di dati provenienti da tabelle diverse, ad esempio informazioni relative agli ordini o ai clienti.

Query con i campi provenienti da due tabelle

Callout 1Questa query recupera l'ID dell'ordine, il nome della società, la città e le informazioni di data necessarie per i clienti di Londra che hanno inoltrato ordini in aprile.

I risultati che si desidera ottenere dal database, ovvero le maschere, le pagine di accesso ai dati (pagina di accesso ai dati: Pagina Web pubblicata da Access e connessa a un database. In una pagina di accesso ai dati è possibile visualizzare i dati memorizzati nel database, aggiungere altri dati oppure modificare e manipolare quelli esistenti. Una pagina di accesso ai dati può anche includere dati provenienti da altre origini, ad esempio Excel.) e i report, non forniscono necessariamente indicazioni su come strutturare le tabelle del database, in quanto le maschere, i report e le pagine di accesso ai dati sono spesso basati sulle query anziché sulle tabelle.

Prima di utilizzare Microsoft Access per creare tabelle, query, maschere e altri oggetti, è consigliabile elaborare una bozza della struttura su carta e rielaborarla fino a ottenere i risultati desiderati. È inoltre possibile esaminare database ben strutturati con caratteristiche simili oppure aprire il database di esempio Northwind e quindi aprire la finestra Relazioni (finestra Relazioni: Finestra in cui è possibile visualizzare, creare e modificare le relazioni tra tabelle e query.) per esaminarne la struttura.

Di seguito vengono descritti i passaggi fondamentali per la progettazione di un database.

NascondiDeterminare lo scopo del database

Il primo passaggio per la strutturazione di un database consiste nel determinarne lo scopo e le modalità di utilizzo:

·       Consultare gli utenti che utilizzeranno il database per individuare le esigenze che dovranno essere soddisfatte.

·       Elaborare delle bozze dei report che si desidera produrre.

·       Raccogliere la modulistica in uso per la registrazione dei dati, da utilizzare come modello per le maschere.

Durante la fase di definizione degli scopi del database si otterrà un elenco delle informazioni necessarie, dal quale è possibile dedurre i fatti che è necessario memorizzare nel database e la categoria di appartenenza dei vari fatti, ovvero i singoli argomenti. I fatti corrispondono ai campi (le colonne) del database e gli argomenti corrispondono alle tabelle.

NascondiDeterminare i campi necessari nel database

Ogni campo rappresenta un fatto relativo a un argomento specifico. Ad esempio, è possibile memorizzare i seguenti fatti relativi ai clienti: nome della società, indirizzo, città, paese e numero telefonico. Per ogni fatto è necessario creare un campo distinto. Nel definire i campi necessari, tenere presenti i seguenti suggerimenti a livello di strutturazione:

·       Includere tutte le informazioni necessarie.

·       Memorizzare le informazioni suddividendole al massimo dal punto di vista logico. Ad esempio, i nomi dei dipendenti vengono spesso divisi in due campi, Nome e Cognome, in modo da agevolare l'ordinamento dei dati in base al cognome.

·       Non creare campi per dati costituiti da elenchi con numerose voci. Ad esempio, se in una tabella Fornitori viene creato un campo Prodotti che include un elenco separato da virgole per ogni prodotto ricevuto dal fornitore, risulterà più difficile individuare solo i fornitori che forniscono un determinato prodotto.

·       Non includere dati derivati o calcolati (dati che siano il risultato di un'espressione (espressione: Qualsiasi combinazione di operatori matematici o logici, costanti, funzioni, nomi di campo, controlli e proprietà che restituisce un valore unico. Le espressioni possono eseguire un calcolo, modificare caratteri o eseguire dei test su dati.)). Ad esempio, se sono disponibili un campo PrezzoUnitario e un campo Quantità, non creare un campo aggiuntivo per moltiplicare i valori di questi due campi.

·       Non creare campi simili. Ad esempio, se nella tabella Fornitori vengono creati i campi Prodotto1, Prodotto2 e Prodotto3, risulterà più difficile individuare tutti i fornitori che forniscono un determinato prodotto. Inoltre, se un fornitore fornisce più di tre prodotti, sarà necessario modificare la struttura del database. È necessario un solo campo per i prodotti, se tale campo viene inserito nella tabella Prodotti anziché nella tabella Fornitori.

NascondiDeterminare le tabelle necessarie nel database

Ogni tabella deve contenere informazioni relative a un solo argomento. L'elenco dei campi fornirà indicazioni sulle tabelle necessarie. Ad esempio, se esiste un campo DataAssunzione, il relativo argomento è un dipendente, pertanto il campo appartiene alla tabella Impiegati. È possibile creare una tabella Clienti, una tabella Prodotti e una tabella Ordini.

NascondiDeterminare la tabella a cui appartiene ogni campo

Nel determinare la tabella a cui appartiene ogni campo, attenersi alle seguenti regole di strutturazione:

·       Aggiungere un campo a una sola tabella.

·       Non aggiungere un campo a una tabella se ne consegue che le stesse informazioni sono incluse in più record di tale tabella. Se un campo in una tabella include numerose informazioni duplicate, è probabile che il campo sia inserito nella tabella sbagliata.

Ad esempio, se si aggiunge il campo contenente l'indirizzo di un cliente alla tabella Ordini, è probabile che queste informazioni vengano ripetute in più record, in quanto i clienti inoltrano in genere più di un ordine. Tuttavia, se si aggiunge il campo Indirizzo alla tabella Clienti, il campo apparirà una sola volta. È questa la differenza tra una tabella di un database di Microsoft Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo. I dati sono gestiti dal modulo di gestione di database Microsoft Jet.) e una tabella di un database non relazionale, ad esempio un foglio di calcolo.

Se ogni informazione è memorizzata in una sola tabella, è possibile aggiornarla in un'unica posizione. Ciò risulta più funzionale e inoltre impedisce che voci duplicate contengano informazioni diverse.

NascondiIdentificare i campi con valori univoci in ciascun record

Per fare in modo che le informazioni memorizzate in diverse tabelle vengano collegate, ad esempio per collegare un cliente a tutti i suoi ordini, è necessario che ciascuna tabella del database comprenda un campo o un set di campi che identifichi in modo univoco ogni singolo record della tabella. Tale campo o set di campi viene definito chiave primaria (chiave primaria: Uno o più campi (colonne) il cui valore identifica in modo univoco ogni record di una tabella. Una chiave primaria non consente valori  e deve sempre avere un indice univoco. La chiave primaria viene utilizzata per collegare una tabella alle chiavi esterne di altre tabelle.).

NascondiDeterminare le relazioni tra le tabelle

Dopo avere suddiviso le informazioni nelle tabelle e avere identificato i campi chiave primaria (chiave primaria: Uno o più campi (colonne) il cui valore identifica in modo univoco ogni record di una tabella. Una chiave primaria non consente valori  e deve sempre avere un indice univoco. La chiave primaria viene utilizzata per collegare una tabella alle chiavi esterne di altre tabelle.), è necessario indicare a Microsoft Access in che modo riunire le informazioni correlate in maniera significativa. A tale scopo è necessario definire relazioni (relazione: Associazione stabilita tra campi (colonne) comuni in due tabelle. Una relazione può essere di tipo uno-a-uno, uno-a-molti o molti-a-molti.) tra le tabelle.

Può risultare utile esaminare le relazioni definite in un database esistente ben strutturato, come il database di esempio Northwind.

NascondiPerfezionare la struttura

Dopo aver strutturato le tabelle, i campi e le relazioni (relazione: Associazione stabilita tra campi (colonne) comuni in due tabelle. Una relazione può essere di tipo uno-a-uno, uno-a-molti o molti-a-molti.) necessari, esaminare la struttura e individuare le eventuali imperfezioni rimaste. È più semplice modificare la struttura del database in questa fase, piuttosto che dopo aver inserito i dati nelle tabelle.

Utilizzare Microsoft Access per creare tabelle, specificare le relazioni tra queste ultime e aggiungervi dati di esempio sufficienti che consentano di verificare la struttura. Per verificare le relazioni nel database, controllare se è possibile creare delle query per ottenere le risposte desiderate. Creare bozze delle maschere e dei report e verificare se visualizzano i dati previsti. Ricercare eventuali dati ripetuti ed eliminarli.

NascondiAggiungere dati e creare altri oggetti di database

Una volta constatato che la struttura della tabella risponde ai principi illustrati, è necessario procedere all'aggiunta di tutti i dati esistenti nelle tabelle. È possibile creare altri oggetti di database, ovvero le query (query: Interrogazione eseguita sui dati memorizzati nelle tabelle o richiesta di esecuzione di un'azione sui dati. Una query può riunire dati da più tabelle che fungono da origine dati per una maschera, report o pagina di accesso ai dati.), le maschere (maschera: Oggetto di database di Microsoft Access nel quale vengono posizionati i controlli per eseguire azioni o per immettere, visualizzare e modificare i dati dei campi.), i report (report: Oggetto di un database di Access che consente di stampare informazioni formattate e organizzate in base alla struttura definita dall'utente. Sono esempi di report i riepiloghi delle vendite, gli elenchi telefonici e le etichette postali.), le pagine di accesso ai dati (pagina di accesso ai dati: Pagina Web pubblicata da Access e connessa a un database. In una pagina di accesso ai dati è possibile visualizzare i dati memorizzati nel database, aggiungere altri dati oppure modificare e manipolare quelli esistenti. Una pagina di accesso ai dati può anche includere dati provenienti da altre origini, ad esempio Excel.), le macro (macro: Azione o gruppo di azioni che è possibile utilizzare per automatizzare le operazioni.) e i moduli (modulo: Insieme di dichiarazioni, istruzioni e routine memorizzate come singola unità denominata. Esistono due tipi di moduli: standard e di classe.).

NascondiUtilizzare gli strumenti di analisi di Microsoft Access

In Microsoft Access sono disponibili due strumenti che consentono di perfezionare la struttura di un database di Microsoft Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo. I dati sono gestiti dal modulo di gestione di database Microsoft Jet.).

·       L'Analizzatore tabelle è in grado di analizzare una struttura di una tabella alla volta, di proporre nuove strutture e relazioni (relazione: Associazione stabilita tra campi (colonne) comuni in due tabelle. Una relazione può essere di tipo uno-a-uno, uno-a-molti o molti-a-molti.), se appropriate, e di dividere una tabella in nuove tabelle correlate, se opportuno.

·       L'Analizzatore Prestazioni è in grado di analizzare l'intero database e fornire consigli e suggerimenti per migliorarlo. La procedura guidata consente inoltre di implementare tali consigli e suggerimenti.