Vai ir kāda atšķirība starp divām primārajām taustiņiem un salikto atslēgu?


Atbilde 1:

Jā, ir atšķirība. Pirms ķerties pie atšķirībām, jums jāsaprot, ka “atslēga” ir lauks, kura vērtība unikāli identificēs rindu. To sauc par atslēgas “unikalitāti”. Ir arī otrs atslēgas īpašums (kurā ir atšķirība starp salikto atslēgu un vairākām taustiņiem), proti, īpašība “minimums”. Tas nosaka, ka no atslēgas nedrīkst būt iespējams noņemt lauku, lai unikalitāte tiktu iznīcināta.

Apsveriet tabulu ar studentu eksāmenu vērtībām šādi:

  • ScoreId (unikāls tekošais numurs) StudentId (studentu reģistrācijas ID garantēts, ka tas ir unikāls jebkuram studentam neatkarīgi no akadēmiskā gada; FK uz studentu galda) SubjectNameSubjectTestIdentifier (unikāls testa ID katram testam, ko kādreiz ir veikusi iestāde; FK TestMaster. tabula, kurā norādīts akadēmiskais gads, priekšmets, testa datums un citi testa atribūti)

Iepriekšminētajā gadījumā {ScoreId}, {StudentId, SubjectName, SubjectTestIdentifer, SubjectScore} un {StudentId, SubjectTestIdentifier} ir visi taustiņi - katrs no šiem lauku kopiem unikāli identificēs rindu, par kuru runājat.

Bet tagad apsveriet iespēju {StudentId, SubjectName, SubjectTestIdentifier, SubjectScore} un {StudentId, SubjectTestIdentifier} - lai arī abi šie elementi atbilst unikalitātes īpašībai, pirmajam neizdodas veikt “minimitātes” testu - notrieciet “SubjectName” un “SubjectScore”, un jūs varat joprojām unikāli identificējiet rindu.

Tagad pie jautājuma: Šajā gadījumā {ScoreId} ir atslēga, bet ne salikta atslēga, turpretī {StudentId, SubjectTestIdentifier} ir salikta atslēga. Visas saliktās atslēgas ir unikālas atslēgas, bet ne visas unikālās atslēgas ir saliktas atslēgas.


Atbilde 2:

Ja kā galvenās atslēgas deklarējat vairākus atribūtus, tie kopā veido saliktu atslēgu. Saliktās atslēgas parasti tiek izveidotas, ja nav nevienas šādas atslēgas, caur kuru jūs varētu unikāli identificēt katru rindu. Tātad jūs izveidojat lauku kombināciju, kas kopā var unikāli identificēt rindas.

Ja jums ir vairākas atslēgas, kuras var padarīt par primāro atslēgu, šādus laukus sauc par kandidāta vai sekundāro atslēgu.

Tātad vairākas definētas primārās atslēgas un saliktā atslēga būtībā ir vienādas.