Klucze obce umożliwiają administratorom baz danych łatwą identyfikację 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 dotyczące określonej jednostki. Jeśli masz bazę danych wypożyczalni samochodów, podmiotem (lub tabelą) w tej bazie będą klienci (którzy będą przechowywać wszystkie dane osobowe każdego klienta).
Te tabele bazy danych zawierają wiersze i kolumny, przy czym 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żenie jest takie, że każdy rekord w tabeli powinien być inny, nie zawsze tak jest. Kontynuując przykład bazy danych wypożyczalni samochodów, jeśli baza danych zawiera dwóch klientów, z których każdy ma na imię „John Brown”, można było oczekiwać, że John Brown zwróci Mercedes-Benz, którego nie zrobił wynajem.
Utworzenie klucza podstawowego zmniejszy to ryzyko. W systemie zarządzania bazami danych SQL kluczem podstawowym jest unikalny identyfikator, który odróżnia jeden rekord od drugiego.
Dlatego każdy rekord w systemie zarządzania bazą danych SQL powinien mieć klucz podstawowy.
Używanie kluczy podstawowych w bazie danych
Aby uwzględnić klucze podstawowe w systemie zarządzania bazą danych za pomocą języka SQL, można po prostu dodać go jako normalny atrybut podczas tworzenia nowej tabeli. Zatem tabela klientów będzie zawierała cztery atrybuty (lub kolumny):
- CarOwnerID (który będzie przechowywać klucz podstawowy)
- Imię
- Nazwisko
- Numer telefonu
Związane z: Jak utworzyć tabelę w języku SQL
Teraz każdy rekord klienta wchodzący 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
/ * tworzy nowy rekord w tabeli klientów * /
WSTAW WARTOŚCI KLIENTÓW
('0004',
'Jan',
'Brązowy',
'111-999-5555');
Powyższy kod SQL doda nowy rekord do już istniejącego Klienci stół. Poniższa tabela przedstawia nową tabelę klientów z dwoma rekordami Johna Browna.
Klucz obcy
Teraz masz klucze główne, które w wyjątkowy sposób odróżniają jednego najemcę od drugiego. Jedynym problemem jest to, że w bazie danych nie ma prawdziwego związku między każdym Johnem Brownem a wypożyczonym przez niego samochodem.
Dlatego nadal istnieje możliwość popełnienia błędu. W tym miejscu do gry wchodzą klucze obce. Użycie klucza podstawowego do rozwiązania problemu niejednoznaczności własności jest możliwe tylko wtedy, gdy klucz podstawowy pełni funkcję klucza obcego.
Co to jest klucz obcy?
W systemie zarządzania bazą danych SQL klucz obcy to unikalny identyfikator lub kombinacja unikatowych 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 najpopularniejszy 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 jest obiektem w ich relacji.
Wracając do bazy danych wypożyczalni samochodów, aby podłączyć każdego klienta do odpowiedniego samochodu, 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.
Tworzenie tabeli z przykładem klucza obcego
/ * tworzy nową tabelę samochodów w bazie danych wypożyczalni samochodów * /
UTWÓRZ TABELĘ Samochody
(
LicenseNumber varchar (30) NOT NULL PRIMARY KEY,
CarType varchar (30) NIE NULL,
ID klienta varchar (30) KLUCZOWE REFERENCJE Klienci (ID klienta)
);
Jak widać w powyższym kodzie, klucz obcy musi być jawnie zidentyfikowany jako taki, wraz z odniesieniem do klucza podstawowego, który jest łączony z nową tabelą.
Związane z: The Essential SQL Commands Cheat Sheet 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.
Dodawanie rekordu z przykładem klucza obcego
/ * tworzy nowy rekord w tabeli samochodów * /
WSTAW WARTOŚCI W SAMOCHODACH
('100012',
„Mercedes-Benz”,
'0004');
Powyższy kod tworzy nowy rekord w nowej wersji Samochody tabeli, dając następujący wynik.
Tabela samochodów
Z powyższej tabeli możesz zidentyfikować właściwego Johna Browna, który wynajmuje Mercedes-Benz na podstawie klucza obcego w rekordzie.
Zaawansowane klucze obce
Istnieją dwa inne sposoby użycia klucza obcego w bazie danych.
Jeśli spojrzysz wstecz na definicję klucza obcego powyżej, zobaczysz, że mówi ona, że klucz obcy może być unikalnym identyfikatorem lub kombinacją unikalnych identyfikatorów.
Wracając do przykładu bazy danych wypożyczalni samochodów, zobaczysz, że tworzenie nowego rekordu (tego samego samochodu) za każdym razem, gdy klient wynajmuje ten samochód, mija się z celem Samochody stół. Jeśli samochody są na sprzedaż i są jednorazowo sprzedawane jednemu klientowi, istniejąca baza danych jest idealna; ale biorąc pod uwagę, że samochody są wypożyczane, istnieje lepszy sposób na przedstawienie tych danych.
Klucze kompozytowe
Klucz złożony ma co najmniej dwa unikalne identyfikatory. W relacyjnej bazie danych wystąpią przypadki, w których użycie pojedynczego klucza obcego nie będzie w wystarczającym stopniu reprezentować relacji, które istnieją w tej bazie danych.
W przykładzie wypożyczania samochodów najbardziej praktycznym podejściem jest utworzenie nowej tabeli przechowującej szczegóły czynszu. Aby informacje w tabeli wynajmu samochodów były przydatne, musi być połączone zarówno z samochodem, jak iz tabelami klientów.
Tworzenie tabeli ze złożonymi kluczami obcymi
/ * tworzy tabelę CarRental w bazie danych wypożyczalni samochodów * /
UTWÓRZ TABELĘ CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NOT NULL FOREIGN KEY REFERENCES Samochody (LicenseNumber),
ID klienta varchar (30) NOT NULL ODNIESIENIA KLUCZA ZAGRANICZNEGO Klienci (ID klienta),
KLUCZ PODSTAWOWY (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 wypożyczyć więcej niż jeden samochód tego samego dnia (tzw Identyfikator klienta i DateRented to nie jest dobra kombinacja) więcej niż jeden klient może również wypożyczyć ten sam samochód tego samego dnia (tzw Numer licencji i DateRented nie jest dobrym połączeniem).
Jednak stworzenie złożonego klucza, który mówi, który klient, jaki samochód i w którym dniu, tworzy doskonały, unikalny klucz. Ten unikatowy klucz reprezentuje złożony klucz obcy i złożony klucz podstawowy.
Zagraniczne klucze podstawowe
O tak, obce klucze podstawowe kończą się. Chociaż nie ma 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 rekordzie 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 nadzorcy jako klucz obcy, który również stanie się kluczem podstawowym klucz w tej tabeli (ponieważ nie ma sensu tworzyć nowego numeru identyfikacyjnego dla Freda teraz, gdy 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ć go w bazie danych. Rozumiesz także podstawowe, a nawet bardziej złożone formy kluczy obcych.
Jeśli uważasz, że klucze obce są interesujące, będziesz miał dzień pola, kiedy zaczniesz używać operacji projektu i wyboru do wykonywania zapytań w bazach danych SQL.
Zapoznaj się z relacyjnymi bazami danych SQL, zapoznając się z operacjami projektu i wyboru w tych przykładach.
Czytaj dalej
- Programowanie
- Programowanie
- SQL
- Baza danych
Kadeisha Kean jest pełnoprawnym programistą i pisarzem technicznym / technologicznym. Ma wyraźną umiejętność upraszczania niektórych najbardziej złożonych koncepcji technologicznych; wytwarzanie materiału zrozumiałego dla każdego nowicjusza w dziedzinie technologii. Pasjonuje się pisaniem, tworzeniem ciekawego oprogramowania i podróżowaniem po świecie (poprzez filmy dokumentalne).
Zapisz się do naszego newslettera
Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.