Predmet:Primarni kljuc
U dizajnu relacijskih baza podataka
jedinstveni ključ ili primarni ključ ključni je kandidat koji jedinstveno identificira svaku vrstu u tablici. Jedan ili primarni ključ može se sastojati od jednog ili više stupaca. Dvije različite vrste u tablici ne mogu imati istu vrijednost u tim stupcima. Ovisno o dizajnu, tablica može imati proizvoljni broj jedinstvenih ključeva, ali samo jedan primarni ključ.
Jedinstveni ključ mora jedinstveno identificirati sve moguće tipove koji se mogu pojaviti u tablici, a ne samo postojeće. Primjeri jedinstvenih ključeva su JMBG (identifikacija osobe) ili ISBN (identifikacija knjige). Ime i prezime ne predstavljaju jedinstveni ključ osobe jer ne identificiraju osobu jedinstveno.
Primarni ključ je poseban slučaj jedinstvenog ključa. Glavna razlika je u tome što s jedinstvenim ključevima implicitno ograničenje NOT NULL nije automatski osigurano dok je s primarnim ključevima. Stoga vrijednosti u stupcima s jednim ključem mogu imati vrijednost NULL. Još jedna razlika je što se primarni ključ definira posebnom sintaksom.
Primarni ključ omogućuje da svi slogovi u jednoj tabeli budu povezani sa zapisima u drugoj tabeli. Ako tabela nije uređena na neki drugi način, primarni ključ određuje njeno uređenje.
Primarni ključ od više polja koristi se kada vrednost u polju koje bi trebalo da bude primarni ključ nije jedinstvena.
Prilikom povezivanja tabela najčešće se koristi zavisnost jedan prema više. Ova zavisnost se koristi kada jednom slogu prve (primarne) tabele odgovara više slogova u drugoj (sekundarnoj) tabeli.
Kod ovakve zavisnosti primarna tabela mora imati primarni ključ jedinstvene vrednosti.
Strani ključevi mogu se pozivati na jedinstvene i primarne ključeve.
Strani ključ je polje u sekundarnoj tabeli sa kojim se vrši povezivanje i ne mora imati jedinstvenu vrednost.
Relacijski model, izražen relacijskom algebrom i relacijskim računicama, ne pravi razliku između primarnih ključeva i ostalih vrsta ključeva. Primarni ključevi dodani su SQL standardu prvenstveno kako bi olakšali programerima.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.