Krótka odpowiedź: Tak, może być NULL lub zduplikowana.
Chcę wyjaśnić, dlaczego klucz obcy może być zerowy lub może być unikatowy. Najpierw pamiętaj, że klucz obcy wymaga po prostu, aby wartość w tym polu najpierw istniała w innej tabeli (tabeli nadrzędnej). To wszystko, co FK jest z definicji. Null z definicji nie jest wartością. Null oznacza, że nie wiemy jeszcze, jaka jest wartość.
Pozwól, że dam ci przykład z prawdziwego życia. Załóżmy, że masz bazę danych, w której przechowywane są oferty sprzedaży. Załóżmy ponadto, że do każdej oferty przypisany jest tylko jeden sprzedawca i jeden klient. Tak więc tabela propozycji miałaby dwa klucze obce, jeden z identyfikatorem klienta i jeden z identyfikatorem przedstawiciela handlowego. Jednak w momencie tworzenia rekordu przedstawiciel handlowy nie zawsze jest przypisywany (ponieważ nikt nie jest jeszcze w stanie nad nim pracować), więc identyfikator klienta jest wypełniony, ale identyfikator przedstawiciela handlowego może być zerowy. Innymi słowy, zwykle potrzebujesz zdolności zerowego FK, gdy możesz nie znać jego wartości w momencie wprowadzania danych, ale znasz inne wartości w tabeli, które należy wprowadzić. Aby zezwolić na wartości zerowe w FK, ogólnie wszystko, co musisz zrobić, to zezwolić na wartości zerowe w polu, które ma FK. Wartość null jest oddzielna od idei, że jest to FK.
To, czy jest unikalne, czy nie, dotyczy tego, czy tabela ma relację jeden-jeden, czy jeden-wiele z tabelą nadrzędną. Teraz, jeśli masz relację jeden-jeden, możliwe, że możesz mieć wszystkie dane w jednej tabeli, ale jeśli tabela staje się zbyt szeroka lub jeśli dane dotyczą innego tematu (pracownik - przykład ubezpieczenia @tbone podał na przykład), to chcesz osobne tabele z FK. Następnie chciałbyś, aby ten FK był również PK (co gwarantuje wyjątkowość) lub nałożył na niego unikalne ograniczenie.
Większość FK jest przeznaczona dla relacji jeden do wielu i to właśnie otrzymujesz od FK bez dodawania dalszych ograniczeń w terenie. Masz więc na przykład tabelę zamówień i tabelę szczegółów zamówienia. Jeśli klient zamawia jednocześnie dziesięć produktów, ma on jedno zamówienie i dziesięć rekordów szczegółowych zamówień, które zawierają ten sam identyfikator zamówienia co FK.