Differenza tra Superchiave, Chiave primaria e Chiave esterna

Differenza tra Superchiave, Chiave primaria e Chiave esterna

Che cos’è una Base di dati?

Una base di dati o Database è una collezione di dati gestita da un DBMS. Mentre, un sistema di gestione di basi di dati (Data Base Management System, abbreviato con DBMS) è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando loro affidabilità e privatezza.

Analizziamo dunque più in dettaglio le definizione appena introdotte.

  1. Le basi di dati possono essere grandi, nel senso che possono avere delle dimensioni davvero considerevoli. Si può affermare che al momento l’unico limite di grandezza di una base di dati è dato dalle dimensioni del disco sul quale risiede.
  2. Una base di dati deve essere condivisa, cioè devono poterci accedere diverse applicazioni e diversi utenti; ciò è molto importante perchè se esistessero varie copie degli stessi dati, queste potrebbero essere differenti tra loro; viceversa se i dati sono memorizzati in un calcolatore in modo univoco, non è possibile incorrere in disallineamenti.
  3. Le basi di dati si definiscono persistenti perchè hanno un tempo di vita limitato a quello delle singole esecuzioni dei programmi che le utilizzano. Al contrario, i dati gestiti da un programma in memoria centrale hanno vita che inizia e termina con l’esecuzione del programma.
  4. Il DBMS deve garantire affidabilità, ossia deve conservare il contenuto del database anche in caso di malfunzionamenti hardware e software. A questo scopo quindi deve permettere di effettuare backup e recupero dei dati.
  5. Il DBMS deve anche garantire la privatezza dei dati, cioè deve poter garantire privilegi diversi a seconda dell’utente che accede alla base di dati.

Caratteristiche e Differenza tra Database e Modelli di dati

I modelli di dati

Quando si parla di Database spesso si sente parlare di modello dei dati utilizzato. Un modello di dati o modello del database (in inglese data model o database model) è un’insieme di concetti utilizzati per organizzare i dati e descriverne la struttura in modo che essa risulti comprensibile a un elaboratore.

Esistono cinque tipi di modello di dati:

  1. il modello relazionale, sviluppato da Codd nel 1970, attualmente è il più diffuso e consente di organizzare i dati in un insieme di record a struttura fissa. Una relazione viene spesso rappresentata per mezzo di una tabella, le cui righe rappresentano specifici record e le cui colonne
    corrispondono ai campi del record; l’ordine delle righe e delle colonne è irrilevante;
  2. il modello gerarchico, basato sull’uso di strutture gerarchiche, definito durante gli anni Sessanta e tuttora ampiamente utilizzato;
  3. il modello reticolare, basato sull’uso di grafi e sviluppano dopo il modello gerarchico (anni Settanta);
  4. il modello ad oggetti, sviluppato negli anni Ottanta come evoluzione del modello relazionale, estende alle basi di dati il concetto della programmazione ad oggetti;
  5. il modello XML, sviluppato negli anni Novanta come rivisitazione del modello gerarchico, in cui dati non devono sottostare ad una struttura logica.

Vincoli di integrità

La struttura del modello relazionale è sicuramente molto semplice ma allo stesso tempo impone un certo grado di rigidità per garantire che non esistano in un certo momento delle istanze che non rappresentano correttamente il mondo applicativo. Per questo esistono vincoli di integrità che stabiliscono quali sono i valori assumibili dagli attributi di ogni tupla. I vincoli quindi possono essere visti come proprietà che devono essere rispettate dalle istanze perchè queste possano essere considerate valide.

I principali vincoli di integrità sono quelli che specificano:

  1. quali attributi possono assumere valore nullo.
  2. quali attributi sono chiave.
  3. quali attributi sono chiave esterne.

I valori nulli

L’esigenza di ammettere nel dominio di definizione di un attributo il valore nullo deriva dal fatto che, per varie ragioni, può capitare che non sia possibile specificare il valore dell’attributo stesso. Questo accade molto frequentemente, ad esempio quando non si conosce il valore dell’attributo, oppure quando il valore esiste ma non è disponibile.

Le chiavi nei database

I vincoli di chiave sono i più importanti del modello relazionale e garantiscono l’univocità di ogni istanza di una relazione. Si possono definire tre tipi di chiavi:

  1. una superchiave è un sottoinsieme di attributi della relazione tale che in nessuna istanza valida della relazione possano esistere due tuple diverse che coincidono su tutti gli attributi superchiave. Una superchiave quindi identifica univocamente ogni tupla;
  2. una chiave di una relazione è una superchiave minimale, nel senso che se si elimina un attributo, i rimanenti non formano più una superchiave;
  3. una chiave primaria (o primary key) è una delle possibili chiavi, di solito quella con meno attributi.

E’ evidente che una chiave primaria non può ammettere valori nulli nei suoi attributi, altrimenti non garantirebbe l’identificazione univoca di tutte le tuple della relazione.

Differenza tra Superchiave, Chiave primaria e Chiave esterna
Esempio Chiave primaria e Chiave esterna

Le chiavi esterne

Le chiavi esterne (o foreign key) sono indispensabili per rappresentare le associazioni nel modello relazione. Il loro scopo è quindi quello di associare ad una tupla di una relazione quella tupla della relazione riferita che ha il valore della chiave primaria uguale al valore della chiave esterna.

In pratica, quando due tabelle vengono associate, la chiave primaria di una tabella viene inserita nell’altra tabella come attributo il cui nome, spesso, coincide con il nome della tabella a cui tale chiave primaria fa riferimento. Il vincolo di chiave esterna viene definito anche vincolo di integrità referenziale o di foreign key.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *