Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp pirminio ir unikalaus rakto

Mes jau ištyrėme įvairių tipų raktus, naudojamus duomenų bazėje ir schemoje ankstesniuose straipsniuose, būtent skirtumą tarp pirminio rakto ir užsienio rakto. Šiame straipsnyje išskiriame pagrindinį raktą ir unikalų raktą. Tiek pirminis raktas, tiek unikalus raktas yra naudojami vienodam identifikavimui identifikuoti ir unikalumui užtikrinti stulpelyje arba stulpelio derinyje.

Esminis skirtumas tarp pirminio rakto ir unikalaus rakto yra tas, kad pirminis raktas nepriima NULL reikšmių, o NULL reikšmės yra leidžiamos pagal unikalius rakto apribojimus.

Palyginimo diagrama

Palyginimo pagrindasPirminis raktasUnikalus raktas
PagrindinisJis naudojamas kaip kiekvienos lentelės eilutės unikalus identifikatorius.Ji taip pat išskirtinai nustato eilutę, kuri nėra apibrėžta kaip pirminis raktas.
NULL vertės priėmimasPirminis raktas nepriims NULL reikšmių.Unikalus priims NULL reikšmę.
Raktų, kuriuos galima apibrėžti lentelėje, skaičiusTik vienas pagrindinis raktasDaugiau nei vienas
IndeksasSukuria grupinį indeksąSukuria ne grupinį indeksą

Pirminio rakto apibrėžimas

Stulpelis gali būti vadinamas pagrindiniu jos lentelės raktu, jei jis unikaliai identifikuoja kiekvieną lentelės eilutę (eilutę). Jis užtikrina stalo vientisumo suvaržymus. Lentelėje leidžiama naudoti tik vieną pirminį raktą. Pirminis raktas nepriima dublikatų ir NULL reikšmių. Pirminis raktas pasirenkamas atsargiai, kai pokyčiai gali įvykti retai, o tai reiškia, kad pagrindinis lentelės raktas labai retai keičiasi.

Suprasime pirminio rakto sąvoką stalo pagalba. Čia mes sukuriame lentelę, pavadintą „Studentų lentelė“, kurioje yra atributai, tokie kaip „Roll_number“, „Name“, „Batch“, „Phone_number“, „Citizen_ID“.

Pateiktame pavyzdyje atributo ritinio numeris niekada negali turėti vienodos ir NULL reikšmės, nes kiekvienas studentas, įtrauktas į universitetą su unikaliu Roll_number. Nėra dviejų studentų, kurie gali turėti tą patį „Roll_number“, o kiekviena lentelės eilutė yra vienareikšmiškai identifikuojama su studentų sąrašo numeriu. Taigi, šiuo konkrečiu atveju Roll_number atributą galime padaryti kaip pagrindinį raktą.

Pirminį raktą galima nurodyti užsienio raktu. Jis sukuria unikalų grupinį indeksą ant stalo. Klasifikuojamame indekse duomenų eilutės surūšiuotos ir saugomos lentelėje arba vaizduose pagal jos pagrindines vertes. Lentelėje gali būti tik vienas suskirstytas indeksas, kurio priežastis yra ta, kad lentelės duomenų eilutės gali būti rūšiuojamos tik viena tvarka.

Unikalaus rakto apibrėžimas

Panašus į pirminį raktą, „ Unikalūs raktų apribojimai“ taip pat identifikuoja atskirą paketą vienareikšmiškai ryšyje. Tačiau tarp jų yra tam tikrų skirtumų. Lentelėje gali būti daugiau nei vienas unikalus raktas. Unikalūs raktų apribojimai gali priimti tik vieną NULL reikšmę stulpui.

Suprasime tai panašiu pavyzdžiu, kuriame turėjome Studentų lentelę su Roll_number, Name, Batch, Phone_number ir Citizen_ID atributais. Ritinio numerio atributas priskiriamas pirminiam raktui.

Čia „Citizen_ID“ gali būti priskirtas unikaliais apribojimais, kai kiekvienas „Citizen_ID“ stulpelio įrašas turi būti unikalus, nesikartojantis, nes kiekvienas šalies pilietis turi turėti savo unikalų identifikavimo numerį. Tačiau, jei studentas migruoja iš kitos šalies, tokiu atveju jis neturėtų „Citizen_ID“, o įrašas gali turėti NULL reikšmę, nes unikaliame suvaržyme leidžiama naudoti vieną NULL.

Unikalius apribojimus taip pat nurodo užsienio raktas. Jis gali būti naudojamas, kai kas nors nori įgyvendinti apribojimus stulpelyje ir stulpelių grupėje, kuri nėra pirminis raktas. Skirtingai nuo pirminio rakto, jis sukuria ne grupinį indeksą . Ne grupuojami indeksai turi atskirą struktūrą nuo duomenų eilių. Kiekvienas raktinių verčių įrašas nurodo duomenų eilutę, kurioje yra pagrindinė vertė, taigi ji naudoja nuorodas.

Pagrindiniai skirtumai tarp pirminio ir unikalaus rakto

  1. Kai atributas deklaruojamas kaip pirminis raktas, jis nepriims NULL reikšmių. Kita vertus, kai atributas, deklaruotas kaip unikalus, gali priimti vieną NULL reikšmę.
  2. Lentelė gali turėti tik pirminį raktą, o lentelėje gali būti daug unikalių apribojimų.
  3. Klasterio indeksas automatiškai sukuriamas, kai apibrėžiamas pirminis raktas. Priešingai, „Unikalus“ klavišas sukuria ne grupinį indeksą.

Išvada

Pirminis raktas ir unikalus raktas yra unikalios identifikatoriaus, skirto lentelės eilutėms, unikalios vertės stulpelyje arba stulpelių grupėje. Šie pagrindiniai suvaržymai labai skiriasi, kai kiekvienoje lentelėje gali būti ne daugiau kaip vienas pirminis raktas, o lentelė gali turėti keletą unikalių raktų, kurie nėra pirminiai.

Top