U kontekstu relacionih baza podataka, strani ključ je referencijalno ograničenje između dve tabele.[1] Strani ključ identifikuje kolonu ili skup kolona u jednoj (referencirajućoj) tabeli, koja referiše na kolonu ili skup kolona u drugoj (referenciranoj) tabeli. Kolone u referencirajućoj tabeli moraju da budu primarni ključ ili kandidat za ključ u referenciranoj tabeli. Vrednosti referencirajućih kolona iz jednog reda moraju da se pojavljuju u tačno jednom redu referencirane tabele. Stoga, red u referencirajućoj tabeli ne sme da sadrži vrednosti koje ne postoje u referenciranoj tabeli (izuzev možda vrednosti NULL). Na ovaj način reference mogu da povezuju podatke iz različitih tabela. Strani ključ predstavlja suštinski deo normalizacije baza podataka. Više redova u referencirajućoj tabeli može da pokazuje na isti red u referenciranoj tabeli.

Referencirajuća i referencirana tabela mogu da budu ista tabela, to jest strani ključ može da pokazuje na istu tabelu. Takav strani ključ je u SQL:2003 poznat kao samoreferencirajući ili rekurzivni strani ključ.

Jedna tabela može da ima više stranih ključeva, i svaki strani ključ može da pokazuje na različitu tabelu. O integritetu svakog stranog ključa se sistem baze podataka stara pojedinačno.

Neispravni odnosi strani ključ/primarni ključ ili neforsiranje sprovođenja tih odnosa često predstavljaju uzrok mnogih problema pri modeliranju podataka.

Vidi još

uredi

Reference

uredi

Spoljašnje veze

uredi