Chiave primaria nel database SQL: cos'è, vantaggi e come scegliere

Pubblicato: 2021-05-25

Sommario

Cos'è una chiave primaria?

La progettazione di un nuovo database in SQL comporta la sua quota di scelte inimitabili. Identificare una chiave primaria adatta è una delle decisioni più critiche che dovrai prendere. L'obiettivo alla base di una chiave primaria è semplice e diretto.

Una chiave primaria svolge un duplice ruolo fondamentale. Uno, aiuta a definire una relazione. Due, aiuta a implementare questa relazione. In altre parole, senza una chiave primaria, i database delle relazioni non esisterebbero. Comprensibilmente, la nozione di chiave primaria suona insolita.

E se ti dicessimo che hai utilizzato le chiavi primarie nella tua vita di tutti i giorni senza rendertene conto. In ogni momento della nostra giornata, siamo letteralmente circondati da chiavi primarie in un mondo di database, eppure le diamo per scontate. Ad esempio, considera il tuo ID studente. È un classico esempio della necessità di una chiave primaria. Allo stesso modo, ogni dipendente ha un codice aziendale univoco e ogni paese del mondo ha un nome e un codice univoci.

Leggi: Normalizzazione in SQL

Quali sono i vantaggi di una chiave primaria?

Una chiave primaria in SQL è definita come un valore singolare o una combinazione di pochi valori da una tabella. Rappresenta distintamente ogni record nella tabella. L'accesso a questo valore garantisce l'accesso tempestivo al posizionamento di un record correlato nella tabella, oltre ad altri valori dello stesso record. A questo punto, potresti avere una domanda importante da sollevare. È obbligatorio generare una chiave primaria in ogni tabella? Assolutamente no.

SQL non richiede la creazione di una chiave primaria. Tuttavia, le pratiche migliori e più efficienti di modellazione di database consigliano vivamente di creare una chiave primaria per ogni tabella in SQL. Oltre ad essere un campo di collegamento comune tra le tabelle, i vantaggi di una chiave primaria sono molteplici.

L'elenco seguente riassume i principali vantaggi di una chiave primaria:

  1. Poiché la chiave primaria funge da indice, le operazioni di database basate sulla velocità come l'ordinamento e la ricerca di record diventano più veloci.
  2. La chiave primaria consente di identificare e trovare rapidamente righe univoche in una determinata tabella del database.
  3. In modalità provvisoria, solo i record specifici possono essere identificati in modo univoco utilizzando la chiave primaria per garantire che gli aggiornamenti e l'eliminazione influiscano solo su righe specifiche anziché su volumi di dati maggiori.
  4. Se utilizzate come chiavi esterne in altre tabelle all'interno del database, aiutano a mantenere l'integrità referenziale.

Come scegliere una chiave primaria?

Le tabelle comprendono gli oggetti principali in un database SQL. Queste tabelle memorizzano i dati come record o righe. Pertanto, per identificare ogni riga di una tabella, dobbiamo trovare una colonna nella stessa tabella con un valore di input diverso per ogni riga. Ad esempio, supponiamo di avere una tabella con i dati su ogni cittadino statunitense. Una colonna con il nome 'social_security_number' aiuterebbe a distinguere una riga dall'altra in una tabella del genere.

Allo stesso modo, consideriamo un altro esempio. Supponiamo di avere una tabella di conti di risparmio presso una banca privata. La colonna dal nome 'numero_conto' può essere utilizzata per identificare righe specifiche in questa tabella in modo univoco.

In entrambi questi esempi, una volta identificata una colonna con un valore diverso per ogni riga della tabella, ovvero 'numero_sicurezza_sociale' e 'numero_account', puoi creare la tua chiave primaria. Questa chiave primaria sarà il tuo identificatore principale per ogni riga della tabella, in base alla colonna specifica che hai identificato.

Il segno di un progetto di database esemplare è quindi la chiave primaria in SQL. Pertanto, dovrebbe essere ovvio che una chiave primaria scelta deve essere univoca al 100% e deve esistere un valore univoco della chiave primaria per ogni riga di dati. In genere, gli individui dimostrano la tendenza a fare affidamento sul sistema di gestione del database stesso per generare un identificatore univoco.

Le caratteristiche di una chiave primaria forte sono le seguenti:

  1. Una chiave primaria forte è solitamente di breve durata, compatta e contiene il minor numero possibile di attributi. I tipi di dati lunghi e le chiavi composte aggiungono complessità a SQL. La lunghezza di una chiave primaria non deve superare i 900 byte.
  2. Le chiavi primarie che sono interamente numeriche aiutano a migliorare le prestazioni delle query.
  3. Evitare l'uso di caratteri speciali o una combinazione di lettere maiuscole e minuscole. Evitare di utilizzare i tipi di dati di testo perché SQL impiega molto più tempo per confrontare i valori stringa rispetto ai valori numerici.
  4. Evita le informazioni identificabili da colonne non chiave nella stessa riga come codici postali, indirizzi e-mail e numeri di previdenza sociale. Se una chiave primaria si basa su dati del mondo reale, potrebbe essere necessario modificarla in futuro, il che è una pratica di modellazione sconsigliabile. Se le chiavi primarie sono identificatori arbitrari, i dati visualizzati all'utente possono cambiare in seguito, ma non è necessario che gli identificatori lo facciano.
  5. Il valore della chiave primaria deve rimanere stabile e non essere modificato.

È fondamentale notare che le chiavi primarie utilizzano un meccanismo tecnico per garantire che ogni riga abbia un valore univoco e non vuoto nella colonna della chiave primaria. Ciò implica che il valore della chiave primaria di un record non può essere nullo. Si supponga inoltre di tentare di inserire un nuovo con un valore il cui duplicato può essere trovato nella colonna della chiave primaria. In tal caso, l'inserimento della nuova riga verrà rifiutato dalla chiave primaria.

Checkout: idee e argomenti del progetto SQL

Chiavi primarie con più di una colonna

In alcuni casi, non esiste una chiave primaria naturale a una colonna. Quando vengono utilizzate più colonne per definire una chiave primaria, è nota come chiave primaria composta da più colonne. Ad esempio, supponiamo di avere una tabella 'prenotazione' con colonne, 'nome_cliente', 'giorno_prenotazione', 'ora_prenotazione' e 'numero_di_persone'.

Qui, 'nome_cliente' non può essere utilizzato solo come chiave primaria perché, naturalmente, il cliente potrebbe avere più di una prenotazione per giorni diversi o anche lo stesso giorno. Pertanto, aggiungiamo 'reservation_day' e 'reservation_time' alla chiave primaria per rendere la combinazione univoca per ogni valore.

Questa considerazione non deve superare più di 32 colonne. Maggiore è il numero di colonne, maggiore sarà lo spazio di archiviazione richiesto. La sintassi per aggiungere una chiave primaria a più colonne è diversa dall'aggiunta di una chiave primaria a colonna singola.

Impara i corsi di ingegneria del software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Riassumendo

Hai mai chiamato l'assistenza clienti e ti è stato chiesto il tuo numero cliente? Potresti anche averlo dimenticato, quando ti chiedono il codice postale o il numero di telefono.

ti sei mai chiesto perché? Bene, la risposta breve sono le chiavi primarie. La risposta lunga è che i vantaggi di una chiave primaria sono il punto di partenza di tutti i sistemi di database. Senza le chiavi primarie, i database non funzionerebbero come funzionano ora, o per essere precisi, non funzionerebbero affatto.

Se sei curioso di conoscere SQL, lo sviluppo full-stack, dai un'occhiata al programma Executive PG di IIIT-B e upGrad in Full Stack Software Development, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1 contro 1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.

Cosa sono le chiavi primarie in SQL?

La chiave primaria è il campo con valori univoci, utilizzato per definire l'identità di un'entità. Una volta definita una chiave primaria, non può essere eliminata o modificata. In effetti, la chiave primaria è una caratteristica speciale della tabella, che diventa la base per le relazioni della tabella. La chiave primaria è sempre definita nella prima colonna di una tabella, che non può essere modificata. Svolge un ruolo molto importante nella struttura dei record logici e fisici dei dati. Poiché la chiave primaria viene utilizzata per identificare in modo univoco i record, vengono chiamati come chiavi candidate.

Quali sono le caratteristiche di una chiave primaria in SQL?

La chiave primaria è una colonna o un gruppo di colonne che identificano in modo univoco ogni record in una tabella. Una tabella può avere solo una chiave primaria. Per mantenere l'integrità, è sempre necessaria la chiave primaria. La chiave primaria deve essere composta da una combinazione di colonne diverse tra loro. Se una chiave primaria è composta da una sola colonna, è nota come chiave primaria semplice. Il motore di database utilizza la chiave primaria per individuare e aggiornare un record in un database. La chiave primaria non può essere Null perché Null significa non definito o sconosciuto. La chiave primaria può essere a colonna singola o a più colonne. I valori delle chiavi primarie possono essere univoci o non univoci. La chiave primaria può essere indicizzata. La chiave primaria aiuta il motore di database a mantenere l'integrità della tabella. La chiave primaria può essere facilmente identificata nel database.

Come scegliere una chiave primaria in SQL?

La chiave primaria è la colonna più importante di una tabella. Questi sono gli ID utilizzati dalle tue app per identificare in modo univoco ogni record. Il campo selezionato come chiave primaria deve essere univoco e non nullo. Le chiavi primarie sono in genere le migliori colonne candidate per l'indicizzazione. La chiave primaria viene utilizzata per: Riferimento univoco per ogni record nella tabella, per cercare l'id di un record di cui hai già i dati, per garantire che ogni riga abbia un valore valido nella chiave primaria. Per garantire che i dati nella tabella rimangano validi e coerenti, assicurarsi che tutti i valori della chiave primaria siano univoci e che nessun valore della chiave primaria sia nullo.