Różnica między kluczem podstawowym a kluczem obcym w DBMS

Autor: Laura McKinney
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 12 Móc 2024
Anonim
Różnica między kluczem podstawowym a kluczem obcym w DBMS - Technologia
Różnica między kluczem podstawowym a kluczem obcym w DBMS - Technologia

Zawartość


Klucze są kluczową częścią DBMS, które służą do identyfikacji i ustalenia relacji między tabelami w schemacie. Dziś omówimy dwa bardzo ważne klucze DBMS, tj. Klucz podstawowy i klucz obcy, a także omówimy różnicę między kluczem podstawowym a kluczem obcym. Po drodze powiem ci, że podstawowa różnica między kluczem podstawowym a kluczem obcym, który jest kluczem podstawowym, jest jednym z wybranych kluczy kandydujących przez projektanta bazy danych, natomiast klucz obcy jest kluczem, który odnosi się do klucza podstawowego innej relacji.

Istnieje wiele innych różnic między tymi dwoma, zidentyfikujmy te różnice za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaGłówny kluczKlucz obcy
PodstawowyKlucz podstawowy to wybrany klucz kandydujący, który jednoznacznie definiuje krotkę w relacji.Klucz obcy w tabeli odnosi się do klucza podstawowego innej tabeli.
ZEROWartość klucza podstawowego nigdy nie może mieć wartości NULL.Klucz obcy przyjmuje wartość NULL.
DuplikowaćŻadne dwie krotki w relacji nie zawierają zduplikowanych wartości dla atrybutu klucza podstawowego.Krotki mogą przenosić podwójną wartość atrybutu klucza obcego.
ZasięgMoże istnieć tylko jeden podstawowy klucz relacji.W relacji może znajdować się wiele kluczy obcych.
Stół tymczasowyOgraniczenie klucza podstawowego można zdefiniować w tabelach tymczasowych.Ograniczenia klucza obcego nie można zdefiniować w tabelach tymczasowych.
Indeks klastrowyDomyślnie klucz podstawowy jest indeksowany w klastrze.Klucz obcy nie jest automatycznie indeksowany w klastrach; należy to zrobić ręcznie.
WprowadzenieMożemy wstawić wartość do atrybutu klucza podstawowego, nawet jeśli odwołujący się klucz obcy nie ma tej wartości w kolumnie.Nie możemy wstawić wartości do klucza obcego, jeśli ta wartość nie jest obecna w odnośnej kolumnie klucza podstawowego.
UsunięciePrzed usunięciem wartości klucza podstawowego upewnij się, że wartość nie jest nadal obecna w kolumnie klucza obcego odniesienia tabeli odwołań.Możesz usunąć wartość z kolumny klucza obcego bez zawracania sobie głowy, czy wartość ta jest obecna w odnośnej kolumnie klucza podstawowego relacji odniesienia.


Definicja klucza podstawowego

Klucz podstawowy wyjątkowo definiuje krotki w relacji. Może to być pojedynczy atrybut w relacji lub zestaw atrybutów w relacji. Wartość atrybutu klucza podstawowego powinna nigdy lub rzadko zmieniane. Ponieważ jest to zasada, należy zidentyfikować dowolny rekord w bazie danych. Zmiana dowolnej wartości atrybutu klucza podstawowego spowoduje zamieszanie.

Projektant bazy danych wybiera jeden z klucze kandydatów jako klucz podstawowy, biorąc pod uwagę kilka punktów. Pierwsza uwaga jest wartością atrybutu klucza podstawowego, której nigdy nie może zawierać ZERO wartość. Ponieważ jeśli wartość atrybutu klucza podstawowego zawiera NULL, oznacza to, że nie możemy zidentyfikować tego rekordu w tabeli. Narusza także ograniczenie integralności jednostki. Drugie zagadnienie to nie ma dwóch krotek w tabeli może zawierać podobnie wartość atrybutu klucza podstawowego, ponieważ naruszałoby to wyjątkowość krotek.


Może być tylko jeden klucz podstawowy dla każdego relacja. Klucz podstawowy jest domyślnie indeksowane przez klaster, co oznacza, że ​​wszystkie krotki w tabeli są sortowane na podstawie wartości atrybutów kluczy głównych. Ograniczenie klucza podstawowego można zdefiniować na stół tymczasowy. Tabele pośrednie utworzone podczas wykonywania zapytania są nazywane tabelami tymczasowymi.

Podczas usuwanie krotka z relacji, należy uważać, aby wartość klucza podstawowego usuniętej krotki nie była nadal obecna w kolumnie klucza obcego relacji odniesienia. Natomiast wprowadzenie nie ma żadnych ograniczeń na klucz podstawowy.

Klucz podstawowy tabeli, gdy jest używany w innej tabeli, staje się kluczem obcym dla tej tabeli. Ograniczenia klucza obcego omówiono poniżej.

Definicja klucza obcego

Kiedy relacja R1, wśród jego atrybutów ma podstawowy klawisz innej relacji R2, wówczas ten atrybut jest wywoływany Klucz obcy dla relacji R1. Relacja R1 zawierający klucz obcy nazywa się odniesienie do relacji ponieważ odnosi się do klucza podstawowego relacji R2 i relacji R2 nazywa się referencyjna relacja.
W przeciwieństwie do klucza podstawowego, klucz obcy może zaakceptować ZERO wartości, ponieważ nie ma za zadanie wyraźnie identyfikować rekordu w relacji, ponieważ mamy do tego podstawowy klucz. W ten sam sposób akceptowany jest także klucz obcy zduplikowane wartości.

Relacja może mieć wielokrotność klucze obce, ponieważ mogą mieć różne atrybuty, które są kluczami podstawowymi w różnych relacjach. Ograniczenie klucza obcego może nie być zdefiniowanym w stoły tymczasowe, ani klucz obcy to indeksowane przez klaster atrybut.

Podczas wstawianie wartość do kolumny klucza obcego relacji odniesienia, upewnij się, że wartość wstawiania musi być obecna w kolumnie klucza podstawowego relacji odniesienia. Podczas gdy nie ma żadnych ograniczeń usuwanie wartość z kolumny klucza obcego.

  1. Podstawowy to zestaw atrybutów / klucz kandydujący, który wyraźnie identyfikuje rekord w relacji. Jednak klucz obcy w tabeli odnosi się do klucza podstawowego innej tabeli.
  2. Żaden atrybut klucza podstawowego nie może zawierać wartości NULL, natomiast atrybut klucza obcego może przyjmować wartość NULL.
  3. Klucz podstawowy powinien mieć unikalne wartości atrybutów, natomiast klucz obcy może mieć zduplikowane wartości atrybutów.
  4. W relacji może znajdować się wiele kluczy obcych, ale relacja ma tylko jeden klucz podstawowy.
  5. Ograniczenie klucza podstawowego można zastosować do tabel tymczasowych. Ograniczenia klucza obcego nie można jednak zastosować do tabel tymczasowych.
  6. Klucz podstawowy jest domyślnie indeksowany w klastrze, natomiast klucz obcy nie jest indeksowany automatycznie w klastrze, ale można to zrobić ręcznie.
  7. Podczas wstawiania wartości do kolumny klucza obcego upewnij się, że wartość atrybutu wstawiania jest obecna w odnośnej kolumnie klucza podstawowego. Jednak nie ma ograniczeń dotyczących wstawiania w kolumnie klucza podstawowego.
  8. Podczas usuwania wartości z kolumny klucza podstawowego upewnij się, że usunięta wartość atrybutu nie jest obecna w odnośnej kolumnie klucza obcego. Jednak nie ma ograniczeń co do usuwania wartości z kolumny klucza obcego.

Wniosek:

Zarówno klucz podstawowy, jak i klucz obcy są niezbędne dla schematu. Klucz podstawowy definiuje każdą krotkę w relacji w sposób unikalny, natomiast klucz obcy służy do utworzenia połączenia między dwiema relacjami.