Co to są klucze obce w bazach danych SQL?

Co to są klucze obce w bazach danych SQL?

Klucze obce umożliwiają administratorom baz danych łatwe identyfikowanie różnych połączeń istniejących w systemie zarządzania bazą danych SQL.





SQL wykonuje operacje matematyczne na danych w systemie zarządzania bazą danych. Te bazy danych zawierają różne tabele, z których każda przechowuje dane w określonej jednostce. Jeśli posiadasz bazę danych wynajmu samochodów, podmiotem (lub tabelą) w tej bazie będą klienci (która będzie przechowywać wszystkie dane osobowe każdego klienta).





Te tabele bazy danych zawierają wiersze i kolumny, gdzie każdy wiersz zawiera rekord, a każda kolumna zawiera dane specyficzne dla atrybutów.





W systemie zarządzania bazą danych każdy rekord (lub wiersz) powinien być unikalny.

Klucze podstawowe

Chociaż zastrzeżeniem jest, że każdy rekord w tabeli powinien być odrębny, nie zawsze tak jest. Kontynuując przykład bazy danych wynajmu samochodów, jeśli baza danych zawiera dwóch klientów, z których każdy ma nazwisko John Brown, można oczekiwać, że John Brown zwróci Mercedes-Benz, którego nie wynajął.



Utworzenie klucza podstawowego złagodzi to ryzyko. W systemie zarządzania bazami danych SQL klucz podstawowy jest unikalnym identyfikatorem, który odróżnia jeden rekord od drugiego.

zobacz, kto Cię zablokował na facebooku

Dlatego każdy rekord w systemie zarządzania bazą danych SQL powinien mieć klucz podstawowy.





Korzystanie z kluczy podstawowych w bazie danych

Aby uwzględnić klucze podstawowe w systemie zarządzania bazą danych za pomocą SQL, wystarczy dodać je jako zwykły atrybut podczas tworzenia nowej tabeli. Tak więc tabela klientów będzie zawierać cztery atrybuty (lub kolumny):

  • CarOwnerID (który przechowuje klucz podstawowy)
  • Imię
  • Nazwisko
  • Numer telefonu

Związane z: Jak stworzyć tabelę w SQL





Teraz każdy rekord klienta, który wejdzie do bazy danych, będzie miał unikalny numer identyfikacyjny, a także imię, nazwisko i numer telefonu. Numer telefonu nie jest na tyle unikalny, aby był kluczem podstawowym, ponieważ chociaż jest unikalny dla jednej osoby naraz, osoba może łatwo zmienić swój numer, co oznacza, że ​​teraz należałby do kogoś innego.

Rekord z przykładem klucza podstawowego

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

Powyższy kod SQL doda nowy rekord do wcześniej istniejącego Klienci Tabela. Poniższa tabela przedstawia nową tabelę klientów z dwoma rekordami Johna Browna.

Klucz obcy

Teraz masz klucze podstawowe, które jednoznacznie odróżniają jednego najemcę od drugiego. Jedyny problem polega na tym, że w bazie danych nie ma prawdziwego związku między każdym Johnem Brownem a wynajmowanym przez niego samochodem.

Dlatego nadal istnieje możliwość popełnienia błędu. Tutaj w grę wchodzą klucze obce. Użycie klucza podstawowego do rozwiązania problemu niejednoznaczności własności jest możliwe tylko wtedy, gdy klucz podstawowy podwaja się jako klucz obcy.

Co to jest klucz obcy?

W systemie zarządzania bazą danych SQL klucz obcy jest unikalnym identyfikatorem lub kombinacją unikalnych identyfikatorów, które łączą dwie lub więcej tabel w bazie danych.

Spośród czterech istniejących systemów zarządzania bazami danych SQL, najbardziej popularny jest system zarządzania relacyjnymi bazami danych. Decydując, która tabela w relacyjnej bazie danych powinna mieć klucz obcy, należy najpierw określić, która tabela jest podmiotem, a która obiektem w ich relacji.

Wracając do bazy danych wypożyczalni samochodów, aby połączyć każdego klienta z właściwym samochodem, musisz zrozumieć, że klient (podmiot) wynajmuje samochód (obiekt). Dlatego klucz obcy powinien znajdować się w tabeli samochodów.

Kod SQL generujący tabelę z kluczem obcym różni się nieco od normy.

Przykład tworzenia tabeli z kluczem obcym

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Jak widać w powyższym kodzie, klucz obcy musi być wyraźnie zidentyfikowany jako taki, wraz z odniesieniem do klucza podstawowego, który jest połączony z nową tabelą.

dlaczego moje usb się nie wyświetla?

Związane z: Niezbędna ściągawka do poleceń SQL dla początkujących

Aby dodać rekord do nowej tabeli, musisz upewnić się, że wartość w polu klucza obcego odpowiada wartości w polu klucza podstawowego oryginalnej tabeli.

Przykład dodawania rekordu z kluczem obcym

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Powyższy kod tworzy nowy rekord w nowym Samochody tabeli, dając następujący wynik.

Tabela samochodów

Z powyższej tabeli można zidentyfikować właściwego Johna Browna, który wynajmuje Mercedes-Benz według klucza obcego w rekordzie.

Zaawansowane klucze obce

Istnieją dwa inne sposoby użycia klucza obcego w bazie danych.

Jeśli spojrzysz wstecz na powyższą definicję klucza obcego, zobaczysz, że klucz obcy może być unikalnym identyfikatorem lub kombinacją unikalnych identyfikatorów.

Wracając do przykładu bazy danych wynajmu samochodów, zobaczysz, że tworzenie nowego rekordu (tego samego samochodu) za każdym razem, gdy klient wypożycza ten samochód, jest sprzeczne z celem Samochody Tabela. Jeżeli samochody są na sprzedaż i są sprzedawane jednemu klientowi raz, istniejąca baza danych jest idealna; ale biorąc pod uwagę, że samochody są wypożyczane, istnieje lepszy sposób przedstawienia tych danych.

Klucze kompozytowe

Klucz złożony ma co najmniej dwa unikalne identyfikatory. W relacyjnej bazie danych mogą wystąpić sytuacje, w których użycie pojedynczego klucza obcego nie będzie wystarczająco reprezentować relacji istniejących w tej bazie danych.

W przykładzie wynajmu samochodu najbardziej praktycznym podejściem jest utworzenie nowej tabeli, która przechowuje szczegóły wynajmu. Aby informacje w tabeli wypożyczalni samochodów były przydatne, musi być ona połączona zarówno z tabelą samochodów, jak i klientów.

Tworzenie tabeli ze złożonymi kluczami obcymi

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Powyższy kod przedstawia ważny punkt; chociaż tabela w bazie danych SQL może mieć więcej niż jeden klucz obcy, może mieć tylko jeden klucz podstawowy. Dzieje się tak, ponieważ powinien istnieć tylko jeden unikalny sposób identyfikacji rekordu.

Aby mieć unikalny klucz, konieczne jest połączenie wszystkich trzech atrybutów w tabeli. Klient może wynająć więcej niż jeden samochód tego samego dnia (więc Identyfikator klienta oraz Data wypożyczenia nie jest dobrym połączeniem) więcej niż jeden klient może wynająć ten sam samochód tego samego dnia (więc Numer licencji oraz Data wypożyczenia nie jest dobrym połączeniem).

Jednak stworzenie klucza kompozytowego, który mówi, który klient, jaki samochód i w jakim dniu jest doskonałym unikalnym kluczem. Ten unikalny klucz reprezentuje zarówno złożony klucz obcy, jak i złożony klucz podstawowy.

jak usunąć dysk google z systemu Windows 10

Zagraniczne klucze podstawowe

O tak, obce klucze podstawowe wychodzą. Chociaż nie ma na to oficjalnej nazwy, klucz obcy może być również kluczem podstawowym w tej samej tabeli. Dzieje się tak, gdy tworzysz nową tabelę, która zawiera wyspecjalizowane dane o istniejącej encji (lub rekord w innej tabeli).

Powiedzmy, że Fred (który pracuje w wypożyczalni samochodów) znajduje się w bazie danych firmy pod tabelą pracowników. Po kilku latach zostaje superwizorem i zostaje dodany do tabeli superwizorów.

Fred nadal jest pracownikiem i nadal będzie miał ten sam numer identyfikacyjny. Tak więc identyfikator pracownika Freda znajduje się teraz w tabeli przełożonego jako klucz obcy, który stanie się również kluczem podstawowym w tej tabeli (ponieważ nie ma sensu tworzyć nowego numeru identyfikacyjnego dla Freda, ponieważ jest on przełożonym).

Teraz możesz identyfikować klucze obce w bazach danych SQL

Klucze obce łączą różne tabele w bazie danych SQL. W tym artykule możesz zobaczyć, czym jest klucz obcy, jak działa i dlaczego ważne jest, aby mieć je w bazie danych. Rozumiesz również podstawowe, a nawet bardziej złożone formy kluczy obcych.

Jeśli uważasz, że klucze obce są interesujące, będziesz miał dobry dzień, kiedy zaczniesz używać projektu i operacji selekcji do przeszukiwania baz danych SQL.

Udział Udział Ćwierkać E-mail Dowiedz się, jak korzystać z projektów i operacji wyboru w SQL

Zapoznaj się z relacyjnymi bazami danych SQL, zapoznając się z operacjami Project i Selection na tych przykładach.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Programowanie
  • SQL
  • Baza danych
O autorze Kadeisha Kean(21 opublikowanych artykułów)

Kadeisha Kean jest programistą zajmującym się pełnymi stosami oprogramowania i pisarzem technicznym/technologicznym. Ma wyraźną umiejętność upraszczania niektórych z najbardziej złożonych koncepcji technologicznych; produkcja materiału, który może być łatwo zrozumiały dla każdego nowicjusza w dziedzinie technologii. Pasjonuje się pisaniem, tworzeniem ciekawego oprogramowania i podróżowaniem po świecie (poprzez filmy dokumentalne).

Więcej od Kadeishy Kean

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować