Kurze Antwort: Ja, es kann NULL oder doppelt sein.
Ich möchte erklären, warum ein Fremdschlüssel möglicherweise null oder eindeutig oder nicht eindeutig sein muss. Denken Sie zuerst daran, dass ein Fremdschlüssel lediglich erfordert, dass der Wert in diesem Feld zuerst in einer anderen Tabelle (der übergeordneten Tabelle) vorhanden sein muss. Das ist alles, was ein FK per Definition ist. Null ist per Definition kein Wert. Null bedeutet, dass wir den Wert noch nicht kennen.
Lassen Sie mich Ihnen ein Beispiel aus dem wirklichen Leben geben. Angenommen, Sie haben eine Datenbank, in der Verkaufsvorschläge gespeichert sind. Angenommen, jedem Angebot sind nur ein Verkäufer und ein Kunde zugeordnet. Ihre Angebotstabelle enthält also zwei Fremdschlüssel, einen mit der Kunden-ID und einen mit der Vertriebsmitarbeiter-ID. Zum Zeitpunkt der Erstellung des Datensatzes wird jedoch nicht immer ein Vertriebsmitarbeiter zugewiesen (da noch niemand daran arbeiten kann), sodass die Kunden-ID ausgefüllt wird, die Vertriebsmitarbeiter-ID jedoch möglicherweise null ist. Mit anderen Worten, normalerweise benötigen Sie die Fähigkeit, eine Null-FK zu haben, wenn Sie den Wert zum Zeitpunkt der Dateneingabe möglicherweise nicht kennen, aber andere Werte in der Tabelle kennen, die eingegeben werden müssen. Um Nullen in einer FK zuzulassen, müssen Sie im Allgemeinen nur Nullen in dem Feld zulassen, in dem sich die FK befindet. Der Nullwert unterscheidet sich von der Vorstellung, dass es sich um einen FK handelt.
Ob es eindeutig ist oder nicht, hängt davon ab, ob die Tabelle eine Eins-Eins- oder eine Eins-Viele-Beziehung zur übergeordneten Tabelle hat. Wenn Sie nun eine Eins-zu-Eins-Beziehung haben, ist es möglich, dass Sie alle Daten in einer Tabelle haben, aber wenn die Tabelle zu breit wird oder wenn sich die Daten auf ein anderes Thema beziehen (das Beispiel für Mitarbeiter - Versicherung @tbone) zum Beispiel), dann möchten Sie separate Tabellen mit einem FK. Sie möchten diese FK dann entweder auch zur PK (die die Eindeutigkeit garantiert) oder zu einer eindeutigen Einschränkung machen.
Die meisten FKs sind für eine Eins-zu-Viele-Beziehung und das ist es, was Sie von einem FK erhalten, ohne eine weitere Einschränkung für das Feld hinzuzufügen. Sie haben also beispielsweise eine Auftragstabelle und die Bestelldetailtabelle. Wenn der Kunde zehn Artikel gleichzeitig bestellt, verfügt er über einen Bestell- und zehn Bestelldetailsätze, die dieselbe Bestell-ID wie der FK enthalten.