Cos'è una chiave primaria?

Una donna digita su una tastiera guardando un grande monitor del computer.

Autori

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Cos'è una chiave primaria?

Una chiave primaria è costituita da una o più colonne in una tabella di database con valori che identificano in modo univoco ogni riga o record. Ad esempio, la colonna degli ID dei dipendenti potrebbe essere una chiave primaria in una tabella di informazioni sui dipendenti.
 

Le chiavi primarie svolgono un ruolo importante nei database relazionali rafforzando l'integrità dei dati e consentendo il corretto recupero dei dati. Inoltre, è possibile fare riferimento alle chiavi primarie da un altro tipo di chiave per definire le relazioni tra le tabelle nei database relazionali.

Esempi spesso citati di chiavi primarie trovate in vari database includono:

  • Numeri di patenti di guida
  • Numeri di ID dei dipendenti
  • Numeri di ID dei prodotti
  • Numeri di previdenza sociale
  • Numeri di ID degli studenti
Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Capire le chiavi e i database relazionali

Prima di esplorare i dettagli delle chiavi primarie, è utile comprendere i sistemi di database relazionali e i ruoli che le chiavi, come le chiavi primarie, rivestono nella progettazione del database.

I database relazionali ospitano dati strutturati in più tabelle, con punti dati correlati in tabelle diverse. Questi database sono gestiti attraverso sistemi di gestione dei database relazionali (RDBMS) come IBM Db2, Oracle Database, Microsoft SQL Server e sistemi di database open source come PostgreSQL e mySQL.

Lo linguaggio di query strutturato (SQL) è un linguaggio di programmazione comune utilizzato per le interazioni con i database, sebbene alcuni sistemi di gestione dei database supportino altri linguaggi.

Nel contesto dei database, una chiave è costituita da una colonna o da una raccolta ordinata di colonne, utilizzate per identificare righe di dati in una tabella. Le chiavi aiutano a organizzare i database mostrando le relazioni tra tabelle correlate, identificando record univoci e garantendo l'accuratezza e l'integrità dei dati. Questi benefici rendono più efficaci ed efficienti le query del database SQL.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Quali sono le caratteristiche di una chiave primaria?

Una chiave primaria, nota anche come chiave primaria SQL, fornisce un identificatore univoco a ciascun record associato a un valore di chiave primaria. Le caratteristiche più importanti delle chiavi primarie includono:

  • Nessun valore nullo
  • Nessun valore duplicato
  • Può assumere la forma di una colonna esistente in una tabella (chiave naturale) o essere aggiunta come nuova colonna (chiave surrogata)
  • Può includere una singola colonna o più colonne (come chiave primaria composita)

Una chiave primaria può essere una colonna esistente all'interno di una singola tabella; in questo caso si parla di chiave naturale. Tuttavia, a volte non esiste una singola colonna nella tabella che soddisfi il vincolo della chiave primaria, ovvero la regola della chiave primaria secondo cui i valori devono essere univoci e non nulli.

In tali circostanze, può essere generata una nuova colonna di valori univoci, non derivati dai dati esistenti della tabella, che funge da chiave primaria. Questa chiave primaria generata artificialmente è nota come chiave surrogata.

I sistemi di gestione dei database relazionali offrono comunemente la capacità di generare valori univoci per una colonna, utilizzabili quindi come chiave surrogata. Un esempio è la funzionalità di incremento automatico di MySQL.

Le chiavi primarie possono anche essere chiavi composte, ovvero costituite da più di una singola colonna di valori.

Le chiavi primarie composite, ovvero combinazioni univoche di colonne utilizzabili per identificare i record, possono fungere da alternativa alla generazione di chiavi surrogate. Ad esempio, una colonna con i cognomi dei clienti potrebbe essere abbinata a una colonna contenente le date di nascita per formare una chiave primaria composita.

Quali tipi di dati vengono utilizzati nelle chiavi primarie?

SQL supporta una varietà di tipi di dati, che vanno dal timestamp (rappresentazioni di date e ore) al varchar (stringhe di caratteri di lunghezza variabile). Tuttavia, non tutti i tipi di dati rappresentano una buona scelta per le chiavi primarie.

Si consiglia spesso di utilizzare colonne contenenti valori numerici, in particolare numeri interi, come chiavi primarie, poiché in genere vengono elaborate più rapidamente dai sistemi di gestione di database relazionali.

Quali sono altri tipi di chiavi importanti?

Altre chiavi utilizzate nella gestione del database includono:

  • Chiavi univoche
  • Chiavi candidate
  • Super chiavi
  • Chiavi esterne

Chiavi uniche

Le chiavi primarie sono un sottoinsieme di chiavi univoche. Le chiavi univoche seguono il cosiddetto vincolo di unicità, ovvero la regola secondo cui i valori di una chiave sono validi solo se sono unici. Sebbene tutte le chiavi primarie siano chiavi univoche, non tutte le chiavi univoche sono chiavi primarie. Questo perché, a differenza delle chiavi primarie, le chiavi univoche possono includere valori nulli.

Chiavi candidate

Le chiavi candidate sono chiavi che possono fungere da chiavi primarie perché contengono valori univoci e nessun valore nullo. La differenza tra chiavi primarie e chiavi candidate è che una tabella esistente può avere più chiavi candidate, ma una sola chiave primaria.

Super chiavi

Le super chiavi sono simili alle chiavi primarie composte, in quanto possono includere più colonne ed essere utilizzate per identificare i record. Tuttavia, le super chiavi possono anche includere più colonne o informazioni di quelle strettamente necessarie per identificare in modo univoco un record, mentre le chiavi primarie composite non includono più colonne o dati del necessario.

Chiavi esterne

Una chiave esterna in una tabella si riferisce a una chiave primaria specifica in un'altra tabella per definire una relazione tra le tabelle. Ad esempio, una chiave esterna in una tabella con informazioni sull'ordine del cliente può fare riferimento a una colonna di chiave primaria di ID cliente unici che fa parte di un'altra tabella contenente i dati del cliente. In questo modo, un ordine di un determinato cliente può essere collegato a informazioni importanti su quel cliente, come il suo indirizzo e-mail e la data di nascita.

L'importanza dei vincoli di integrità referenziale nella definizione delle relazioni tra le tabelle

Per capire come le chiavi primarie e le chiavi esterne definiscono le relazioni tra le tabelle nei database relazionali, è utile considerare i vincoli di integrità referenziale.

I vincoli di integrità referenziale, noti anche come vincoli referenziali o vincoli di chiave esterna, sono regole che richiedono che i valori di chiave esterna in una tabella corrispondano ai valori di chiave primaria in un'altra tabella.

Ad esempio, in un database dei dipendenti, un vincolo di integrità referenziale può specificare che ogni dipendente nella tabella EMPLOYEE debba appartenere a un reparto aziendale esistente elencato nella tabella DEPARTMENT.

In questo caso, la chiave primaria della tabella DEPARTMENT è una colonna che memorizza numeri univoci di reparto, mentre la chiave esterna della tabella EMPLOYEE è una colonna che memorizza gli stessi numeri univoci di reparto. La corrispondenza di queste colonne significa che le tabelle aderiscono al vincolo di chiave esterna.

Poiché la tabella DEPARTMENT ospita la chiave primaria a cui fa riferimento la chiave esterna della tabella EMPLOYEE, si ritiene che la chiave EMPLOYEE dipenda dalla tabella DEPARTMENT. A sua volta, la tabella DEPARTMENT è considerata la "tabella madre" in questa relazione tra tabelle.

I vincoli di integrità referenziale possono bloccare l'inserimento di dati errati nei database. Tali vincoli, ad esempio, impedirebbero a un utente di aggiungere un record di un dipendente alla tabella EMPLOYEE (come illustrato di seguito) se il numero di reparto in tale record non esistesse nella tabella DEPARTMENT.

Diagramma che illustra in che modo i vincoli di chiave primaria e di chiave esterna possono impedire l'inserimento di un record non valido in una tabella.

Quali altri concetti e pratiche si riferiscono alle chiavi primarie?

Indici

I sistemi di gestione di database relazionali possono creare o richiedere che la creazione di un indice unico corrisponda a ciascuna chiave primaria del database. Nel contesto della progettazione di database, un indice è un insieme di puntatori che fanno riferimento alle righe di una tabella. Gli indici possono essere utilizzati per migliorare le prestazioni, inclusa l'ottimizzazione del recupero dei dati.

Data modeling

Il data modeling fornisce una rappresentazione visiva di un blueprint, o un modello per le relazioni dei dati, tra le tabelle in un database. I modelli di dati possono includere informazioni sulle chiavi primarie e sulle chiavi esterne utilizzate per mantenere tali relazioni.

Istruzioni SQL

Le istruzioni SQL sono comandi utilizzati per interagire con i database relazionali. Nella sintassi SQL, le chiavi primarie per le tabelle possono essere assegnate o aggiunte utilizzando le istruzioni CREATE TABLE o ALTER TABLE.

Ad esempio, pensiamo a un'istruzione CREATE TABLE per una tabella di nomi dei dipendenti chiamata EMP utilizzando Db2 di IBM. I nomi delle colonne sono ID (per l'ID del dipendente) e FIRSTNME e LASTNAME (con un massimo di 15 caratteri per ciascuno). Quando si seleziona ID come chiave primaria, l'istruzione potrebbe essere simile alla seguente:

CREATE TABLE EMP
    (ID INT NOT NULL,
    FIRSTNME VARCHAR (15) NOT NULL,
    LASTNAME VARCHAR (15) NOT NULL,
  PRIMARY KEY (ID));

 

Nelle istruzioni ALTER TABLE (per le tabelle esistenti) in Db2, una clausola utilizzata per aggiungere una chiave primaria è ADD PRIMARY KEY, mentre le chiavi esterne vengono aggiunte tramite ADD CONSTRAINT in combinazione con un riferimento alla tabella madre.

Soluzioni correlate
Software e soluzioni per database

Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nell'hybrid cloud.

Esplora le soluzioni di database
Database cloud-native con IBM Db2

Esplora IBM DB2, un database relazionale che offre prestazioni, scalabilità e affidabilità elevate per l'archiviazione e la gestione di dati strutturati. È disponibile come SaaS su IBM Cloud o in self-hosting.

Scopri Db2
Servizi di consulenza per dati e analytics

Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.

Esplora i servizi di analytics
Fasi successive

Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nel cloud ibrido.

Esplora le soluzioni di database Scopri IBM Db2