Diferențe între cheie, supercheie, supercheie minimă, cheie candidată și cheie primară (Programare, Cheie, Terminologie, Schema Bazei De Date)

Aaron a intrebat.

Sunt nou în MySQL și sunt foarte confuz în legătură cu diferiții termeni pe care i-am întâlnit. Am încercat să caut pe Google răspunsul, dar rezultatele sunt foarte confuze, iar când încerc să înțeleg mi se pare că sunt același lucru.

Care sunt mai exact diferențele dintre cheie, supercheie, supercheie minimă, cheie candidată și cheie primară?

9 răspunsuri
bHaRaTh

Aici copiez și lipesc câteva dintre informațiile pe care le-am colectat

CheieO cheie este un singur câmp sau o combinație de mai multe câmpuri. Scopul său este de a accesa sau de a prelua rânduri de date din tabel în funcție de cerințe. Cheile sunt definite în tabele pentru a accesa sau a secvenția datele stocate rapid și fără probleme. De asemenea, acestea sunt utilizate pentru a crea legături între diferite tabele.

Tipuri de chei

Cheia primarăAtributul sau combinația de atribute care identifică în mod unic un rând sau o înregistrare într-o relație este cunoscută sub numele de cheie primară.

Cheia secundarăUn câmp sau o combinație de câmpuri care constituie baza pentru regăsire este cunoscută sub numele de cheie secundară. Cheia secundară este un câmp care nu este unic. O valoare de cheie secundară se poate referi la mai multe înregistrări.

Cheie candidată sau cheie alternativăO relație nu poate avea decât o singură cheie primară. Ea poate conține mai multe câmpuri sau combinații de câmpuri care pot fi utilizate ca cheie primară. Un câmp sau o combinație de câmpuri este utilizat ca cheie primară. Câmpurile sau combinațiile de câmpuri care nu sunt utilizate ca cheie primară sunt cunoscute ca cheie candidată sau cheie alternativă.

Cheie compusă sau cheie concatenată O cheie primară care constă din două sau mai multe atribute este cunoscută sub numele de cheie compozită.

Cheie de sortare sau de controlUn câmp sau o combinație de câmpuri care este utilizat(ă) pentru a ordona fizic datele stocate se numește cheie de sortare. Este cunoscută și sub numele de cheie de control.

A supercheie este o combinație de atribute care poate fi utilizată în mod unic pentru a identifica o înregistrare din baza de date. Un tabel poate avea mai multe superchei. Cheile candidate sunt un subset special de superchei care nu conțin informații străine.

Exemplu de supercheie:Imaginați-vă un tabel cu câmpurile <Name>, , <Age>, , <SSN> și <Phone Extension>. Această tabelă are mai multe superchei posibile. Trei dintre acestea sunt <SSN>, , <Phone Extension, Name> și <SSN, Name>. Dintre cele enumerate, numai <SSN> este o cheie candidată, deoarece celelalte conțin informații care nu sunt necesare pentru a identifica în mod unic înregistrările.

Cheie străinăO cheie străină este un atribut sau o combinație de atribute dintr-o relație a cărei valoare corespunde unei chei primare dintr-o altă relație. Tabelul în care este creată cheia externă se numește tabel dependent. Tabelul la care se referă cheia externă este cunoscut sub numele de tabel părinte.

Comentarii

  • În mod informal, o cheie superioară este un set de atribute dintr-un tabel ale cărui valori pot fi utilizate pentru a identifica în mod unic un tupluplu. O cheie candidată este un set minim de atribute necesare pentru a identifica un tupluplu; aceasta se mai numește și supercheie minimă. @user593424 Ce înseamnă „set minim de atribute”? –  > Por Aaron.
  • Bună ziua, aerohn set minim înseamnă setul minim de atribute dintr-un tabel utilizat pentru a identifica un rând într-un tabel în mod unic. să presupunem că există 15 atribute, iar primul și al doilea pot identifica în mod unic un rând, atunci aceste două atribute se află în setul minim. corectați-mă dacă greșesc – –  > Por bHaRaTh.
  • Oh, am înțeles. KEY este un set minim SUPERKEY, , adică un set minimizat de coloane care poate fi utilizat pentru a identifica un singur rând. –  > Por Aaron.
  • Nu există nicio diferență între o cheie candidată și o cheie primară. Ele sunt același lucru. Toate cheile sunt superchei, deoarece o cheie (alias cheie „candidată” sau cheie „primară”) este, prin definiție, doar o supercheie minimă. –  > Por nvogel.
  • Da, nu există nicio diferență între o cheie candidată și o cheie primară, dar Atributul primar este diferit. A Atributul primar este un atribut membru al unei chei candidate (sau, eventual, singurul atribut dintr-o cheie candidată) –  > Por CodyBugstein.
Kent Pawar

Întotdeauna mi s-a părut dificil să-mi amintesc toate cheile; așa că țin la îndemână notele de mai jos, sper să ajute pe cineva! Anunțați-mă dacă pot fi îmbunătățite.

  • Cheie: Un atribut sau o combinație de atribute care identifică în mod unic o entitate/înregistrare într-un tabel relațional.

  • PK: O singură cheie care este unică și care nu este nulă. Este una dintre cheile candidate.

  • Cheie străină: FK este o cheie dintr-un tabel (copil) care identifică în mod unic un rând dintr-un alt tabel (părinte). O FK nu este unică în tabelul copil. Este o cheie candidată în tabelul părinte. Integritatea referențială este menținută deoarece valoarea din FK este prezentă ca valoare în PK în tabelul părinte, altfel este NULL.

  • Cheie unică: O cheie unică care poate fi sau nu NULL.

  • Cheie naturală: PK în OLTP. Poate fi un PK în OLAP.

  • Cheie surogat: Este PK-ul surogat din OLAP care acționează ca înlocuitor al PK-ului din OLTP. Cheie artificială generată intern în OLAP.

  • Cheie compusă: PK alcătuită din mai multe atribute.

  • Supercheie: O cheie care poate fi utilizată în mod unic pentru a identifica o înregistrare din baza de date, care poate conține atribute suplimentare care nu sunt necesare pentru a identifica în mod unic înregistrările.

  • Cheie candidată: O cheie candidată poate fi utilizată în mod unic pentru a identifica o înregistrare din baza de date fără date suplimentare. Ele nu sunt nule și sunt unice. Este o supercheie minimă.

  • Cheie alternativă: O cheie candidată care nu este cheia primară se numește cheie alternativă.

  • Cheie(e) candidată(e) cu date străine: Luați în considerare că pot fi utilizate pentru a identifica o înregistrare în tabelul Employee, dar numai cheia candidată este suficientă pentru această sarcină. Deci, devine date străine.

Rețineți că PK, Foreign Key, Unique Key, Natural key, Surrogate Key, Composite Key sunt definite ca obiecte ale bazei de date; unde Natural key este o PK în OLTP și ar putea fi o PK în OLAP țintă. Pentru restul cheilor, proiectantul/arhitectul bazei de date este cel care trebuie să decidă dacă este necesar să se impună sau nu constrângeri de integritate unică/ne-nulă/referențială.

Mai jos am încercat să folosesc teoria seturilor pentru a simplifica reprezentarea apartenenței cheilor una față de cealaltă.

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    = {     }

Am sintetizat-o mai jos:

Note: an-overview-of-the-database-keys-primary-key-composite-key-surrogate-key-et-al

tslmy

În mare parte bazat pe răspunsul acceptat, dar cu câteva modificări pentru a se potrivi mai bine cu definițiile predate în unele cursuri:

  • Cheie: Un set de ≥ 1 coloane.
  • Supercheie: O cheie care ⊇ o cheie candidată.
    • Prin urmare, o supercheie trebuie să conțină > 1 coloane.
    • Supercheie minimăCheie candidată: O cheie care poate identifica în mod unic fiecare rând dintr-un tabel.
    • Cheie primară: aleasă cheie candidată pentru a face acest lucru.
    • Cheia secundară / Cheia alternativă: O cheie candidată nealeasă pentru a face acest lucru.
  • Cheie de căutare: O cheie utilizată pentru localizarea înregistrărilor.
  • Cheie compusă sau cheie concatenată: O cheie cu > 1 coloane.
    • De obicei implică „cheie primară compozită”, deși există și „cheie alternativă compozită”.
  • Sortare sau cheie de control: O cheie utilizată pentru a ordona fizic datele stocate.
  • Cheie străină O cheie dintr-un tabel care corespunde cheii primare a unui alt tabel.
    • Tabelul în care se află cheia externă se numește tabel dependent.
    • Tabelul la care se referă cheia externă este cunoscută sub numele de tabel părinte.

Kaustubh Sable

Supercheie – Un atribut sau un set de atribute care definește în mod unic un tuplu în cadrul unei relații. Cu toate acestea, o supercheie poate conține atribute suplimentare care nu sunt necesare pentru o identificare unică.

Cheie candidată – O supercheie astfel încât niciun subset corespunzător nu este o supercheie în cadrul relației. Așadar, în principiu, are două proprietăți: Fiecare cheie candidată identifică în mod unic un tuplu în cadrul relației; & nici un subset propriu-zis al cheii compuse nu are proprietatea de unicitate..

Cheia compozită – Atunci când o cheie candidată este formată din mai mult de un atribut.

Cheie primară – Cheia candidată aleasă pentru a identifica tuplurile în mod unic în cadrul relației.

Cheie alternativă – Cheie candidată care nu este o cheie primară.

Cheie străină – Un atribut sau un set de atribute dintr-o relație care corespunde cheii candidate a unei alte relații.

Noman Akhtar

Cheie candidată: Cheia candidată poate fi definită ca fiind un set minim de atribute care pot identifica în mod unic un tuplu este cunoscută sub numele de cheie candidată. De exemplu, STUD_NO în relația STUDENT de mai jos.

  • Valoarea cheii candidate este unică și nenulă pentru fiecare tuple.
  • Într-o relație pot exista mai multe chei candidate. De exemplu, atât STUD_NO, cât și STUD_PHONE sunt chei candidate pentru relația STUDENT.
  • Cheia candidată poate fi simplă (cu un singur atribut) sau compusă. De exemplu, {STUD_NO, COURSE_NO} este o candidatură compozită.
    cheie candidată pentru relația STUDENT_COURSE.

Cheie super: Setul de atribute care pot identifica în mod unic un tuplu este cunoscut sub numele de supercheie. De exemplu, STUD_NO, (STUD_NO, STUD_NAME) etc. Adăugarea a zero sau mai multe atribute la cheia candidată generează o supercheie. O cheie candidată este o supercheie, dar invers nu este adevărat. Cheia primară: Într-o relație pot exista mai multe chei candidate, dintre care una poate fi aleasă ca cheie primară. De exemplu, atât STUD_NO, cât și STUD_PHONE sunt chei candidate pentru relația STUDENT, dar STUD_NO poate fi aleasă ca cheie primară (doar una dintre mai multe chei candidate).

Cheie alternativă: Cheia candidată, alta decât cheia primară, se numește cheie alternativă. De exemplu, atât STUD_NO, cât și STUD_PHONE sunt chei candidate pentru relația STUDENT, dar STUD_PHONE va fi cheia alternativă (doar una dintre numeroasele chei candidate).

Cheia externă: În cazul în care un atribut poate lua numai valori care sunt prezente ca valori ale unui alt atribut, acesta va fi o cheie străină pentru atributul la care se referă. Relația la care se face referire se numește relație de referință și atributul corespunzător se numește atribut de referință, iar relația care se referă la relația de referință se numește relație de referință și atributul corespunzător se numește atribut de referință. Atributul de referință al atributului de referință trebuie să fie o cheie primară. De exemplu, STUD_NO din STUDENT_COURSE este o cheie externă pentru STUD_NO din relația STUDENT.

Comentarii

  • Dacă în student_curs trebuie să aleg o cheie primară. Pot alege doar între student_no și course_no. Dar niciunul dintre ele nu este unic. Deci nu vor respecta condițiile pentru a fi o cheie primară? –  > Por Shubham.
mick

Cheia primară este un subset al cheii super. Care este definită în mod unic și de care depind alte câmpuri. Într-un tabel poate exista doar o singură cheie primară, iar restul subansamblurilor sunt chei candidate sau chei alternative.

Palak Jain

SUPER KEY:

Atributul sau setul de atribute utilizat pentru a identifica în mod unic tuplurile din baza de date.

CHEIE CANDIDATĂ:

  1. Cheia superioară minimă este cheia candidată.
  2. Poate fi una sau mai multe.
  3. Chei primare potențiale
  4. not null
  5. atribut sau set de atribute pentru a identifica în mod unic înregistrările din BD

PRIMARY KEY:

  1. una dintre cheile candidate care este utilizată pentru a identifica în mod unic înregistrările din BD.

  2. not null

rashedcs

Cheia super : Supercheia este un set de unul sau mai multe atribute ale căror valori identifică în mod unic tuplele din relație.

Cheia candidată : Cheia candidată poate fi definită ca un subset minim al cheii superioare. În unele cazuri, cheia candidată nu poate fi singură, deoarece există doar un singur atribut în subsetul minim. Exemplu,

Angajat(id, ssn, nume, adresă)

În acest caz, cheia candidată este (id, ssn), deoarece putem identifica cu ușurință tupla folosind fie id, fie ssn. Cu toate acestea, subansamblul minim al supercheie este fie id, fie ssn, dar ambele pot fi considerate drept cheie candidată.

Cheia primară : Cheia primară este una dintre cheile candidate.

Exemplu :Student(Id, Name, Dept, Result)

Aici

Cheia superioară: {Id, Id+Nume, Id+Nume+Dept}, deoarece cheia superioară este un set de atribute.

Cheia candidată: Id, deoarece numai Id este un subset minim al cheii superioare.

Cheia principală: Id, deoarece Id este una dintre cheile candidate.

shijinmon Pallikal

Supercheie

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.