Accesso MS - Relazione dei dati

In questo capitolo, comprenderemo le basi della correlazione dei dati. Prima di parlare e creare relazioni tra dati diversi, esaminiamo perché ne abbiamo bisogno. Tutto torna alla normalizzazione.

Normalizzazione

La normalizzazione del database, o semplicemente la normalizzazione, è il processo di organizzazione di colonne (attributi) e tabelle (relazioni) di un database relazionale per ridurre al minimo la ridondanza dei dati. È il processo di suddivisione dei dati su più tabelle per migliorare le prestazioni, l'integrità e la longevità complessive.

  • La normalizzazione è il processo di organizzazione dei dati in un database.

  • Ciò include la creazione di tabelle e la creazione di relazioni tra tali tabelle in base a regole progettate sia per proteggere i dati che per rendere il database più flessibile eliminando la ridondanza e la dipendenza incoerente.

Esaminiamo ora la seguente tabella che contiene i dati, ma il problema è che questi dati sono abbastanza ridondanti, il che aumenta le possibilità di errori di battitura e frasi incoerenti durante l'immissione dei dati.

CustID Nome Indirizzo Cookie Quantità Prezzo Totale
1 Ethel Smith 12 Main St, Arlington, VA 22201 S Stracciatella 5 $ 2,00 $ 10.00
2 Tom Wilber 1234 Oak Dr., Pekin, IL 61555 Choc Chip 3 $ 2,00 $ 6,00
3 Ethil Smithy 12 Main St., Arlington, VA 22201 Stracciatella 5 $ 2,00 $ 10.00

Per risolvere questo problema, dobbiamo ristrutturare i nostri dati e suddividerli in più tabelle per eliminare alcune di quelle ridondanze, come mostrato nelle tre tabelle seguenti.

Qui, abbiamo una tabella per i clienti, la seconda è per gli ordini e la terza è per i cookie.

Il problema qui è che la semplice divisione dei dati in più tabelle non aiuta a capire come i dati di una tabella si relazionano ai dati di un'altra tabella. Per connettere i dati in più tabelle, dobbiamo aggiungere chiavi esterne al fileOrders tavolo.

Definizione delle relazioni

Una relazione funziona abbinando i dati nelle colonne chiave di solito colonne con lo stesso nome in entrambe le tabelle. Nella maggior parte dei casi, la relazione corrisponde alla chiave primaria di una tabella, che fornisce un identificatore univoco per ogni riga, con una voce nella chiave esterna nell'altra tabella. Esistono tre tipi di relazioni tra le tabelle. Il tipo di relazione che viene creato dipende da come vengono definite le colonne correlate.

Esaminiamo ora i tre tipi di relazioni:

Relazioni uno-a-molti

Una relazione uno-a-molti è il tipo di relazione più comune. In questo tipo di relazione, una riga nella tabella A può avere molte righe corrispondenti nella tabella B, ma una riga nella tabella B può avere solo una riga corrispondente nella tabella A.

Ad esempio, le tabelle Clienti e Ordini hanno una relazione uno-a-molti: ogni cliente può effettuare molti ordini, ma ogni ordine proviene da un solo cliente.

Relazioni molti-a-molti

In una relazione molti-a-molti, una riga nella tabella A può avere molte righe corrispondenti nella tabella B e viceversa.

Si crea una tale relazione definendo una terza tabella, chiamata a junction table, la cui chiave primaria è costituita dalle chiavi esterne della tabella A e della tabella B.

Ad esempio, la tabella Clienti e la tabella Cookie hanno una relazione molti-a-molti definita da una relazione uno-a-molti da ciascuna di queste tabelle alla tabella Ordini.

Rapporti uno-a-uno

In una relazione uno a uno, una riga nella tabella A non può avere più di una riga corrispondente nella tabella B e viceversa. Viene creata una relazione uno a uno se entrambe le colonne correlate sono chiavi primarie o hanno vincoli univoci.

Questo tipo di relazione non è comune perché la maggior parte delle informazioni correlate in questo modo sarebbero tutte in una tabella. Potresti usare una relazione uno-a-uno per -

  • Dividi una tabella in molte colonne.
  • Isolare parte di una tabella per motivi di sicurezza.
  • Memorizza i dati che hanno vita breve e possono essere facilmente eliminati semplicemente eliminando la tabella.
  • Memorizza le informazioni che si applicano solo a un sottoinsieme della tabella principale.