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.

  • ๐Ÿ—๏ธ Gล‚รณwny cel: Klucz identyfikuje unikalny wiersz i ล‚ฤ…czy powiฤ…zane tabele, dziฤ™ki czemu dane pozostajฤ… spรณjne.
  • ๐Ÿ” Super klucz: Dowolny zestaw atrybutรณw identyfikujฤ…cy wiersze, ewentualnie z dodatkowymi atrybutami wykraczajฤ…cymi poza minimum.
  • โญ Gล‚รณwny klucz: Wybrany klucz kandydujฤ…cy, nigdy nie jest pusty i nigdy nie jest zduplikowany, jeden na tabelฤ™.
  • ๐ŸŽฏ Klucz kandydata: Minimalny superklucz bez zbฤ™dnych atrybutรณw; spoล›rรณd nich wybierany jest klucz podstawowy.
  • ๐Ÿ” Klucz alternatywny: Dowolny klucz kandydujฤ…cy, ktรณry nie zostaล‚ wybrany jako klucz podstawowy.
  • ๐Ÿ”— Klucz obcy: Kolumna odwoล‚ujฤ…ca siฤ™ do klucza podstawowego innej tabeli w celu wymuszenia integralnoล›ci referencyjnej.
  • ๐Ÿงฉ Kompozyt i surogat: Klucze zล‚oลผone ล‚ฤ…czฤ… kolumny w celu zapewnienia unikatowoล›ci; klucz zastฤ™pczy to generowany klucz zastฤ™pczy.

Kandydat na klucze DBMS Super Primary

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ล›ฤ‡:

  1. Super klucz
  2. Gล‚รณwny klucz
  3. Klucz kandydata
  4. Alternatywny klucz
  5. klucz obcy
  6. Klucz zล‚oลผony
  7. Klucz zล‚oลผony
  8. 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 Email
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 Email
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 Email
1 11 Tomek Cena abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com
Klucz kandydata w systemie DBMS
Klucz kandydata w systemie DBMS

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.

FAQ

Kaลผdy klucz kandydacki moลผe jednoznacznie identyfikowaฤ‡ wiersz. Klucz podstawowy to klucz kandydacki wybrany przez projektanta; pozostaล‚e klucze kandydackie stajฤ… siฤ™ kluczami alternatywnymi.

Oba ล‚ฤ…czฤ… kolumny w celu zapewnienia unikalnoล›ci. W kluczu zล‚oลผonym kaลผda kolumna sama w sobie jest kluczem obcym, podczas gdy klucz zล‚oลผony po prostu ล‚ฤ…czy dwa lub wiฤ™cej atrybutรณw, ktรณre nie muszฤ… byฤ‡ kluczami obcymi.

Uลผyj klucza zastฤ™pczego, gdy ลผaden atrybut naturalny nie jest jednoznacznie unikalny lub gdy klucz naturalny jest duลผy lub moลผe siฤ™ zmieniaฤ‡. Wygenerowana liczba caล‚kowita pozostaje stabilna i zapewnia prostotฤ™ poล‚ฤ…czeล„.

Tak. Profilujฤ…c kolumny pod kฤ…tem unikalnoล›ci, wspรณล‚czynnika null i stabilnoล›ci, AI moลผe utworzyฤ‡ krรณtkฤ… listฤ™ kluczy kandydujฤ…cych i zasugerowaฤ‡ klucz podstawowy lub surogat, pozostawiajฤ…c ostateczny wybรณr projektantowi.

Tak. W przeciwieล„stwie do klucza podstawowego, klucz obcy moลผe zawieraฤ‡ wartoล›ฤ‡ null, ktรณra reprezentuje wiersz, ktรณry nie jest jeszcze powiฤ…zany z ลผadnym rekordem nadrzฤ™dnym. Klucz obcy rรณลผny od null musi pasowaฤ‡ do istniejฤ…cego klucza podstawowego.

Podsumuj ten post nastฤ™pujฤ…co: