Le chiavi sono uno dei requisiti di base di un modello di database relazionale. È ampiamente utilizzato per identificare in modo univoco le tuple (righe) nella tabella. Utilizziamo anche le chiavi per impostare relazioni tra varie colonne e tabelle di un database relazionale.
Diversi tipi di chiavi di database
- Chiave del candidato
- Chiave primaria
- Super chiave
- Chiave alternativa
- Chiave esterna
- Chiave composita
Chiave del candidato
L'insieme minimo di attributi che possono identificare in modo univoco una tupla è noto come chiave candidata. Ad esempio, STUD_NO nella relazione STUDENTE.
- È una super chiave minima.
- È una super chiave senza dati ripetuti chiamata chiave candidata.
- L'insieme minimo di attributi che possono identificare in modo univoco un record.
- Deve contenere valori univoci.
- Può contenere valori NULL.
- Ogni tabella deve avere almeno una singola chiave candidata.
- Una tabella può avere più chiavi candidate ma solo una chiave primaria.
- Il valore della chiave candidata è univoco e può essere nullo per una tupla.
- In una relazione può essere presente più di una chiave candidata.
Esempio:
esempi di macchina Moore
STUD_NO is the candidate key for relation STUDENT.>
Tabella STUDENTE
| STUD_NO | AFFRETTATO | INDIRIZZO | TELEFONO |
|---|---|---|---|
| 1 | Shyam | Delhi | 123456789 |
| 2 | Rakesh | Calcutta | 223365796 |
| 3 | Suraj | Delhi | 175468965 |
- La chiave candidata può essere semplice (con un solo attributo) o anche composta.
Esempio:
{STUD_NO, COURSE_NO} is a composite candidate key for relation STUDENT_COURSE.> Tabella STUDENTE_CORSO
| STUD_NO | INSEGNANTE_NO | CORSO_NO |
|---|---|---|
| 1 | 001 | C001 |
| 2 | 056 | C005 |
Nota: In SQL Server un vincolo univoco che ha una colonna nullable, consente il valore ' nullo ' in quella colonna solo una volta . Ecco perché l'attributo STUD_PHONE è un candidato qui, ma non può essere un valore 'null' nell'attributo della chiave primaria.
Chiave primaria
Può esserci più di una chiave candidata in relazione tra cui una può essere scelta come chiave primaria. Ad esempio, STUD_NO, così come STUD_PHONE, sono chiavi candidate per la relazione STUDENT ma STUD_NO può essere scelto come chiave primaria (solo una delle tante chiavi candidate).
- È una chiave unica.
- Può identificare solo una tupla (un record) alla volta.
- Non ha valori duplicati, ha valori univoci.
- Non può essere NULL.
- Le chiavi primarie non devono necessariamente essere una singola colonna; anche più di una colonna può essere una chiave primaria per una tabella.
Esempio:
Algoritmo k-nn
STUDENT table ->Studente(STUD_NO, SNAME, INDIRIZZO, TELEFONO), STUD_NO è una chiave primaria>
Tabella STUDENTE
| STUD_NO | AFFRETTATO | INDIRIZZO | TELEFONO |
|---|---|---|---|
| 1 | Shyam | Delhi | 123456789 |
| 2 | Rakesh | Calcutta | 223365796 |
| 3 | Suraj | Delhi | 175468965 |
Super chiave
L'insieme di attributi che possono identificare univocamente una tupla è noto come Super Key. Ad esempio, STUD_NO, (STUD_NO, STUD_NAME), ecc. Una super chiave è un gruppo di chiavi singole o multiple che identifica le righe in una tabella. Supporta valori NULL.
- L'aggiunta di zero o più attributi alla chiave candidata genera la super chiave.
- Una chiave candidata è una super chiave ma non è vero il contrario.
- I valori della Super Key possono anche essere NULL.
Esempio:
Consider the table shown above. STUD_NO+PHONE is a super key .>

Relazione tra chiave primaria, chiave candidata e super chiave
Chiave alternativa
La chiave candidata diversa dalla chiave primaria è chiamata an chiave alternativa .
- Tutte le chiavi che non sono chiavi primarie sono chiamate chiavi alternative.
- È una chiave secondaria.
- Contiene due o più campi per identificare due o più record.
- Questi valori vengono ripetuti.
- Ad esempio: - SNAME e INDIRIZZO sono chiavi alternative
Esempio:
Consider the table shown above. STUD_NO, as well as PHONE both, are candidate keys for relation STUDENT but PHONE will be an alternate key (only one out of many candidate keys).>

Chiave primaria, chiave candidata e chiave alternativa
Chiave esterna
Se un attributo può assumere solo i valori presenti come valori di qualche altro attributo, sarà a chiave esterna all'attributo a cui si riferisce. La relazione a cui si fa riferimento è chiamata relazione referenziata e l'attributo corrispondente è chiamato attributo referenziato. L'attributo referenziato della relazione referenziata dovrebbe esserne la chiave primaria.
- È una chiave che funge da chiave primaria in una tabella e agisce come
chiave secondaria in un'altra tabella. - Combina due o più relazioni (tabelle) alla volta.
- Fungono da riferimento incrociato tra le tabelle.
- Ad esempio, DNO è una chiave primaria nella tabella DEPT e una non chiave in EMP
Esempio:
Refer Table STUDENT shown above. STUD_NO in STUDENT_COURSE is a foreign key to STUD_NO in STUDENT relation.>
Tabella STUDENTE_CORSO
jdbc
| STUD_NO | INSEGNANTE_NO | CORSO_NO |
|---|---|---|
| 1 | 005 | C001 |
| 2 | 056 | C005 |
Potrebbe valere la pena notare che, a differenza della chiave primaria di una determinata relazione, la chiave esterna può essere NULL e può contenere tuple duplicate, ovvero non è necessario che segua il vincolo di unicità. Ad esempio, STUD_NO nella relazione STUDENT_COURSE non è univoco. È stato ripetuto per la prima e la terza tupla. Tuttavia, STUD_NO nella relazione STUDENT è una chiave primaria e deve essere sempre univoca e non può essere nulla.

Relazione tra chiave primaria e chiave esterna
Chiave composita
A volte, una tabella potrebbe non avere una singola colonna/attributo che identifichi in modo univoco tutti i record di una tabella. Per identificare in modo univoco le righe di una tabella è possibile utilizzare una combinazione di due o più colonne/attributi. Può ancora fornire valori duplicati in rari casi. Pertanto, dobbiamo trovare l'insieme ottimale di attributi in grado di identificare in modo univoco le righe in una tabella.
- Funziona come chiave primaria se non è presente alcuna chiave primaria in una tabella
- Due o più attributi vengono utilizzati insieme per creare a chiave composita .
- Combinazioni diverse di attributi possono fornire una precisione diversa in termini di identificazione univoca delle righe.
Esempio:
FULLNAME + DOB can be combined together to access the details of a student.>

Diversi tipi di chiavi
mysql mostra gli utenti
Conclusione
In conclusione, il modello relazionale fa uso di una serie di chiavi: le chiavi candidate consentono un'identificazione distinta, la chiave primaria funge da identificatore scelto, le chiavi alternative offrono altre scelte e le chiavi esterne creano collegamenti vitali che garantiscono l'integrità dei dati tra le tabelle. La creazione di database relazionali forti ed efficaci richiede l'applicazione ponderata di queste chiavi.
Domande frequenti sui tipi di chiavi nel modello relazionale
Q.1: Perché le chiavi sono necessarie per il DBMS?
Risposta:
Le chiavi sono uno degli aspetti importanti del DBMS. Le chiavi ci aiutano a trovare le tuple (righe) in modo univoco nella tabella. Viene utilizzato anche per sviluppare varie relazioni tra colonne o tabelle del database.
Q.2: Cos'è una chiave univoca?
Risposta:
Le chiavi univoche sono le chiavi che definiscono il record in modo univoco nella tabella. È diverso dalle chiavi primarie, poiché la chiave univoca può contenere un valore NULL ma la chiave primaria non contiene alcun valore NULL.
Q.3: Cos'è la chiave artificiale?
Risposta:
Le chiavi artificiali sono le chiavi che vengono utilizzate quando nessun attributo contiene tutte le proprietà della chiave primaria o se la chiave primaria è molto grande e complessa.