7 tipuri de chei în DBMS explicate

Publicat: 2021-03-12

Cuprins

Care sunt cheile în DBMS?

O cheie în DBMS este un atribut sau un set de atribute care ajută la identificarea unică a unui tuplu (sau rând) într-o relație (sau tabel). Cheile sunt, de asemenea, folosite pentru a stabili relații între diferitele tabele și coloane ale unei baze de date relaționale. Valorile individuale dintr-o cheie se numesc valori cheie.

Acest blog va acoperi tot ce trebuie să știți despre cheile din DBMS și despre închiderea atributului găsiți Cheia oricărei relații (tabel). Rămâi până la sfârșitul articolului pentru câteva întrebări critice GATE despre cheile în DBMS.

De ce sunt necesare cheile?

O cheie este utilizată în definițiile diferitelor tipuri de constrângeri de integritate. Un tabel dintr-o bază de date reprezintă o colecție de înregistrări sau evenimente pentru o anumită relație. Acum pot exista mii și mii de astfel de înregistrări, dintre care unele pot fi duplicate.

Ar trebui să existe o modalitate de a identifica fiecare înregistrare separat și unic, adică fără duplicate. Cheile ne permit să fim eliberați de această bătaie de cap.

Să luăm un exemplu real al bazei de date a fiecărui student care studiază într-o facultate de inginerie.

Ce atribut al elevului credeți că va identifica în mod unic pe fiecare dintre ei? Vă puteți referi la un student folosind numele, departamentul, anul și secțiunea acestuia. Sau, puteți menționa doar numărul de înregistrare universitar al studentului și puteți obține toate celelalte detalii din acesta.

O cheie poate fi fie o combinație de mai mult de un atribut (sau coloane) sau doar un singur atribut. Motivul principal al acestui lucru este de a oferi fiecărei înregistrări o identitate unică .

Citește și: DBMS vs RDBMS

Tipuri de chei în DBMS

Există șapte tipuri de chei în DBMS:

  1. Cheia principala
  2. Cheia candidatului
  3. Super Cheie
  4. Cheie externă
  5. Cheie compusă
  6. Cheie alternativă
  7. Cheie unică

Să ne uităm la fiecare dintre ele separat.

1. Cheie primară

O cheie primară este o coloană a unui tabel sau un set de coloane care ajută la identificarea fiecărei înregistrări prezente în acel tabel în mod unic. Într-un tabel poate exista o singură cheie primară. De asemenea, cheia primară nu poate avea aceleași valori repetate pentru orice rând. Fiecare valoare a cheii primare trebuie să fie diferită, fără repetări.

Constrângerea PRIMARY KEY (PK) pusă pe o coloană sau un set de coloane nu le va permite să aibă valori nule sau duplicate. Un tabel poate avea o singură constrângere de cheie primară. Orice valoare din cheia primară nu poate fi schimbată de nicio cheie străină (explicată mai jos) care se referă la aceasta.

2. Super Cheie

Super Key este setul tuturor cheilor care ajută la identificarea unică a rândurilor dintr-un tabel. Aceasta înseamnă că toate acele coloane ale unui tabel care sunt capabile să identifice celelalte coloane ale acelui tabel în mod unic vor fi considerate super-chei.

Super Key este supersetul unei chei candidate (explicat mai jos). Cheia primară a unui tabel este aleasă din setul de super chei pentru a deveni atributul de identitate al tabelului.

3. Cheia candidatului

Cheile candidate sunt acele atribute care identifică în mod unic rândurile unui tabel. Cheia primară a unui tabel este selectată dintr-una dintre cheile candidate. Deci, cheile candidate au aceleași proprietăți ca și cheile primare explicate mai sus. Într-un tabel pot exista mai multe chei candidate.

4. Cheie alternativă

După cum sa menționat mai sus, un tabel poate avea mai multe opțiuni pentru o cheie primară; cu toate acestea, poate alege doar unul. Deci, toate cheile care nu au devenit cheia primară se numesc chei alternative.

5. Cheie străină

Cheia externă este folosită pentru a stabili relații între două tabele. O cheie externă va necesita fiecare valoare dintr-o coloană sau set de coloane pentru a se potrivi cu cheia primară a tabelului de referință. Cheile externe ajută la menținerea datelor și a integrității referențiale.

6. Cheie compusă

Cheia compusă este un set de două sau mai multe atribute care ajută la identificarea unică a fiecărui tuplu dintr-un tabel. Este posibil ca atributele din set să nu fie unice atunci când sunt luate în considerare separat. Cu toate acestea, atunci când sunt luate împreună, ele vor asigura unicitatea.

7. Cheie unică

Cheia unică este o coloană sau un set de coloane care identifică în mod unic fiecare înregistrare dintr-un tabel. Toate valorile vor trebui să fie unice în această cheie. O cheie unică diferă de o cheie primară deoarece poate avea o singură valoare nulă, în timp ce o cheie primară nu poate avea nicio valoare nulă.

Dependențe funcționale

Acum că cunoaștem un alt tip de chei în DBMS, să vedem cum să le identificăm atunci când li se oferă un tabel dintr-o bază de date. Pentru aceasta, folosim conceptul de dependențe funcționale.

O dependență funcțională (FD) este o constrângere între două seturi de atribute. Această constrângere este pentru oricare două tupluri t1 și t2 din r dacă t1[X] = t2[X], atunci au t1[Y] = t2[Y]. Aceasta înseamnă că valoarea componentei X a unui tuplu determină în mod unic valoarea componentei Y.

FD este notat cu X? Y (acesta se citește ca „Y depinde funcțional de X”). Partea stângă se numește determinant, iar partea dreaptă se numește dependentă.

Închiderea unui set de atribute

O închidere este un set de toate FD posibile derivate dintr-un set dat de FD. Este denumit și un set complet de FD. Dacă F este folosit pentru a dona setul de FD pentru relația R, atunci închiderea unui set de FD implicat de F este notat cu F+ .

Vom defini acum închiderea unui set de atribute referitoare la un set dat de FD. Va ajuta la identificarea super-cheie a relației și pentru a afla dacă un FD poate fi dedus dintr-un anumit set de FD sau un FD este redundant. După găsirea unui set de dependențe funcționale de o relație, următorul pas este găsirea Super-cheii pentru relația respectivă (tabel).

Apoi aflăm închiderea setului de atribute pentru a decide dacă un atribut (sau un set de atribute) al oricărui tabel este o cheie pentru acel tabel sau nu. Setul de atribute care sunt dependente funcțional de atributul X se numește închiderea atributului X și poate fi reprezentat ca X+.

Mai jos sunt câteva reguli necesare pentru a determina F+:

  1. Reflexivitate: Dacă X este o supermulțime a lui Y sau Y este o submulțime a lui X, atunci X ? Y.
  2. Augmentare: Dacă X ? Y, apoi XZ? YZ. Sau dacă Z ⊆W și X ? Y, apoi XW? YZ.
  3. Tranzitivitate: Dacă X ? Y și Y? Z, apoi X? Z.
  4. Unire: Dacă X ? Y și X? Z, apoi X? YZ.
  5. Descompunere: Dacă X ? YZ, apoi X? Y și X? Z.
  6. Pseudo-tranzitivitate: Dacă X ? Y și YW? Z, apoi XW? Z.

Cum să găsiți chei candidate și super chei folosind închiderea atributului?

  • Dacă închiderea atributelor unui set de atribute conține toate atributele relației, setul de atribute va fi super-cheia relației.
  • Dacă niciun subset al acestui set de atribute nu poate determina funcțional toate atributele relației, acel set va fi cheia candidată.

Să discutăm câteva întrebări GATE adresate anterior pentru a vedea aplicațiile de închidere a atributelor.

GATE 2014

Se consideră schema de relații R = {E, F, G, H, I, J, K, L, M, N} și mulțimea dependențelor funcționale {{E, F} ? {G}, {F}? {I, J}, {E, H}? {K, L}, K? {M}, L? {N} pe R. Care este cheia pentru R?

(A) {E, F}

(B) {E, F, H}

(C) {E, F, H, K, L}

(D) {E}

Abordare: Vom verifica închiderea atributului tuturor opțiunilor oferite. Mulțimea a cărei închidere ne va oferi întreaga relație R va fi răspunsul corect.

A: {E, F} + = {EFGIJ} ≠ R

B: {E, F, H} + = {EFGHIJKLMN} = R

C: {E, F, H, K, L} + = {EFGHIJKLMN} = R

D: {E} + = {E} ≠ R

Ambele opțiuni B și C ne oferă întreaga schemă de relații. Cu toate acestea, alegem opțiunea minimă pentru a fi răspunsul corect, deoarece o cheie de candidat ar trebui să fie super-cheia minimă .

Răspuns: B

GATE 2013

Relația R are opt atribute ABCDEFGH. Câmpurile lui R conțin numai valori atomice. F = {CH ? G, A? BC, B? CFH, E? A, F? EG} este un set de dependențe funcționale (FD), astfel încât F+ este exact mulțimea de FD care este valabilă pentru R.

Câte chei candidate are relația R?

(A) 3

(B) 4

(C) 5

(D) 6

Abordare: vom lua LHS pentru fiecare dependență funcțională dată în întrebare și vom găsi închiderile de atribute ale acestora.

CH+ = G

A+ = ABCEFGH

B+ = ABCEFGH

E+ = ABCEFGH

F+ = ABCEFGH

Deci vedem că închiderile lui A, B, E, F au întreaga relație, cu excepția atributului D. Deci există un total de 4 chei candidate AD, BD, ED și FD.

Raspuns: B

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Cheile și dependențele funcționale joacă un rol foarte important în proiectarea unei baze de date. Aceste concepte ajută, de asemenea, la găsirea diferenței dintre designul bun și rău al bazei de date. Procesul final de eliminare a redundanțelor și eficientizarea bazei de date este normalizarea , care utilizează toate conceptele menționate în acest articol.

Dacă sunteți interesat să aflați mai multe despre dezvoltarea full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte, și misiuni, statutul de absolvenți IIIT-B, proiecte practice practice și asistență la locul de muncă cu firme de top.

Care sunt diferitele tipuri de chei în DBMS?

Există mai multe tipuri de chei utilizate într-o bază de date. Cheia primară este utilizată pentru a identifica un anumit rând dintr-un tabel. Cheia unică este utilizată pentru a se asigura că există o singură intrare într-un anumit tabel. O cheie externă este utilizată pentru a lega intrările dintr-un tabel la altul. O cheie compusă este o colecție de mai multe coloane dintr-un tabel, care toate împreună sunt folosite pentru a identifica un rând. Aceste chei vă ajută să identificați o anumită coloană a unui rând dintr-un tabel în mod precis și unic. Prin urmare, este foarte important să utilizați coloanele precise ca o cheie conform cazului dvs. de utilizare.

Ce este o cheie externă în DBMS?

Cheia externă este o coloană sau un set de coloane care este folosit pentru a lega rândurile unui tabel cu rândurile altui tabel. Este folosit pentru a preveni inconsecvența datelor. În SGBD, cheia externă este implementată folosind o singură coloană sau un set de coloane (coloană logică), iar SGBD verifică dacă valorile din aceste coloane se potrivesc cu valorile din coloanele la care se face referire (cheia primară). De exemplu, să presupunem că tabelul A și tabelul B au ambele o coloană numită coloana A. Puteți spune că coloana A din tabelul A este referențială la coloana A din tabelul B. Aceasta poate fi imaginată ca o săgeată cu o valoare cheie străină care indică către masa țintă.

Ce este o cheie compusă în DBMS?

Cheia compusă este o supercheie. Este o combinație de una sau mai multe coloane. Permite construirea unei singure chei dintr-o combinație de coloane diferite. Se mai numește și identificator compus, cheie compusă sau cheie compusă. Pe scurt, puteți utiliza un set de coloane pentru a identifica un rând unic în tabelul dvs., în cazul în care nu aveți o singură coloană care să poată identifica un rând în mod unic. Într-un astfel de caz, setul tuturor coloanelor pe care le veți utiliza va fi considerat o cheie compusă. Prin urmare, se poate spune pe bună dreptate că o cheie primară are mai mult de o coloană, este redenumită ca o cheie compusă.