Er der nogen forskel mellem to primære nøgler og en sammensat nøgle?


Svar 1:

Ja, der er en forskel. Inden du kommer til forskellen, skal du forstå, at en “nøgle” er et felt, hvis værdi unikt identificerer en række. Dette kaldes en "nøgles egenskab" for en nøgle. Der er en anden egenskab ved en nøgle (hvor ligger forskellen mellem en sammensat nøgle og flere nøgler) - nemlig egenskaben "minimalitet". Dette fastlægger, at det ikke må være muligt at fjerne et felt fra nøglen, således at det unikke bliver ødelagt.

Overvej en tabel med studerendes eksamensscore som følger:

  • ScoreId (et unikt løbende nummer) StudentId (den studerendes registrerings-id garanteres at være unik for enhver studerende uanset studieår; FK på Studenttabellen) SubjectNameSubjectTestIdentifier (et unikt test-id for hver test nogensinde udført af institutionen; FK på TestMaster tabel, der angiver det akademiske år, emnet, datoen for testen og andre attributter for testen) SubjectScore

I ovenstående tilfælde er {ScoreId}, {StudentId, SubjectName, SubjectTestIdentifer, SubjectScore} og {StudentId, SubjectTestIdentifier} alle nøgler - hvert af disse sæt felter identificerer entydigt den række, du taler om.

Men overvej nu {StudentId, SubjectName, SubjectTestIdentifier, SubjectScore} og {StudentId, SubjectTestIdentifier} - mens begge disse tilfredsstiller unikheden, den første mislykkes testen "minimalitet" - slå "SubjectName" og "SubjectScore" ud, og du kan identificer stadig entydigt rækken.

Så nu kommer du til dit spørgsmål: I dette tilfælde er {ScoreId} en nøgle, men ikke en sammensat nøgle, hvorimod {StudentId, SubjectTestIdentifier} er en sammensat nøgle. Alle sammensatte nøgler er unikke nøgler, men ikke alle unikke nøgler er sammensatte nøgler.


Svar 2:

Hvis du erklærer flere attributter som primære nøgler, danner de tilsammen en sammensat nøgle. Sammensatte nøgler oprettes generelt, når der ikke er en sådan nøgle, gennem hvilken du kan identificere hver række. Så du opretter en kombination af felter, som sammen unikt kan identificere rækker.

Når du har flere nøgler, der kan oprettes som en primær nøgle, kaldes sådanne felter kandidat eller sekundær nøgle.

Så flere primære nøgler defineret og sammensat nøgle er dybest set de samme.