Soovitatav, 2020

Toimetaja Valik

Erinevus esmase võtme ja unikaalse võtme vahel

Oleme eelnevates artiklites juba uurinud erinevat tüüpi andmebaase ja skeemi kasutavaid võtmeid, nimelt esmase võtme ja võõrkeele vahelist erinevust. Selles artiklis eristame esmast võtit ja unikaalset võtit. Nii primaarset võtit kui ka ainulaadset võtit kasutatakse selleks, et identifitseerida tuple unikaalselt ja teostada veeru või veeru kombinatsiooni unikaalsust.

Oluline erinevus esmase võtme ja unikaalse võtme vahel on see, et esmane võti ei aktsepteeri NULL-väärtusi, samas kui NULL-väärtused on lubatud unikaalsete võtmepiirangute piires.

Võrdluskaart

Võrdluse alusEsmane võtiUnikaalne võti
PõhilineSeda kasutatakse iga tabeli rea kordumatu identifikaatorina.Samuti määrab see unikaalselt ära rea, mida ei ole määratletud primaarvõtmena.
NULL väärtuse aktsepteerimineEsmane võti ei aktsepteeri NULL väärtusi.Unikaalne aktsepteerib NULL väärtust.
Tabelis määratletavate võtmete arvAinult üks esmane võtiRohkem kui üks
IndeksLoob klastrite indeksiLoob mittekombinatsiooniga indeksi

Esmane võtme määratlus

Veeru võib nimetada selle tabeli esmane võtmeks, kui see identifitseerib unikaalselt iga tabeli järjekorra (rea). See rakendab tabelis terviklikkuse piiranguid. Tabelis on lubatud ainult üks esmane võti. Esmane võti ei aktsepteeri dubleeritud ja NULL väärtusi. Esmane võti valitakse hoolikalt, kui muutused võivad esineda harva, tähendab, et tabelis esmane võti muutub väga harva.

Mõistame tabeli abil esmase võtme mõistet. Loome siin tabeli nimega Student table, millel on sellised atribuudid nagu Roll_number, Name, Batch, Phone_number, Citizen_ID.

Antud näites ei pruugi atribuudirulli number kunagi olla identne ja NULL väärtusega, sest iga üliõpilane, kes on registreerunud ainulaadse Roll_numberga ülikoolis. Kahel õpilasel ei ole sama rullnumbrit ning iga tabeli rida on unikaalselt identifitseeritud õpilaste rullnumbriga. Niisiis saame Roll_number atribuudi esmaseks võtmeks teha antud juhul.

Esmane võti võib viidata võõrvõti abil. See loob lauale unikaalse klastrite indeksi . Klastrite indeksis sorteeritakse ja salvestatakse andmegrupid tabelis või vaadetes selle põhiväärtuste alusel. Tabelis võib olla ainult üks klastrite indeks, mille põhjuseks on see, et tabeli andmeliine saab sorteerida ainult ühes järjekorras.

Unikaalse võtme määratlus

Sarnaselt esmase võtmega identifitseerib unikaalsed võtmepiirangud ka individuaalse tuple suhetes unikaalselt. Kuid nende vahel on teatavaid erinevusi. Tabelis võib olla rohkem kui üks unikaalne võti. Unikaalsed võtmepiirangud võivad aktsepteerida ainult ühte NULL väärtust veerule.

Mõistame seda sarnase näitega, kus meil oli õpilaste tabel Roll_number, Name, Batch, Phone_number ja Citizen_ID atribuutidega. Rulli numbri atribuut on määratud esmase võtmega.

Siin saab Citizen_ID määrata ainulaadsete piirangutega, kus iga Citizen_ID veeru kanne peaks olema unikaalne, mitte duplikaat, sest iga riigi kodanikul peab olema oma unikaalne identifitseerimisnumber. Aga kui üliõpilane rändab teisest riigist, siis sellisel juhul ei oleks tal Citizen_ID ja sissekandel võiks olla NULL väärtus, kuna ainulaadses piirangus on lubatud üks NULL.

Ainulaadseid piiranguid viitab ka võõrvõti. Seda saab kasutada siis, kui keegi soovib rakendada piiranguid veerus ja veergude rühmas, mis ei ole esmane võti. Erinevalt primaarsest võtmest genereerib see mitte-klastrite indeksi . Mitte-klastrite indeksitel on andmete ridadest eraldiseisev struktuur. Iga selle võtmeväärtuse kirje viitab andmereale, mis sisaldab põhiväärtust, seega kasutab ta viiteid.

Peamised erinevused esmase võtme ja unikaalse võtme vahel

  1. Kui atribuut, mis on deklareeritud esmase võtmena, ei aktsepteeri NULL väärtusi. Teisest küljest, kui atribuut, mis on deklareeritud ainulaadsena, võib vastu võtta ühe NULL väärtuse.
  2. Tabelil võib olla ainult esmane võti, samas kui tabelis võib olla mitu unikaalset piirangut.
  3. Klastrite indeks luuakse automaatselt, kui primaarvõti on määratletud. Seevastu Unique klahv loob mitteklastrite indeksi.

Järeldus

Esmane võti ja Unikaalne võti täidavad tabeli ridade unikaalsete identifikaatorite eesmärki veerus või veergude rühmas olevate unikaalsete väärtustega. Need peamised piirangud on märkimisväärselt diferentseeritud, kui igal tabelil on maksimaalselt üks primaarne võti, samas kui tabelis võib olla mitu unikaalset võtit, mis ei ole esmane.

Top