Spiegazione di 7 tipi di chiavi nel DBMS
Pubblicato: 2021-03-12Sommario
Quali sono le chiavi nel DBMS?
Una chiave in DBMS è un attributo o un insieme di attributi che aiutano a identificare in modo univoco una tupla (o riga) in una relazione (o tabella). Le chiavi vengono utilizzate anche per stabilire relazioni tra le diverse tabelle e colonne di un database relazionale. I singoli valori in una chiave sono chiamati valori chiave.
Questo blog tratterà tutto ciò che devi sapere sulle chiavi in DBMS e sulla chiusura degli attributi a trova la chiave di qualsiasi relazione (tabella). Attenersi alla fine dell'articolo per alcune domande critiche su GATE sulle chiavi in DBMS.
Perché sono necessarie le chiavi?
Una chiave viene utilizzata nelle definizioni di vari tipi di vincoli di integrità. Una tabella in un database rappresenta una raccolta di record o eventi per una particolare relazione. Ora ci possono essere migliaia e migliaia di tali record, alcuni dei quali possono essere duplicati.
Ci dovrebbe essere un modo per identificare ogni record separatamente e in modo univoco, cioè senza duplicati. Le chiavi ci permettono di essere liberi da questa seccatura.
Prendiamo un esempio reale del database di ogni studente che studia in una scuola di ingegneria.
Quale attributo dello studente pensi che identificherà in modo univoco ciascuno di loro? Puoi fare riferimento a uno studente usando il suo nome, dipartimento, anno e sezione. Oppure puoi menzionare solo il numero di matricola dello studente e puoi ottenere tutti gli altri dettagli da quello.
Una chiave può essere una combinazione di più attributi (o colonne) o solo un singolo attributo. Il motivo principale di questo è dare a ogni record un'identità unica .
Leggi anche: DBMS vs RDBMS
Tipi di chiavi nel DBMS
Esistono sostanzialmente sette tipi di chiavi in DBMS:
- Chiave primaria
- Chiave del candidato
- Super chiave
- Chiave esterna
- Chiave composita
- Chiave alternativa
- Chiave Unica
Diamo un'occhiata a ciascuno di essi separatamente.
1. Chiave primaria
Una chiave primaria è una colonna di una tabella o un insieme di colonne che aiuta a identificare in modo univoco ogni record presente in quella tabella. Può esserci una sola chiave primaria in una tabella. Inoltre, la chiave primaria non può avere gli stessi valori ripetuti per nessuna riga. Ogni valore della chiave primaria deve essere diverso senza ripetizioni.
Il vincolo PRIMARY KEY (PK) inserito in una colonna o in un insieme di colonne non consentirà loro di avere valori nulli o duplicati. Una tabella può avere un solo vincolo di chiave primaria. Qualsiasi valore nella chiave primaria non può essere modificato da alcuna chiave esterna (spiegata di seguito) che si riferisce ad essa.
2. Super tasto
Super Key è l'insieme di tutte le chiavi che aiutano a identificare le righe in una tabella in modo univoco. Ciò significa che tutte quelle colonne di una tabella che sono in grado di identificare le altre colonne di quella tabella in modo univoco saranno tutte considerate super chiavi.
Super Key è il superset di una chiave candidata (spiegato di seguito). La chiave primaria di una tabella viene prelevata dal set di chiavi super per diventare l'attributo di identità della tabella.
3. Chiave del candidato
Le chiavi candidate sono quegli attributi che identificano in modo univoco le righe di una tabella. La chiave primaria di una tabella viene selezionata da una delle chiavi candidate. Quindi, le chiavi candidate hanno le stesse proprietà delle chiavi primarie spiegate sopra. Ci possono essere più chiavi candidate in una tabella.
4. Tasto alternativo
Come indicato sopra, una tabella può avere più scelte per una chiave primaria; tuttavia, può sceglierne solo uno. Quindi, tutte le chiavi che non sono diventate la chiave primaria sono chiamate chiavi alternative.
5. Chiave esterna
La chiave esterna viene utilizzata per stabilire relazioni tra due tabelle. Una chiave esterna richiederà che ogni valore in una colonna o un insieme di colonne corrisponda alla chiave primaria della tabella referenziale. Le chiavi esterne aiutano a mantenere i dati e l'integrità referenziale.
6. Chiave composita
La chiave composita è un insieme di due o più attributi che aiutano a identificare ogni tupla in una tabella in modo univoco. Gli attributi nel set potrebbero non essere univoci se considerati separatamente. Tuttavia, se presi tutti insieme, garantiranno l'unicità.
7. Chiave univoca
La chiave univoca è una colonna o un insieme di colonne che identificano in modo univoco ogni record in una tabella. Tutti i valori dovranno essere univoci in questa chiave. Una chiave univoca differisce da una chiave primaria perché può avere un solo valore nullo, mentre una chiave primaria non può avere valori nulli.
Dipendenze funzionali
Ora che conosciamo un diverso tipo di chiavi in DBMS, vediamo come identificarle quando viene fornita una tabella da un database. Per questo, utilizziamo il concetto di dipendenze funzionali.
Una dipendenza funzionale (FD) è un vincolo tra due insiemi di attributi. Questo vincolo vale per due tuple qualsiasi t1 e t2 in r se t1[X] = t2[X], allora hanno t1[Y] = t2[Y]. Ciò significa che il valore della componente X di una tupla determina in modo univoco il valore della componente Y.
FD è indicato come X? Y (questo viene letto come "Y dipende funzionalmente da X"). Il lato sinistro è chiamato determinante e il lato destro è chiamato dipendente.
Chiusura di un insieme di Attributi
Una chiusura è un insieme di tutti i possibili FD derivati da un dato insieme di FD. Viene anche definito un set completo di FD. Se F viene utilizzato per donare l'insieme di FD per la relazione R, la chiusura di un insieme di FD implicita da F è indicata da F+ .
Definiremo ora la chiusura di un insieme di attributi relativi a un dato insieme di FD. Aiuterà a identificare la super chiave della relazione e scoprire se un FD può essere dedotto da un determinato insieme di FD o se un FD è ridondante. Dopo aver trovato un insieme di dipendenze funzionali su una relazione, il passo successivo è trovare la Super Key per quella relazione (tabella).
Quindi scopriamo la chiusura dell'insieme di attributi per decidere se un attributo (o un insieme di attributi) di qualsiasi tabella è una chiave per quella tabella o meno. L' insieme di attributi che dipendono funzionalmente dall'attributo X è chiamato Attribute Closure of X e può essere rappresentato come X+.
Di seguito sono riportate alcune regole necessarie per determinare F+:
- Riflessività: se X è un superinsieme di Y o Y è un sottoinsieme di X, allora X ? Y.
- Aumento: Se X ? Y, poi XZ ? YZ. O se Z ⊆W e X ? Y, quindi XW ? YZ.
- Transitività: Se X ? Y e Y? Z, poi X? Z.
- Unione: Se X ? Y e X? Z, poi X? YZ.
- Decomposizione: Se X ? YZ, poi X? Y e X? Z.
- Pseudotransitività: Se X ? Y e YW? Z, poi XW ? Z.
Come trovare le chiavi candidate e le chiavi super utilizzando la chiusura degli attributi?
- Se la chiusura dell'attributo di un insieme di attributi contiene tutti gli attributi di relazione, l'insieme di attributi sarà la super chiave della relazione.
- Se nessun sottoinsieme di questo set di attributi può determinare funzionalmente tutti gli attributi di relazione, quel set sarà la chiave candidata.
Discutiamo alcune domande GATE poste in precedenza per vedere le applicazioni della chiusura degli attributi.
CANCELLO 2014
Considera lo schema di relazione R = {E, F, G, H, I, J, K, L, M, N} e l'insieme delle dipendenze funzionali {{E, F} ? {G}, {F} ? {Io, J}, {E, H} ? {K, L}, K? {M}, L? {N} su R. Qual è la chiave per R?
(A) {E, F}
(B) {MI, FA, H}
(C) {E, F, H, K, L}
(D) {E}
Approccio: verificheremo la chiusura dell'attributo di tutte le opzioni fornite. L'insieme la cui chiusura ci darà l'intera relazione R sarà la risposta corretta.
A: {E, F} + = {EFGIJ} ≠ R
B: {E, F, H} + = {EFGHIJKLMN} = R
C: {E, F, H, K, L} + = {EFGHIJKLMN} = R
D: {E} + = {E} ≠ R
Entrambe le opzioni B e C ci danno l'intero schema di relazione. Tuttavia, scegliamo l'opzione minima come risposta corretta perché una Chiave Candidata dovrebbe essere la Super Chiave minima .
Risposta: B
CANCELLO 2013
La relazione R ha otto attributi ABCDEFGH. I campi di R contengono solo valori atomici. F = {CH ? G, A? BC, B? CFH, E? A, F? EG} è un insieme di dipendenze funzionali (FD) in modo che F+ sia esattamente l'insieme di FD che valgono per R.
Quante chiavi candidate ha la relazione R?
(A) 3
(B) 4
(C) 5
(D) 6
Approccio: prenderemo l'LHS di ogni dipendenza funzionale data nella domanda e troveremo le chiusure degli attributi.
CH+ = G
A+ = ABCEFGH
B+ = ABCEFGH
E+ = ABCEFGH
F+ = ABCEFGH
Quindi vediamo che le chiusure di A, B, E, F hanno l'intera relazione ad eccezione dell'attributo D. Quindi c'è un totale di 4 chiavi candidate AD, BD, ED e FD.
Risposta: B
Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Conclusione
Le chiavi e le dipendenze funzionali svolgono un ruolo molto importante nella progettazione di un database. Questi concetti aiutano anche a trovare la differenza tra una buona e una cattiva progettazione di database. Il processo finale per rimuovere le ridondanze e rendere efficiente il database è la normalizzazione , che utilizza tutti i concetti menzionati in questo articolo.
Se sei interessato a saperne di più sullo sviluppo full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti, e incarichi, status di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Quali sono i diversi tipi di chiavi in DBMS?
Esistono diversi tipi di chiavi utilizzate in un database. La chiave primaria viene utilizzata per identificare una riga specifica in una tabella. La chiave univoca viene utilizzata per garantire che sia presente una sola voce in una tabella specifica. Una chiave esterna viene utilizzata per collegare le voci di una tabella all'altra. Una chiave composita è una raccolta di diverse colonne in una tabella che vengono utilizzate tutte insieme per identificare una riga. Queste chiavi consentono di identificare una particolare colonna di una riga di una tabella in modo accurato e univoco. Pertanto, è molto importante utilizzare le colonne accurate come chiave secondo il tuo caso d'uso.
Che cos'è una chiave esterna in DBMS?
La chiave esterna è una colonna o un insieme di colonne utilizzato per collegare le righe di una tabella alle righe di un'altra tabella. Viene utilizzato per prevenire l'incoerenza dei dati. In DBMS, la chiave esterna viene implementata utilizzando una singola colonna o un insieme di colonne (colonna logica) e il DBMS verifica che i valori in queste colonne corrispondano ai valori nelle colonne di riferimento (chiave primaria). Ad esempio, supponiamo che la tabella A e la tabella B abbiano entrambe una colonna chiamata colonna A. Puoi dire che la colonna A nella tabella A è referenziale alla colonna A nella tabella B. Questa può essere immaginata come una freccia con un valore di chiave esterna che punta a la tabella di destinazione.
Che cos'è una chiave composita in DBMS?
La chiave composita è una superchiave. È una combinazione di una o più colonne. Consente di costruire una singola chiave da una combinazione di colonne diverse. Viene anche chiamato identificatore composito, chiave composta o chiave composta. In breve, puoi utilizzare un insieme di colonne per identificare una riga univoca nella tabella, nel caso in cui non sia presente una singola colonna in grado di identificare una riga in modo univoco. In tal caso, l'insieme di tutte le colonne che utilizzerai sarà considerato una chiave composta. Quindi, si può giustamente affermare che di una chiave primaria ha più di una colonna, viene rinominata come chiave composta.