Klucze DBMS: typy kandydackie, podstawowe, super i obce
โก Inteligentne podsumowanie
Klucze w systemach DBMS to atrybuty, ktรณre jednoznacznie identyfikujฤ wiersz w tabeli i ustanawiajฤ relacje miฤdzy tabelami. Osiem typรณw kluczy, od super i primary po foreign i surrogate, wymusza toลผsamoลฤ i integralnoลฤ w relacyjnej bazie danych.

Czym sฤ klucze w systemie DBMS?
Klucze w DBMS To atrybut lub zestaw atrybutรณw, ktรณre pomagajฤ zidentyfikowaฤ wiersz (krotkฤ) w relacji (tabeli). Umoลผliwiajฤ one znalezienie relacji miฤdzy dwiema tabelami. Klucze pomagajฤ jednoznacznie zidentyfikowaฤ wiersz w tabeli poprzez kombinacjฤ jednej lub wiฤcej kolumn, a takลผe sฤ pomocne w znalezieniu unikalnego rekordu w tabeli.
Przykลad:
| numer identyfikacyjny pracownika | Imiฤ | Nazwisko |
|---|---|---|
| 11 | Andrew | Johnson |
| 22 | Tomek | Drewno |
| 33 | Alex | Zdrรณw |
W powyลผszym przykลadzie identyfikator pracownika jest kluczem podstawowym, poniewaลผ jednoznacznie identyfikuje rekord pracownika. W tej tabeli ลผaden inny pracownik nie moลผe mieฤ tego samego identyfikatora.
Po co nam klucz?
Oto kilka powodรณw, dla ktรณrych warto uลผywaฤ klucza w systemie DBMS:
- Klucze pomagajฤ zidentyfikowaฤ dowolny wiersz danych w tabeli. W rzeczywistym zastosowaniu tabela moลผe zawieraฤ tysiฤ ce rekordรณw, ktรณre mogฤ siฤ powtarzaฤ. Klucze zapewniajฤ jednoznacznฤ identyfikacjฤ rekordu tabeli pomimo tych trudnoลci.
- Umoลผliwiajฤ one ustalanie i identyfikowanie relacji pomiฤdzy tabelami.
- Pomagajฤ wzmocniฤ toลผsamoลฤ i integralnoลฤ w zwiฤ zku.
Rodzaje kluczy w DBMS
W systemie DBMS wystฤpuje osiem gลรณwnych typรณw kluczy, a kaลผdy klucz ma swojฤ wลasnฤ funkcjonalnoลฤ:
- Super klucz
- Gลรณwny klucz
- Klucz kandydata
- Alternatywny klucz
- klucz obcy
- Klucz zลoลผony
- Klucz zลoลผony
- Klucz zastฤpczy
Poniลผsza tabela podsumowuje wszystkie osiem w skrรณcie, a nastฤpnie wyjaลnia je szczegรณลowo.
| Klawisz | W jednym wierszu | Wyjฤ tkowy? |
|---|---|---|
| Super klucz | Dowolny zestaw atrybutรณw identyfikujฤ cy wiersz, dozwolone sฤ dodatki | Tak |
| Klucz kandydata | Minimalny klucz super, bez zbฤdnych atrybutรณw | Tak |
| Gลรณwny klucz | Wybrany klucz kandydujฤ cy, nie null | Tak |
| Alternatywny klucz | Klucz kandydacki nie wybrany jako podstawowy | Tak |
| klucz obcy | Odwoลuje siฤ do klucza podstawowego w innej tabeli | Nie |
| Klucz zลoลผony | Dwa lub wiฤcej atrybutรณw, z ktรณrych kaลผdy moลผe byฤ nieunikalny | Mieszany |
| Klucz zลoลผony | Poลฤ czenie dwรณch lub wiฤcej kolumn w celu zapewnienia unikalnoลci | Mieszany |
| Klucz zastฤpczy | Wygenerowany sztuczny identyfikator | Tak |
Czym jest Super Klucz?
Superklucz to grupa pojedynczych lub wielu kluczy identyfikujฤ cych wiersze w tabeli. Superklucz moลผe mieฤ dodatkowe atrybuty, ktรณre nie sฤ potrzebne do jednoznacznej identyfikacji.
Przykลad:
| EmSSN | Numer Emp | Nazwa_empl |
|---|---|---|
| 9812345098 | AB05 | Pokazane |
| 9876512345 | AB06 | Roslyn |
| 199937890 | AB07 | James |
W powyลผszym przykลadzie EmpSSN i โโEmpNum sฤ superkluczami.
Co to jest klucz podstawowy?
KLUCZ PODSTAWOWY in DBMS to kolumna lub grupa kolumn w tabeli, ktรณra jednoznacznie identyfikuje kaลผdy wiersz w tej tabeli. Klucz podstawowy nie moลผe byฤ duplikatem, co oznacza, ลผe โโta sama wartoลฤ nie moลผe wystฤ piฤ wiฤcej niลผ raz w tabeli. Tabela nie moลผe mieฤ wiฤcej niลผ jednego klucza podstawowego.
Zasady definiowania klucza podstawowego
- Dwa wiersze nie mogฤ mieฤ takiej samej wartoลci klucza podstawowego.
- Kaลผdy wiersz musi mieฤ wartoลฤ klucza podstawowego.
- Pole klucza podstawowego nie moลผe mieฤ wartoลci null.
- Wartoลci w kolumnie klucza podstawowego nie moลผna nigdy modyfikowaฤ ani aktualizowaฤ, jeลli jakikolwiek klucz obcy odnosi siฤ do tego klucza podstawowego.
Przykลad: W poniลผszym przykลadzie StudID jest kluczem podstawowym.
| ID Studia | Nr rolki | Imiฤ | Nazwisko | |
|---|---|---|---|---|
| 1 | 11 | Tomek | Cena | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |
Czym jest klucz alternatywny?
KLUCZ ALTERNATYWNY to kolumna lub grupa kolumn w tabeli, ktรณra jednoznacznie identyfikuje kaลผdy wiersz. Tabela moลผe mieฤ wiele opcji klucza podstawowego, ale tylko jeden moลผe byฤ ustawiony jako klucz podstawowy. Wszystkie klucze, ktรณre nie sฤ kluczem podstawowym, nazywane sฤ kluczami alternatywnymi.
Przykลad: W tej tabeli StudID, numer rejestracyjny i adres e-mail kwalifikujฤ siฤ jako klucz podstawowy. Poniewaลผ jednak StudID jest kluczem podstawowym, numer rejestracyjny i adres e-mail stajฤ siฤ kluczami alternatywnymi.
| ID Studia | Nr rolki | Imiฤ | Nazwisko | |
|---|---|---|---|---|
| 1 | 11 | Tomek | Cena | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |
Co to jest klucz kandydata?
KLUCZ KANDYDATA to zbiรณr atrybutรณw, ktรณre jednoznacznie identyfikujฤ krotki w tabeli. Klucz kandydacki to klucz nadrzฤdny bez powtarzajฤ cych siฤ atrybutรณw. Klucz podstawowy powinien zostaฤ wybrany spoลrรณd kluczy kandydackich. Kaลผda tabela musi mieฤ co najmniej jeden klucz kandydacki, a tabela moลผe mieฤ wiele kluczy kandydackich, ale tylko jeden klucz podstawowy.
Wลaลciwoลci klucza kandydujฤ cego:
- Musi zawieraฤ unikalne wartoลci.
- Klucz kandydacki moลผe mieฤ wiele atrybutรณw.
- Nie moลผe zawieraฤ wartoลci null.
- Powinien zawieraฤ minimalnฤ liczbฤ pรณl wymaganych do zapewnienia unikalnoลci.
- Umoลผliwia jednoznacznฤ identyfikacjฤ kaลผdego rekordu w tabeli.
Przykลad: W poniลผszej tabeli StudID, numer indeksu i adres e-mail to klucze kandydatรณw, ktรณre pomagajฤ nam jednoznacznie zidentyfikowaฤ rekord studenta. Ich zwiฤ zek z kluczem nadrzฤdnym i podstawowym to powszechny sposรณb zrozumienia. zaleลผnoลฤ funkcjonalna.
| ID Studia | Nr rolki | Imiฤ | Nazwisko | |
|---|---|---|---|---|
| 1 | 11 | Tomek | Cena | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |

Co to jest klucz obcy?
KLUCZ OBCY to kolumna, ktรณra tworzy relacjฤ miฤdzy dwiema tabelami. Celem klucza obcego jest zachowanie integralnoลci danych i umoลผliwienie nawigacji miฤdzy dwoma rรณลผnymi instancjami encji. Dziaลa on jako odsyลacz miฤdzy dwiema tabelami, poniewaลผ odwoลuje siฤ do klucza podstawowego innej tabeli.
Przykลad:
| deptCode | NazwaDepartamentu |
|---|---|
| 001 | Nauka |
| 002 | Angielski |
| 005 | Komputer |
| Identyfikator nauczyciela | Nazwa uลผytkownika | Lnazwa |
|---|---|---|
| B002 | David | Warner |
| B017 | Sara | Joseph |
| B009 | Mike | Bruntona |
W tym przykลadzie mamy dwie tabele w szkole: โNauczycielโ i โDziaลโ. W obecnej formie nie ma moลผliwoลci sprawdzenia, ktรณry nauczyciel pracuje w ktรณrym dziale.
Dodajฤ c klucz obcy DeptCode do tabeli Nauczyciel moลผemy utworzyฤ relacjฤ pomiฤdzy dwiema tabelami.
| Identyfikator nauczyciela | deptCode | Nazwa uลผytkownika | Lnazwa |
|---|---|---|---|
| B002 | 002 | David | Warner |
| B017 | 002 | Sara | Joseph |
| B009 | 001 | Mike | Bruntona |
Koncepcja ta jest rรณwnieลผ znana jako integralnoลฤ referencyjna.
Czym jest klucz zลoลผony?
KLUCZ ZลOลปONY Posiada dwa lub wiฤcej atrybutรณw, ktรณre pozwalajฤ jednoznacznie rozpoznaฤ konkretny rekord. Moลผliwe, ลผe kaลผda kolumna nie jest unikatowa sama w sobie w bazie danych. Jednak po poลฤ czeniu kolumny stajฤ siฤ unikatowe. Celem klucza zลoลผonego jest jednoznaczne zidentyfikowanie kaลผdego rekordu w tabeli.
Przykลad:
| Nr zamรณwienia | ID produktu | Nazwa produktu | Iloลฤ |
|---|---|---|---|
| B005 | JAP102459 | Mysz | 5 |
| B005 | DKT321573 | USB | 10 |
| B005 | O mรณj Boลผe446789 | Monitor LCD | 20 |
| B004 | DKT321573 | USB | 15 |
| B002 | O mรณj Boลผe446789 | Drukarka laserowa | 3 |
W tym przykลadzie pola OrderNo i ProductID nie mogฤ byฤ kluczami podstawowymi, poniewaลผ ลผaden z nich nie identyfikuje jednoznacznie rekordu. Natomiast klucz zลoลผony z pรณl OrderNo i ProductID jednoznacznie identyfikuje kaลผdy rekord.
Co to jest klucz zลoลผony?
KLUCZ KOMPOZYTOWY to kombinacja dwรณch lub wiฤcej kolumn, ktรณre jednoznacznie identyfikujฤ wiersze w tabeli. Poลฤ czenie kolumn gwarantuje unikalnoลฤ, choฤ unikalnoลฤ indywidualna nie jest gwarantowana. Dlatego sฤ one ลฤ czone w celu jednoznacznej identyfikacji rekordรณw w tabeli.
Rรณลผnica pomiฤdzy kluczem zลoลผonym i zลoลผonym polega na tym, ลผe dowolna czฤลฤ klucza zลoลผonego moลผe byฤ kluczem obcym, natomiast klucz zลoลผony moลผe lub nie byฤ czฤลciฤ klucza obcego.
Czym jest klucz zastฤpczy?
KLUCZ ZASTฤPCZY to sztuczny klucz, ktรณrego celem jest jednoznaczna identyfikacja kaลผdego rekordu. Ten rodzaj klucza jest unikatowy, poniewaลผ powstaje w przypadku braku naturalnego klucza podstawowego. Klucze zastฤpcze nie nadajฤ ลผadnego znaczenia danym w tabeli i zazwyczaj sฤ liczbami caลkowitymi generowanymi tuลผ przed wstawieniem rekordu.
| Nazwa uลผytkownika | Nazwisko | Czas rozpoczฤcia | Koniec czasu |
|---|---|---|---|
| Anne | Kowal | 09:00 | 18:00 |
| Jacek | Francis | 08:00 | 17:00 |
| Anna | McLean | 11:00 | 20:00 |
| Pokazane | Willama | 14:00 | 23:00 |
Powyลผszy przykลad pokazuje godziny pracy rรณลผnych pracownikรณw. W tym przypadku potrzebny jest klucz zastฤpczy, aby jednoznacznie zidentyfikowaฤ kaลผdego pracownika. Klucze zastฤpcze w SQL sฤ uลผywane gdy:
- ลปadna wลaลciwoลฤ nie ma parametru klucza podstawowego.
- Klucz podstawowy jest za duลผy lub skomplikowany.
Rรณลผnica miฤdzy kluczem podstawowym a kluczem obcym
Oto gลรณwna rรณลผnica pomiฤdzy kluczem podstawowym a kluczem obcym:
| Gลรณwny klucz | klucz obcy |
|---|---|
| Pomaga jednoznacznie zidentyfikowaฤ rekord w tabeli. | Jest to pole w tabeli bฤdฤ ce kluczem podstawowym innej tabeli. |
| Klucz podstawowy nigdy nie przyjmuje wartoลci null. | Klucz obcy moลผe akceptowaฤ wiele wartoลci null. |
| Kluczem podstawowym jest indeks klastrowy, a dane w tabeli sฤ fizycznie zorganizowane zgodnie z sekwencjฤ indeksu klastrowego. | Klucz obcy nie moลผe automatycznie utworzyฤ indeksu, klastrowanego ani nieklastrowanego. Moลผna go utworzyฤ rฤcznie. |
| W tabeli moลผna mieฤ jeden klucz podstawowy. | W tabeli moลผesz mieฤ wiele kluczy obcych. |
