Różnica między kluczem głównym a kluczem obcym
W relacyjnych systemach zarządzania bazami danych (RDBMS) stosowane są zarówno klucz główny, jak i klucz obcy, gdzie klucz główny jest unikalnie identyfikowanym polem, które może być użyte jako odniesienie do tabel w systemie bazy danych. Z drugiej strony, klucz obcy nie jest unikalnym polem i jest używany do łączenia się z kluczem podstawowym innej tabeli w tej samej bazie danych. W przeciwieństwie do klucza głównego, pole klucza obcego może zawierać wartości NULL.
Porównanie pomiędzy kluczem podstawowym a kluczem obcym (Infografika)
Poniżej znajduje się 6 najważniejszych różnic pomiędzy kluczem podstawowym a kluczem obcym:
Start Your Free Software Development Course
Web development, języki programowania, Testowanie oprogramowania & inne
Różnice pomiędzy kluczem podstawowym a kluczem obcym
Przedyskutujmy niektóre z głównych różnic pomiędzy kluczem podstawowym a kluczem obcym:
- Klucz podstawowy jednoznacznie identyfikuje rekordy w tabeli, natomiast klucz obcy jest używany do łączenia tabel, tj.e., Klucz podstawowy innej tabeli.
- Kolumna klucza podstawowego w tabeli nie może mieć wartości Null i zawsze powinna mieć unikalne wartości. Klucz obcy w tabeli może zawierać wartości Null, a także może posiadać zduplikowane wartości.
- Tabela może posiadać tylko jeden klucz podstawowy, podczas gdy może istnieć więcej niż jeden klucz obcy dla tabeli.
- Indeks jest tworzony automatycznie dla klucza podstawowego, podczas gdy dla klucza obcego indeksy nie są tworzone automatycznie.
- Łatwo jest usunąć ograniczenie klucza obcego, mimo że odnosi się ono do klucza podstawowego. Ale usunięcie ograniczenia klucza głównego może spowodować utworzenie rekordów z dziećmi bez rekordu rodzica.
Primary Key vs Foreign Key Comparison Table
Poniższa tabela podsumowuje porównania pomiędzy Primary Key vs Foreign Key:
Klucz główny | Klucz obcy | Key |
Klucz główny tabeli w RDBMS może być pojedynczą kolumną lub może składać się z więcej niż jednej kolumny, która jest używana do unikalnej identyfikacji każdego wiersza w tabeli. W przypadku klucza podstawowego składającego się z więcej niż jednej kolumny, dane z każdej kolumny są używane do decydowania o unikalności wiersza. Tabela w RDMBS może posiadać tylko jeden klucz główny. | Klucz obcy może być pojedynczą kolumną lub może składać się z więcej niż jednej kolumny w tabeli, która jest używana do odniesienia się do klucza głównego innej tabeli. Klucz obcy może być używany do łączenia tabel w RDBMS. W przeciwieństwie do atrybutu klucza podstawowego, tabela w RDBMS może mieć więcej niż jeden klucz obcy. |
Istnieje kilka warunków, które powinny być spełnione, aby kolumna była kluczem podstawowym w tabeli. Jednym z warunków jest to, że klucz główny powinien zawierać unikalną wartość dla każdego rekordu. Tak więc tabela w RDBMS nie może mieć zduplikowanych wartości dla dwóch wierszy dla atrybutu Primary Key. | W przeciwieństwie do Primary Key tabeli w RDBMS, klucz obcy może zawierać zduplikowane wartości. Pozwala to na posiadanie zduplikowanych wartości w wierszach tabeli dla atrybutu klucza obcego. |
Innym warunkiem, aby kolumna spełniała warunek bycia Kluczem Podstawowym jest to, że nie powinna zawierać wartości Null. | Ale Klucz Obcy tabeli w RDBMS może zawierać wartości Null. |
Klucz główny jest określony podczas definiowania tabeli i jest obowiązkowy do zdefiniowania klucza głównego. | W przeciwieństwie do klucza głównego, nie ma określonej definicji tabeli do oznaczania klucza jako klucza obcego. |
Nie jest możliwe usunięcie ograniczenia klucza podstawowego z tabeli nadrzędnej z kluczem obcym tabeli podrzędnej, która się do niego odwołuje. Tak więc tabela Child musi zostać usunięta przed usunięciem tabeli Parent. | Jeśli jednak musimy usunąć ograniczenie klucza obcego w tabeli, może ono zostać usunięte z tabeli Child, nawet jeśli odnosi się do klucza głównego tabeli Parent. |
Klucz główny jest indeksowany automatycznie, tzn. klucz główny jest przechowywany w indeksie dla tabeli, a indeks ten pomaga w zarządzaniu wymogiem unikalności, a dzięki temu wartości klucza obcego są łatwo odnoszone do odpowiadających im wartości klucza głównego. | W przypadku klucza obcego, indeksy nie są tworzone automatycznie i zazwyczaj są określane przez administratora bazy danych. |
Podsumowanie
Klucze podstawowe i obce nie tylko implementują różne typy integralności, ale również tworzą relacje między tabelami. Klucze podstawowe i obce zapewniają również, że kolumny relacji muszą zawierać pasujące wartości, a w tabeli utrzymywane są unikalne rekordy. System zarządzania relacyjną bazą danych działa sprawnie dzięki obecności klucza podstawowego i obcego.
Klucz podstawowy pomaga w automatycznym stosowaniu integralności danych, ponieważ zapobiega wstawianiu lub aktualizowaniu zduplikowanych wierszy danych. Używanie ograniczeń klucza zapobiega usuwaniu wiersza z tabeli klucza podstawowego z tabeli nadrzędnej, tak aby nie były tworzone takie rekordy dzieci, dla których nie ma rekordu rodzica. Również, gdy wiersz w odniesieniu do klucza głównego jest usuwany lub aktualizowany w tabeli nadrzędnej, integralność odniesienia jest utrzymywana przez klucz obcy. Klucze pełnią istotną rolę w tworzeniu powiązań pomiędzy tabelami bazy danych, a także w obrębie tabeli.
Zalecane artykuły
To jest przewodnik po Kluczach Podstawowych vs Kluczach Obcych. Omawiamy tutaj różnice pomiędzy kluczem podstawowym a kluczem obcym za pomocą infografiki i tabeli porównawczej. Możesz również przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej –
- WebLogic vs WebSphere
- ROLAP vs MOLAP vs HOLAP
- KluczeSQL
- Travis vs Jenkins