Projektanci baz danych szeroko wykorzystują klucze podczas tworzenia relacyjnych baz danych. Do najpopularniejszych kluczy należą klucze podstawowe i klucze obce. Klucz obcy bazy danych jest polem w tabeli relacyjnej, która pasuje do kolumny klucza głównego innej tabeli. Aby zrozumieć, jak działa klucz obcy, przyjrzyjmy się bliżej idei relacyjnej bazy danych.
Niektóre podstawy relacyjnych baz danych
W relacyjnej bazie danych dane są przechowywane w tabelach zawierających wiersze i kolumny, dzięki czemu można je łatwo przeszukiwać i manipulować. Istnieje pewna poważna matematyka stojąca za koncepcją relacyjnej bazy danych (algebry relacyjne, zaproponowane przez E.F.
Codd w IBM w 1970 roku), ale to nie jest temat tego artykułu.
Ze względów praktycznych (i nie-matematyków) relacyjna baza danych przechowuje powiązane dane w wierszach i kolumnach. Ponadto - i tu jest, gdzie robi się interesujący - większość baz danych zaprojektowano tak, aby dane w jednej tabeli mogły uzyskać dostęp do danych w innej tabeli. Ta zdolność do tworzenia relacji między tabelami jest prawdziwą siłą relacyjnej bazy danych.
Używanie kluczy obcych
Większość tabel, szczególnie tych w dużych, złożonych bazach danych, ma klucze podstawowe. Tabele, które są przeznaczone do uzyskiwania dostępu do innych tabel, muszą również mieć klucz obcy.
Aby skorzystać z powszechnie cytowanej bazy danych Northwinds, poniżej znajduje się fragment tabeli produktów:
ID produktu | Nazwa produktu | CategoryID | QuantityPerU | Cena jednostkowa |
---|---|---|---|---|
1 | Chai | 1 | 10 pudełek x 20 torebek | 18.00 |
2 | Chang | 1 | Butelki 24 - 12 oz | 19.00 |
3 | Syrop ananasowy | 2 | 12 - 550 ml butelek | 10.00 |
4 | Przyprawa Cajun szefa kuchni Antona | 2 | 48 - 6 oz słoików | 22.00 |
5 | Gumbo Mix szefa kuchni Antona | 2 | 36 pudełek | 21.35 |
6 | Spread babci dla Boysenberry | 2 | 12 - 8 oz słoików | 25.00 |
7 | Uncle Bob's Organic Suszone Gruszki | 7 | 12 - 1 kg pkg. | 30.00 |
The ID produktu kolumna to klucz podstawowy tej tabeli. Przypisuje unikalny identyfikator do każdego produktu.
Ta tabela zawiera również kolumnę klucza obcego, CategoryID. Każdy produkt w tabeli Produkt prowadzi do pozycji w tabeli Kategorie, która definiuje kategorię tego produktu.
Zwróć uwagę na ten fragment z tabeli Kategorie bazy danych:
CategoryID | Nazwa Kategorii | Opis |
---|---|---|
1 | Napoje | Napoje bezalkoholowe, kawy, herbaty, piwa i piwa |
2 | Przyprawy | Słodkie i pikantne sosy, delicje, pasty i przyprawy |
3 | Słodycze | Desery, cukierki i słodkie pieczywo |
5 | Nabiał | Sery |
Kolumna CategoryID jest kluczem podstawowym tej kolumny. (Nie ma klucza obcego, ponieważ nie ma potrzeby uzyskiwania dostępu do innej tabeli.) Każdy klucz obcy w tabeli Produkt łączy się z kluczem podstawowym w tabeli Kategorie. Na przykład produkt Chai ma przypisaną kategorię "Napoje", a syrop z anyżu znajduje się w kategorii przyprawy.
Ten rodzaj łączenia tworzy mnóstwo sposobów wykorzystania i ponownego wykorzystania danych w relacyjnej bazie danych.