Różnice między key, superkey, minimal superkey, candidate key i primary key

Jestem nowy w MySQL, i jestem naprawdę zdezorientowany na temat różnych terminów, które spotkałem. Próbowałem googling odpowiedź, ale wyniki są naprawdę mylące i kiedy staram się zrozumieć, to po prostu wydaje się, że są one to samo.

Jakie są dokładnie różnice między key, superkey, minimal superkey, candidate key i primary key?

Author: nbro, 2011-08-05

9 answers

tutaj kopiuję wklejam niektóre informacje które zebrałem

Klucz Klucz jest pojedynczym lub kombinacją wielu pól. Jego celem jest dostęp lub pobieranie wierszy danych z tabeli zgodnie z wymaganiem. Klucze są definiowane w tabelach w celu szybkiego i płynnego dostępu do przechowywanych danych lub ich uporządkowania. Są one również używane do tworzenia powiązań między różnymi tabelami.

Rodzaje kluczy

Klucz Podstawowy Atrybut lub kombinacja atrybutów jednoznacznie identyfikujących wiersz lub rekord w relacji jest znana jako klucz podstawowy.

Klucz drugorzędny Pole lub kombinacja pól, które są podstawą do wyszukiwania, jest znana jako klucz drugorzędny. Klucz drugorzędny jest polem nie unikalnym. Jedna wartość klucza wtórnego może odnosić się do wielu rekordów.

Klucz kandydata lub klucz alternatywny Relacja może mieć tylko jeden klucz podstawowy. Może zawierać wiele pól lub kombinacji pól, które mogą być używane jako podstawowe klucz. Jedno pole lub kombinacja pól jest używana jako klucz podstawowy. Pola lub kombinacja pól, które nie są używane jako klucz podstawowy, są znane jako klucz kandydata lub klucz alternatywny.

Klucz złożony lub klucz konkatenacyjny Klucz podstawowy, który składa się z dwóch lub więcej atrybutów, jest znany jako klucz kompozytowy.

Sort Or control key Pole lub kombinacja pól, która jest używana do fizycznego uporządkowania przechowywanych danych o nazwie klucz sortowania. Jest również znany klawisz kontrolny S.

A superkey jest kombinacją atrybutów, które mogą być użyte do identyfikacji rekordu bazy danych. Stół może mieć wiele superkluczy. Klucze kandydujące są specjalnym podzbiorem superkluczy, które nie zawierają żadnych obcych informacji.

Przykład dla super key : Wyobraź sobie tabelę z polami <Name>, <Age>, <SSN> i <Phone Extension>. Ta tabela ma wiele możliwych superkluczy. Trzy z nich to <SSN>, <Phone Extension, Name> i <SSN, Name>. Spośród wymienionych tylko <SSN> jest kandydatem klucz, ponieważ pozostałe zawierają informacje nie niezbędne do jednoznacznej identyfikacji rekordów.

Klucz Obcy Klucz obcy jest atrybutem lub kombinacją atrybutów w relacji, której wartość pasuje do klucza podstawowego w innej relacji. Tabela, w której tworzony jest klucz obcy, jest wywoływana jako tabela zależna. Tabela, do której odnosi się klucz obcy, jest znana jako tabela nadrzędna.

 64
Author: bHaRaTh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-21 07:03:16

Zawsze trudno było zapamiętać wszystkie klucze; więc trzymam pod ręką poniższe notatki, mam nadzieję, że komuś pomogą! Daj znać, czy da się to poprawić.

  • Key : atrybut lub kombinacja atrybutów, które jednoznacznie identyfikują encję / rekord w tabeli relacyjnej.

  • PK : pojedynczy klucz, który jest unikalny i nie-null. Jest to jeden z klucze kandydatów.

  • Klucz obcy : FK jest kluczem w jednej tabeli (dziecko), który jednoznacznie identyfikuje wiersz innej tabeli (rodzica). FK nie jest unikalny w tabeli dziecka. Jest to klucz kandydata w tabeli nadrzędnej. Integralność referencji jest zachowana, ponieważ wartość w FK jest obecna jako wartość w PK w tabeli nadrzędnej else jest NULL.

  • Unikalny klucz : unikalny klucz, który może lub nie musi być NULL

  • Klucz naturalny : PK w OLTP. To może być PK w OLAP.

  • Klucz zastępczy: jest to surogat PK w OLAP działając jako zastępca PK w OLTP. Sztuczny klucz generowany wewnętrznie w OLAP.

  • Klucz złożony : PK złożony z wielu atrybutów

  • SuperKey : klucz, który może być unikatowo używany do identyfikacji rekordu bazy danych, który może zawierają dodatkowe atrybuty, które nie są konieczne do jednoznacznej identyfikacji records.

  • Klucz kandydata : klucz kandydata może być używany do identyfikacja rekordu bazy danych bez wszelkie obce dane. Nie są Null I unique. Jest to minimalny super-klucz.

  • Klucz alternatywny : klucz kandydata, który nie jest kluczem głównym, nazywany jest kluczem alternatywnym.

  • Klucz/y kandydata z danymi zewnętrznymi: należy wziąć pod uwagę, że może być używany do identyfikacji rekordu w tabeli pracownika, ale kandydat do tego zadania wystarczy sam klucz. Więc staje się obce dane.

Zauważ, że PK, klucz obcy, klucz unikalny, Klucz naturalny, klucz zastępczy, Klucz złożony definiuje się jako obiekty bazy danych; gdzie klucz naturalny jest PK w OLTP i może być PK w docelowym OLAP. Dla reszty z kluczy, to do DB projektant/architekt zdecydować, czy unikalne/Nie-null / referencyjne ograniczenia integralności muszą być egzekwowane lub nie.

Poniżej próbowałem użyć teorii mnogości, aby uprościć reprezentację przynależności kluczy w.r.t. do siebie.

key = { All of the below keys   }
PK  = { PK  }
Foreign Key = { Key with Not Null constraint    }
Unique Key  = { {Candidate Key/s}, {attributes containing NULL} }
Natural key = { PK  }
Surrogate Key   = { PK  }
Composite Key   = { PK  }
Super Key   = { {Candidate Key/s}, {Candidate Key/s with Extraneous data}   }
Candidate Key   = { PK, {Alternate Key/s}   }
Alternate Key   = { {Candidate Keys} - PK   }
Candidate Key/s with Extraneous data    = {     }

Podsumowałem to poniżej:

Klucze Bazy Danych

Uwagi: an-overview-of-the-database-keys-primary-key-composite-key-surogate-key-et-al

 18
Author: Kent Pawar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-07 11:54:54

Klucz podstawowy jest podzbiorem klucza nadrzędnego. Które jest jednoznacznie definiowane i inne pola są od niego zależne. W tabeli ich może być tylko jeden klucz podstawowy i rest sub set są kluczami kandydującymi lub kluczami alternatywnymi.

 1
Author: mick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-12 15:22:01

Superkey - atrybut lub zestaw atrybutów, które jednoznacznie definiują krotkę w relacji. Jednak superkey może zawierać dodatkowe atrybuty, które nie są konieczne do jednoznacznej identyfikacji.

Klucz kandydata - superkey taki, że żaden odpowiedni podzbiór nie jest superkeyem w relacji. Tak więc, zasadniczo ma dwie właściwości: każdy klucz kandydata jednoznacznie identyfikuje krotkę w relacji; & żaden odpowiedni podzbiór klucza złożonego nie ma unikalności własność .

Klucz złożony - gdy klucz kandydata składa się z więcej niż jednego atrybutu.

Klucz podstawowy - klucz kandydata wybrany w celu jednoznacznej identyfikacji krotek w relacji.

Klucz alternatywny - Klucz kandydata, który nie jest kluczem podstawowym.

Klucz obcy - atrybut lub zestaw atrybutów w relacji, który pasuje do klucza kandydata jakiejś relacji.

 1
Author: Kaustubh Sable,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-23 12:09:21

SUPER KLUCZ:

Atrybut lub zestaw atrybutów używanych do jednoznacznej identyfikacji krotek w bazie danych.

KLUCZ KANDYDATA:

  1. Minimal Super key to klucz kandydata
  2. Może być jeden lub wiele
  3. potencjalne klucze podstawowe
  4. not null
  5. atrybut lub zestaw atrybutów do jednoznacznej identyfikacji rekordów w DB

KLUCZ PODSTAWOWY:

  1. Jeden z kluczy kandydata, który służy do identyfikacji rekordy w DB

  2. Not null

 0
Author: Palak Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-05 10:44:49

W dużej mierze oparte na zaakceptowanej odpowiedzi, ale z kilkoma poprawkami, aby lepiej pasowały do definicji nauczanych w niektórych kursach:

  • Klucz : zbiór kolumn $ \ ge1$.
  • Superkey : klucz $ \ supseteq$ a candidate key.
    • dlatego superkey musi zawierać $ > 1 $ columns.
    • Minimal Super key $\equiv$ Candidate Key: klucz, który może jednoznacznie zidentyfikować każdy wiersz tabeli.
    • Klucz podstawowy : wybrany klucz kandydata za to.
    • Klucz pomocniczy / klucz alternatywny : Klucz kandydata nie wybrany do tego celu.
  • Klucz wyszukiwania : klucz używany do lokalizowania rekordów.
  • klucz złożony lub Klucz konkatenacyjny : klucz z kolumnami $>1$.
    • zazwyczaj oznacza "złożony klucz podstawowy", chociaż "złożony klucz alternatywny" jest również rzeczą.
  • Sort lub control key: klucz używany do fizycznego uporządkowania przechowywanych data.
  • klucz obcy klucz w jednej tabeli, który odpowiada kluczowi głównemu innej tabeli.
    • tabela, w której znajduje się klucz obcy, jest nazywana tabelą zależną.
    • Tabela, do której odnosi się klucz obcy, jest znana jako tabela nadrzędna.
 0
Author: tslmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-19 16:26:44

Super Key: Super key jest zbiorem jednego lub więcej atrybutów, których wartości jednoznacznie identyfikują krotkę w relacji.

Klucz kandydata: Klucz kandydata może być zdefiniowany jako minimalny podzbiór super klucza. W niektórych przypadkach klucz kandydata nie może sam, ponieważ istnieje tylko jeden atrybut jest minimalny podzbiór. Przykład,

Employee (id, ssn, name, addrress)

Tutaj kluczem kandydata jest (id, ssn), ponieważ możemy łatwo zidentyfikować krotkę za pomocą id lub ssn . Althrough, minimalny podzbiór super klucza to id lub ssn. ale oba z nich można uznać za klucz kandydata.

Klucz podstawowy: Klucz podstawowy jest jednym z kluczy kandydata.

Przykład : Student (Id, Name, Dept, Result)

Tutaj

Super Key: {Id, Id+Name, Id+Name+Dept} ponieważ Super key jest zestawem atrybutów .

Klucz kandydata: Id ponieważ sam Id jest minimalnym podzbiorem super klucz.

Klucz Podstawowy: Id ponieważ Id jest jednym z kluczy kandydata

 0
Author: rashedcs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-23 14:37:12

Klucz kandydata : Klucz kandydata może być zdefiniowany jako minimalny zestaw atrybutów, który może być unikalnie identyfikacja krotki jest znana jako klucz kandydata. Na przykład, STUD_NO poniżej Relacja ucznia.

  • wartość klucza kandydata jest unikalna i nie jest null dla każdej krotki.
  • w relacji może być więcej niż jeden klucz kandydata. Na przykład, zarówno STUD_NO, jak i STUD_PHONE są kluczami kandydującymi dla uczeń relacji.
  • klucz kandydata może być prosty (posiadający tylko jeden atrybut) lub złożony. Na przykład, {STUD_NO, COURSE_NO} jest złożeniem
    klucz kandydata do relacji STUDENT_COURSE.

Tutaj wpisz opis obrazka

Super Key : zestaw atrybutów, które mogą jednoznacznie zidentyfikować krotkę, jest znany jako Super Key. Na przykład, STUD_NO, (STUD_NO, STUD_NAME) itp. Dodawanie zero lub więcej atrybutów do klucza kandydata generuje super klucz. Klucz kandydata to super klucz, ale vice versa jest nieprawda. Klucz podstawowy: może być więcej niż jeden klucz kandydata w relację, z której można wybrać klucz podstawowy. Na Przykład, STUD_NO jak i STUD_PHONE są kluczami kandydującymi do relacji Studenta, ale STUD_NO może być wybrany jako klucz podstawowy (tylko jeden z wielu kandydatów).

Klucz alternatywny : Klucz kandydata inny niż klucz podstawowy jest nazywany kluczem alternatywnym. Na przykład, zarówno STUD_NO, jak i STUD_PHONE są kandydat Klucze do relacji STUDENT, ale STUD_PHONE będzie alternatywny klucz (tylko jeden z wielu kluczy kandydata).

Klucz obcy : jeśli atrybut może przyjmować tylko wartości, które są obecne jako wartości jakiegoś innego atrybutu, będzie to klucz obcy do atrybut, do którego się odnosi. Relacja, która jest odwołanie nazywa się relacją odniesienia i odpowiadającym jej atrybutem nazywa się atrybutem odniesienia i relacją, która odnosi się do nawiązana relacja nazywa się relacja odniesienia i odpowiadająca atrybut nazywa się atrybutem odniesienia. Przypisany atrybut atrybutem odniesienia powinien być klucz główny. Na przykład, STUD_NO w STUDENT_COURSE jest obcym kluczem do STUD_NO w relacji ze studentem.

 0
Author: Noman Akhtar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-26 11:46:16

Superkey

A superkey is a combination of attributes that can be uniquely used to identify a 
database record. A table might have many superkeys.Candidate keys are a special subset
of superkeys that do not have any extraneous information in them.

Examples: Imagine a table with the fields <Name>, <Age>, <SSN> and <Phone Extension>.
This table has many possible superkeys. Three of these are <SSN>, <Phone Extension, Name>
and <SSN, Name>.Of those listed, only <SSN> is a **candidate key**, as the others
contain information not necessary to uniquely identify records.
 -1
Author: shijinmon Pallikal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-01 05:01:29