Chiave estera SQL

Chiave estera SQL

“Una chiave esterna è una o più colonne in una tabella dei bambini che si riferisce a una chiave primaria di una tabella principale. Le chiavi straniere e primarie sono gli stessi valori, sebbene alcuni possano ripetere nella tabella dei bambini. La tabella principale è anche chiamata tabella di riferimento. La chiave esterna nella tabella dei figli fa riferimento la chiave primaria nella tabella di riferimento (tabella principale). Cioè, ogni valore chiave esterno nella tabella figlio è uguale a un valore chiave primario nella tabella principale. Potrebbero esserci alcune ripetizioni di valori chiave estere nella tabella dei bambini. Tuttavia, ogni valore della chiave esterna nella tabella dei figli è una chiave primaria nella tabella di riferimento. Il collegamento tra le due tabelle è la chiave estera.

Se entrambe le tabelle sono ben progettate, la relazione chiave estera elimina la dipendenza transitiva. Vedere la spiegazione della dipendenza transitiva di seguito. Questo articolo spiega le chiavi estere in relazione alla dipendenza transitiva e al database relazionale."

Illustrazione

Considera una tabella di vendita in quella che è conosciuta come la seconda forma normale. Nel tavolo, i dipendenti vendono a singoli clienti (persone). La tabella è la seguente:

Tavolo di vendita


Nella prima riga, un cliente con Customerid 1, per un negozio, nella persona di Peter Smith, con numero di telefono 444-4444, indirizzo “1, road1, Towna”, City Clifton, del New Jersey di stato, codice postale NJ 10265, entrò nel negozio e acquistato prodotti (non indicati). Questo cliente è stato servito dal dipendente (venditore), Jacob Jones. Questa vendita ha ID 1. La colonna SaleID è la chiave principale per questa tabella. Questa tabella è attualmente in quella che è conosciuta come la seconda forma normale. Il resto delle altre righe è spiegato allo stesso modo.

Dipendenza transitiva

Nota: una colonna può essere definita un attributo. In ogni riga, la svendita dipende dagli attributi: Datedold, CustomerId, CustomerName, Telefono, Indirizzo, Città, Regione, Paese postale, Paese e dipendente. Questo va bene. Il CustomerID dipende dagli attributi: personalizzazione, telefono, indirizzo, città, regione, codice postale e paese. Questi dipendenti del cliente non determinano la vendita o il dateold o il dipendente. Se il cliente dell'ID 1 arrivasse al negozio una settimana dopo, avrebbe incontrato un dipendente diverso in una data diversa, il che significherebbe una vendita diversa.

Quindi questi dipendenti del cliente devono essere estratti da questo grande tavolo, per formare un tavolo più piccolo più piccolo. Una copia di CustomerId rimane nella tabella originale poiché la vendita di svendita dipende dal Cliente ID. Il nuovo tavolo di vendita è ora chiamato tavolo da bambino. Una copia del cliente si accompagna con i dipendenti poiché dipende dai dipendenti. I due nuovi tavoli sono:

Tabella dei clienti

Tavolo di vendita


La tabella dei clienti è ora un genitore o una tabella di riferimento. Ha i nomi dei clienti e le loro credenziali. Il customerid identifica ciascuna delle sue righe. È più corto della tabella di vendita originale di 6 righe. La ripetizione (ridondanza) è stata rimossa nella tabella dei clienti. La tabella dei clienti è ora in quella che è conosciuta come la terza forma normale. Se non è stato possibile trovare un nome adatto per il tavolo del cliente, allora qualcosa è andato storto con il ragionamento.

Il tavolo delle vendite rimane così com'era, ma manca di alcune colonne. Anche questo è ora in quella che viene chiamata la terza forma normale. La vendita di vendita identifica ancora le stesse file ma con alcune celle rimosse.

Nota: nella tabella dei clienti, CustomerID è la chiave principale. Nel nuovo tavolo di vendita, CustomerId è una chiave estera. Collega entrambe le nuove tabelle. Tuttavia, nel tavolo delle vendite, non dipende dalla vendita; la svendita dipende da questo.

La dipendenza transitiva si verifica quando un attributo non prime dipende da un altro attributo o attributo non prima. Dividendo la tabella originale in due tabelle, viene rimossa una dipendenza transitiva.

La notazione della tabella per la tabella originale è:

Vendite (SaleId, DateSold, CustomerId, CustomerName, Telefono, Indirizzo, Città, Regione, Paese postale, Paese, Employe)


La notazione della tabella per le due nuove tabelle è:

Clienti (CustomerID, CustomerName, Telefono, Indirizzo, Città, Regione, Ccodi postali, Paese)


E

Vendite (Saleid, Datedold, CustomerId, dipendente)


Ogni chiave primaria ha una sola sottolinea. La chiave estera, CustomerId, nella tabella delle vendite ha una sottolineatura.

Conclusione

Una chiave esterna è una o più colonne in una tabella figlio che si riferisce a una chiave primaria di una tabella principale. Le chiavi straniere e primarie sono gli stessi valori, sebbene alcuni possano ripetere il bambino
tavolo. La tabella principale è anche chiamata tabella di riferimento. La chiave esterna nella tabella dei figli fa riferimento la chiave primaria nella tabella di riferimento (tabella principale). Cioè, ogni valore chiave esterno nella tabella figlio è uguale a un valore chiave primario nella tabella principale. Potrebbero esserci alcune ripetizioni di valori chiave estere nella tabella dei bambini. Tuttavia, ogni valore della chiave esterna nella tabella dei figli si verifica come una chiave primaria nella tabella di riferimento. Il collegamento tra le due tabelle è la chiave estera. La tabella dei bambini è anche chiamata tabella di riferimento.