Klucz obce SQL

Klucz obce SQL

„Klucz obcy to jedna lub więcej kolumn w tabeli dziecięcej, która odnosi się do klucza podstawowego tabeli nadrzędnej. Klucze obce i pierwotne mają te same wartości, choć niektóre mogą powtarzać w tabeli dziecięcej. Tabela nadrzędna jest również nazywana tabelą odniesienia. Klucz obcy w tabeli dziecięcej odnosi się do klucza podstawowego w tabeli odwołanej (tabela nadrzędna). Oznacza to, że każda wartość klucza obcego w tabeli dziecięcej jest taka sama jak wartość klucza podstawowego w tabeli nadrzędnej. W tabeli dziecięcej mogą wystąpić powtórzenia wartości kluczowych. Mimo to każda wartość klucza obcego w tabeli dziecięcej jest kluczem podstawowym w tabeli odniesionej. Związkiem między obiema tabelami jest klucz obcy.

Jeśli obie tabele są dobrze zaprojektowane, wówczas relacja kluczowa obce eliminuje zależność przechodnie. Zobacz wyjaśnienie zależności przechodniej poniżej. W tym artykule wyjaśniono klucze zagraniczne w odniesieniu do zależności przechodniej i relacyjnej bazy danych."

Ilustracja

Rozważ tabelę sprzedaży tak zwaną drugą normalną formę. W tabeli pracownicy sprzedają znanym indywidualnym klientom (osobom). Tabela jest następująca:

Tabela sprzedaży


W pierwszym rzędzie klienta z klientem 1, dla sklepu, w osoby Petera Smitha, z numerem 444-4444, adres „1, Road1, Towna”, City Clifton, z stanu New Jersey, kod pocztowy NJ NJ 10265, przyszedł do sklepu i kupił produkty (nie wskazane). Ten klient był obsługiwany przez pracownika (sprzedawcę), Jacob Jones. Ta sprzedaż ma ID 1. Kolumna SaleID jest kluczowym kluczem do tej tabeli. Ta tabela jest obecnie w tak zwanej formie drugiej normalnej. Reszta pozostałych wierszy jest podobnie wyjaśniona.

Zależność przechodnia

Uwaga: kolumnę można nazwać atrybutem. W każdym rzędzie Saleid zależy od atrybutów: datesold, customerId, customername, telefon, adres, miasto, region, kod pocztowy, kraj i pracownik. W porządku. KlientID zależy od atrybutów: CustomerName, telefonu, adresu, miasta, regionu, kodu pocztowego i kraju. Te zależne od klientów nie określają saleID, datdold ani pracownika. Gdyby klient ID 1 przyszedł do sklepu tydzień później, spotkałby się z innym pracownikiem w innym terminie, co oznaczałoby inną saleID.

Więc te zależne od klienta muszą zostać wyciągnięte z tego dużego stołu, aby utworzyć inny mniejszy stół. Kopia klientaId pozostaje w oryginalnej tabeli, ponieważ SaleID zależy od klientaId. Nowa tabela sprzedaży nazywa się teraz tabelą dziecięcą. Kopia klienta i jest w zależności od zależności, ponieważ zależy to od zależności. Dwa nowe tabele to:

Tabela klientów

Tabela sprzedaży


Tabela klientów jest teraz rodzicem lub tabelą referencyjną. Ma nazwy klientów i ich poświadczenia. Kliencid identyfikuje każdy z jego wierszy. Jest krótszy niż oryginalna tabela sprzedaży o 6 wierszy. Powtórzenie (redundancja) zostało usunięte w tabeli klientów. Tabela klientów znajduje się teraz w tak zwanej formie trzeciej normalnej formy. Jeśli nie można było znaleźć odpowiedniej nazwy dla stołu klienta, coś poszło nie tak z rozumowaniem.

Tabela sprzedaży pozostaje taka, jaka była, ale brakuje niektórych kolumn. Jest teraz w tak zwanej trzeciej formie normalnej. Saleid nadal identyfikuje te same rzędy, ale z usuniętymi niektórymi komórkami.

Uwaga: w tabeli klientów CustomerID jest kluczowym kluczem. W nowej tabeli sprzedaży CustomerId jest kluczem zagranicznym. Łączy oba nowe tabele. Jednak w tabeli sprzedaży nie zależy to od SaleID; Saleid zależy od tego.

Zależność przechodnia występuje, gdy jeden atrybut nieprime zależy od innego atrybutu lub atrybutu nieprime. Rozdzielając oryginalną tabelę na dwie tabele, zależność przechodnia jest usuwana.

Notacja tabeli dla oryginalnej tabeli to:

Sprzedaż (SaleId, datesold, CustomerId, CustomerName, telefon, adres, miasto, region, kod pocztowy, kraj, pracownik)


Notacja tabeli dla dwóch nowych tabel to:

Klienci (CustomerId, CustomerName, telefon, adres, miasto, region, kod pocztowy, kraj)


I

Sprzedaż (SaleId, datesold, CustomerId, pracownik)


Każdy klucz podstawowy ma jedno podkreślenie. Klucz zagraniczny, CustomerID, w tabeli sprzedaży ma podkreślenie.

Wniosek

Klucz obcy to jedna lub więcej kolumn w tabeli dziecięcej, która odnosi się do klucza podstawowego tabeli nadrzędnej. Klucze obce i podstawowe są tymi samymi wartościami, choć niektóre mogą powtarzać u dziecka
tabela. Tabela nadrzędna jest również nazywana tabelą odniesienia. Klucz obcy w tabeli dziecięcej odnosi się do klucza podstawowego w tabeli odwołanej (tabela nadrzędna). Oznacza to, że każda wartość klucza obcego w tabeli dziecięcej jest taka sama jak wartość klucza podstawowego w tabeli nadrzędnej. W tabeli dziecięcej mogą wystąpić powtórzenia wartości kluczowych. Mimo to każda wartość klucza obcego w tabeli dziecięcej występuje jako klucz podstawowy w tabeli odniesionej. Związkiem między obiema tabelami jest klucz obcy. Tabela dziecka jest również nazywana tabelą odniesienia.