Pro dotaz to není vyloženě potřeba, to je pravda. Existuje z několika důvodů:
- Jako omezení na stole, které vám zabrání vložit něco, co na nic neukazuje;
- Jako vodítko pro optimalizátor; a
- Z historických důvodů bylo více potřeba.
(1) je pravděpodobně nejdůležitější z těchto tří. Toto se nazývá referenční integrita . To znamená, že pokud je v cizím klíči nějaká hodnota, bude v nadřazené tabulce odpovídající záznam s touto hodnotou jako primárním klíčem.
Jak již bylo řečeno, ne všechny databáze podporují referenční integritu (např. tabulky MySQL/MyISAM) a ty, které ji nutně nevynucují (z důvodů výkonu).