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:
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.
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:
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.
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.
Altre chiavi utilizzate nella gestione del database includono:
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.
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.
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.
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.
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.
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.
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.
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:
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.
Usa le soluzioni di database di IBM per soddisfare varie esigenze di workload nell'hybrid cloud.
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.
Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.