Che cos'è uno schema di database?
Uno schema di database è un modo per descrivere la struttura e le relazioni delle informazioni che verranno utilizzate e conservate all'interno di un database. Alcuni schemi sono scritti in un linguaggio che può essere interpretato dal software di gestione di database (DBMS), mentre altri sono diagrammi completamente astratti. Gli elementi principali di uno schema di database sono entità e tabelle. Un'entità è un modello di dati per un oggetto in un database, mentre una tabella è una sequenza memorizzata di valori o altre entità. Come un progetto, uno schema ben progettato può essere utilizzato per vedere esattamente come viene costruita l'architettura di un database.
Gli schemi di database sono talvolta necessari per mostrare esplicitamente come è archiviato il dato e come si collega al resto del database. Un'entità è una rappresentazione di una raccolta di dati. Come qualsiasi struttura di dati, può avere un numero di campi. Tuttavia, le entità in genere hanno un campo di identificazione univoco. Questa si chiama chiave primaria.
Una chiave primaria è un collegamento a una tabella. La chiave deve essere unica tra tutti gli altri elementi nella tabella. Un esempio potrebbe essere un numero cliente per un database che tiene traccia degli acquisti in negozio. Ogni entità può avere solo una chiave primaria.
Le entità possono anche avere un numero qualsiasi di chiavi esterne. Una chiave esterna è spesso la chiave primaria di un'altra entità in un'altra tabella. Nell'esempio sopra, una chiave esterna potrebbe essere un numero d'ordine per quel cliente.
Nei database relazionali, le chiavi primarie ed esterne sono utilizzate per esprimere il concetto molto importante di relazioni uno-a-molti. Nell'esempio fornito, un cliente può avere molti ordini e numeri di ordine diversi. Il contrario non è vero, perché l'ordine può avere un solo cliente. Le relazioni uno-a-molti fanno parte del motivo per cui è necessario uno schema di database.
Un altro tipo di relazione si chiama molti-a-molti. Questa è un'istanza in cui un'entità non può solo avere molte relazioni con un singolo tipo, ma può anche essere inclusa in molti tipi da un altro tipo. Un esempio di ciò è come un numero qualsiasi di clienti può ordinare lo stesso prodotto. Allo stesso tempo, un cliente può ordinare un numero qualsiasi di prodotti. Questa relazione molti-a-molti è comune ma richiede una modellizzazione dei dati speciale per funzionare all'interno dello schema del database.
Mentre ci sono alcune convenzioni standard che vengono seguite durante la creazione di uno schema di database, ci sono anche molti modi per rappresentare i modelli di dati. Il modo esatto in cui ogni oggetto dello schema è rappresentato in un disegno astratto dipende dalla discrezione del modellatore di dati. In alcune situazioni, un sistema DBMS sarà in grado di accettare uno schema di database scritto in un modo specifico e di implementare effettivamente parte del progetto automaticamente.