Le chiavi della base di dati

Cosa sono le chiavi

In un database relazionale una chiave è uno o più attributi che identificano le tuple di una tabella (relazione) in modo univoco.

Essendo associate in modo univoco alle tuple, in una chiave non possono esserci valori duplicati.

Un esempio pratico

In un'anagrafica dei dipendenti di un'azienda l'attributo matricola è una chiave perché identifica in modo univoco ogni lavoratore.

un esempio di chiave

Anche l'insieme di attributi Cognome+Nome+Data di nascita sono una chiave.

un esempio di chiave con più attributi

In una tabella possono esserci più chiavi. In genere si sceglie la chiave più efficace e semplice da gestire.

Ad esempio, a parità di efficacia tra matricola e cognome+nome+data è più semplice usare l'attributo matricola come chiave.

Nota. L'attributo cognome, invece, non può essere una chiave perché al suo interno ci sono valori duplicati. Due persone si chiamano Rossi.

A cosa servono le chiavi?

Le chiavi permettono l'accesso ai dati della tabella(relazione) perché identificano univocamente le tuple (record) della tabella.

Pertanto, ogni tabella deve avere almeno una chiave

Una tabella è una relazione matematica.

Le relazioni matematiche non contegono elementi identici.

Quindi, la tabella relazionale può contenere soltanto tuple diverse tra loro.

Se le tuple sono tutte diverse tra loro, allora esiste almeno un attributo o un insieme di attributi con tutti valori diversi (chiave).

Nota. Se non ci fosse, nella tabella ci sarebbero alcune tuple identiche. E questo non è possibile in una relazione matematica.

La chiave primaria

Cos'è la chiave primaria

In una tabella relazionale la chiave primaria è una chiave che non contiene valori nulli (Null).

La chiave primaria permette di identificare univocamente tutte le tuple di una tabella in modo rapido, semplice ed efficace.

un esempio di chiave primaria

In una tabella possono esserci molte chiavi ma soltanto una è anche una chiave primaria.

Tutte le altre chiavi sono dette chiavi secondarie.

Esempio. In un'anagrafica dei dipendenti di un'azienda la matricola del lavoratori è la chiave primaria. In una base dati di veicoli la targa è la chiave primaria. In un'anagrafica di contribuenti la chiave primaria è il codice fiscale. E via dicendo.

E se in una tabella non esiste una chiave primaria?

Se in una tabella non esiste un attributo in grado di diventare chiave primaria, allora devo aggiungere alla tabella un nuovo attributo apposito per svolgere questo scopo.

Ad esempio, in genere si aggiunge un attributo codice (Cod) o un attributo identificatore (Id).

La superchiave

Cos'è una superchiave

Un insieme di attributi è una superchiave se e solo se non contiene tuple duplicate al suo interno.

Qual è la differenza tra chiave e superchiave

Una chiave è sempre una superchiave ma non vale l'inverso.

Una superchiave non è detto che sia anche una chiave.

Una superchiave è una chiave se è una superchiave minimale ossia se non contiene altre superchiavi al suo interno.

Un esempio pratico

L'attributo matricola è una superchiave.

un esempio di superchiave minimale

E' anche una superchiave minimale perché non esistono altre superchiavi al suo interno.

Pertanto, l'attributo matricola è una chiave.

Esempio 2

Gli attributi cognome + nome sono un'altra superchiave.

un esempio di superchiave minimale

Non essendoci altre superchiavi al suo interno, è una superchiave minimale.

Quindi è un'altra una chiave.

Esempio 3

Gli attributi matricola + cognome + nome sono un'altra superchiave.

un esempio di superchiave

Non è una superchiave minimale perché ci sono altre superchiavi al suo interno ossia la superchiave matricola.

Quindi non è una chiave.

Alcune osservazioni sulle chiavi e sulle superchiavi

Una volta compresa la differenza tra chiave e superchiave si deducono due osservazioni

  • Ogni tabella ha sempre almeno una superchiave. Nel modello relazionale una tabella non può contenere due tuple uguali. Pertanto, l'insieme degli attributi della tabella è sicuramente una superchiave. Da questo si deduce che ogni tabella e ogni schema di relazione ha almeno una superchiave.
  • Ogni tabella ha almeno una chiave. Ogni tabella ha una superchiave e ogni superchiave ha al suo interno almeno una superchiave minimale ossia una chiave. Pertanto, in una tabella (relazione) è sempre presente almeno una chiave.

E così via

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Basi di dati