DBMS-i võtmed: kandidaat-, super-, esmase-, võõrvõtmetüübid koos näitega
Mis on DBMS-i võtmed?
VÕTMED DBMS-is on atribuut või atribuutide kogum, mis aitab tuvastada relatsioonis (tabelis) rida (kortereid). Need võimaldavad teil leida seose kahe tabeli vahel. Võtmed aitavad teil tabeli rida üheselt tuvastada selle tabeli ühe või mitme veeru kombinatsiooni abil. Klahv on abiks ka unikaalse kirje või rea leidmisel tabelist. Andmebaasivõti on abiks ka unikaalse kirje või rea leidmisel tabelist.
Näide:
töötaja ID | Eesnimi | Perekonnanimi |
---|---|---|
11 | Andrew | Johnson |
22 | Tom | Wood |
33 | Alex | Hale |
Ülaltoodud näites on töötaja ID esmane võti, kuna see tuvastab unikaalselt töötaja kirje. Selles tabelis ei saa ühelgi teisel töötajal olla sama töötaja ID.
Miks me vajame võtit?
Siin on mõned põhjused SQL-võtme kasutamiseks DBMS-süsteemis.
- Klahvid aitavad tuvastada tabelis mis tahes andmerida. Reaalses rakenduses võib tabel sisaldada tuhandeid kirjeid. Lisaks võib kirjeid dubleerida. RDBMS-i võtmed tagavad, et saate nendest väljakutsetest hoolimata tabelikirje kordumatult tuvastada.
- Võimaldab luua seose tabelite vahel ja tuvastada nendevahelise seose
- Aidake teil suhetes jõustada identiteeti ja terviklikkust.
Võtmete tüübid DBMS-is (andmebaasihaldussüsteem)
DBMS-is on peamiselt kaheksa erinevat tüüpi võtit ja igal võtmel on erinevad funktsioonid:
- Super võti
- Esmane võti
- Kandidaadi võti
- Alternatiivne võti
- võõrvõti
- Liitvõti
- Komposiitvõti
- Surrogaatvõti
Vaatame kõiki DBMS-i võtmeid näitega:
- Super võti - Supervõti on ühe või mitme võtme rühm, mis identifitseerib tabeli ridu.
- Esmane võti – on tabeli veerg või veergude rühm, mis tuvastab unikaalselt selle tabeli iga rea.
- Kandidaadi võti – on atribuutide kogum, mis identifitseerib kordumatult tabelis olevaid kortereid. Kandidaadivõti on supervõti, millel pole korduvaid atribuute.
- Alternatiivne võti – on tabeli veerg või veergude rühm, mis tuvastab unikaalselt selle tabeli iga rea.
- Võõrvõti – on veerg, mis loob seose kahe tabeli vahel. Võõrvõtmete eesmärk on säilitada andmete terviklikkus ja võimaldada olemi kahe erineva eksemplari vahel navigeerida.
- Liitvõti – sellel on kaks või enam atribuuti, mis võimaldavad teil konkreetse kirje unikaalselt ära tunda. Võimalik, et iga veerg ei pruugi olla andmebaasis unikaalne.
- Liitvõti – on kombinatsioon kahest või enamast veerust, mis identifitseerivad üheselt tabeli ridu. Veergude kombinatsioon tagab unikaalsuse, kuigi individuaalne unikaalsus pole garanteeritud.
- Asendusvõti – Tehisvõtit, mille eesmärk on iga kirje kordumatult tuvastada, nimetatakse asendusvõtmeks. Sellised võtmed on ainulaadsed, kuna need luuakse siis, kui teil pole loomulikku primaarvõtit.
Mis on supervõti?
Supervõti on ühe või mitme võtme rühm, mis identifitseerib tabeli ridu. Supervõtmel võib olla täiendavaid atribuute, mida pole unikaalseks tuvastamiseks vaja.
Näide:
EmpSSN | EmpNum | Empname |
---|---|---|
9812345098 | AB05 | Näidatud |
9876512345 | AB06 | Roslyn |
199937890 | AB07 | James |
Ülaltoodud näites on EmpSSN ja EmpNumi nimi supervõtmed.
Mis on primaarvõti?
PÕHIVÕTI in DB-süsteemid on tabeli veerg või veergude rühm, mis tuvastab unikaalselt selle tabeli iga rea. Esmane võti ei saa olla duplikaat, mis tähendab, et sama väärtus ei tohi tabelis esineda rohkem kui üks kord. Tabelis ei saa olla rohkem kui üks primaarvõti.
Esmase võtme määratlemise reeglid:
- Kahel real ei tohi olla sama primaarvõtme väärtust
- Igal real peab olema primaarvõtme väärtus.
- Primaarvõtme väli ei saa olla null.
- Primaarvõtme veerus olevat väärtust ei saa kunagi muuta ega värskendada, kui mõni võõrvõti viitab sellele primaarvõtmele.
Näide:
Järgmises näites StudID
on esmane võti.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-POST |
---|---|---|---|---|
1 | 11 | Tom | Hind | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Mis on alternatiivne võti?
VAHENDUSKLAHVID on tabeli veerg või veergude rühm, mis tuvastab unikaalselt selle tabeli iga rea. Tabelis võib primaarvõtme jaoks olla mitu valikut, kuid primaarvõtmeks saab määrata ainult ühe. Kõiki võtmeid, mis ei ole primaarvõti, nimetatakse alternatiivvõtmeteks.
Näide:
Selles tabelis on StudID, Roll No, Email kvalifitseeritud saama primaarvõtmeks. Kuid kuna StudID on primaarvõti, siis Roll No, Email muutub alternatiivseks võtmeks.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-POST |
---|---|---|---|---|
1 | 11 | Tom | Hind | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Mis on kandidaadivõti?
KANDIDAADI VÕTI SQL-is on atribuutide kogum, mis identifitseerib kordumatult tabelis olevaid kortereid. Kandidaadivõti on supervõti, millel pole korduvaid atribuute. Esmane võti tuleks valida kandidaatvõtmete hulgast. Igal tabelis peab olema vähemalt üks kandidaadivõti. Tabelil võib olla mitu kandidaatvõtit, kuid ainult üks esmane võti.
Kandidaadi võtme omadused:
- See peab sisaldama unikaalseid väärtusi
- SQL-i kandidaatvõtmel võib olla mitu atribuuti
- Ei tohi sisaldada nullväärtusi
- Unikaalsuse tagamiseks peaks see sisaldama minimaalseid välju
- Iga kirje unikaalne identifitseerimine tabelis
Kandidaadivõti Näide: Antud tabelis on Stud ID, Roll No ja email kandidaadivõtmed, mis aitavad meil õpilaskirjet tabelis unikaalselt tuvastada.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-POST |
---|---|---|---|---|
1 | 11 | Tom | Hind | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Mis on välisvõti?
VÄLISVÕTI on veerg, mis loob seose kahe tabeli vahel. Võõrvõtmete eesmärk on säilitada andmete terviklikkus ja võimaldada olemi kahe erineva eksemplari vahel navigeerimist. See toimib ristviitena kahe tabeli vahel, kuna see viitab teise tabeli primaarvõtmele.
Näide:
Osakonnakood | Osakonnanimi |
---|---|
001 | teadus |
002 | Inglise |
005 | arvuti |
Õpetaja ID | Fnimi | Lnimi |
---|---|---|
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | Mike | Brunton |
Selles võtmes dbms-i näites on meil koolis kaks tabelit, õpetada ja osakond. Samas pole kuidagi näha, milline otsing millises osakonnas töötab.
Selles tabelis, lisades Deptcode'i võõrvõtme õpetaja nimele, saame luua seose kahe tabeli vahel.
Õpetaja ID | Osakonnakood | Fnimi | Lnimi |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joseph |
B009 | 001 | Mike | Brunton |
Seda mõistet tuntakse ka kui referentsi Integrity.
Mis on liitvõti?
LIIDVÕTI sellel on kaks või enam atribuuti, mis võimaldavad teil konkreetse kirje unikaalselt ära tunda. Võimalik, et iga veerg ei pruugi olla andmebaasis unikaalne. Teise veeru või veergudega kombineerituna muutub liitklahvide kombinatsioon aga ainulaadseks. Andmebaasi liitvõtme eesmärk on iga tabeli kirje kordumatu tuvastamine.
Näide:
Tellimuse nr | PorductID | TOOTE TÜÜP | Kogus |
---|---|---|---|
B005 | JAP102459 | Hiir | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | LCD-ekraan | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Laserprinter | 3 |
Selles näites ei saa OrderNo ja ProductID olla primaarvõtmed, kuna need ei tuvasta kirjet üheselt. Siiski saab kasutada tellimuse ID ja toote ID liitvõtit, kuna see tuvastas iga kirje kordumatult.
Mis on liitvõti?
KOMPOSIITSIVÕTI on kombinatsioon kahest või enamast veerust, mis identifitseerivad üheselt tabeli ridu. Veergude kombinatsioon tagab unikaalsuse, kuigi individuaalselt unikaalsust ei garanteerita. Seetõttu ühendatakse need tabelis kirjete unikaalseks tuvastamiseks.
Liitvõtme ja liitvõtme erinevus seisneb selles, et liitvõtme mis tahes osa võib olla võõrvõti, kuid liitvõti võib või mitte olla võõrvõti osa.
Mis on asendusvõti?
SUROGAATVÕTMED on Tehisvõtit, mille eesmärk on iga kirje unikaalne tuvastada, nimetatakse asendusvõtmeks. Selline osaline võti dbms-is on ainulaadne, kuna see luuakse siis, kui teil pole loomulikku primaarvõtit. Need ei anna tabeli andmetele mingit tähendust. DBMS-i asendusvõti on tavaliselt täisarv. Asendusvõti on väärtus, mis genereeritakse vahetult enne kirje tabelisse lisamist.
Fnimi | Perekonnanimi | Algusaeg | Lõpuaeg |
---|---|---|---|
Anne | sepp | 09:00 | 18:00 |
tungraud | Francis | 08:00 | 17:00 |
Anna | McLean | 11:00 | 20:00 |
Näidatud | Willam | 14:00 | 23:00 |
Ülaltoodud näites on näidatud erinevate töötajate vahetuste ajad. Selles näites on iga töötaja kordumatuks tuvastamiseks vaja asendusvõtit.
Surrogaatvõtmed sisse SQL on lubatud, kui
- Ühelgi atribuudil pole primaarvõtme parameetrit.
- Tabelis, kui primaarvõti on liiga suur või keeruline.
Erinevus esmase võtme ja võõrvõtme vahel
Peamine erinevus primaarvõtme ja välisvõtme vahel on järgmine:
Esmane võti | võõrvõti |
---|---|
Aitab teil kirjet tabelis unikaalselt tuvastada. | See on väli tabelis, mis on teise tabeli primaarvõti. |
Primaarvõti ei aktsepteeri kunagi nullväärtusi. | Võõrvõti võib aktsepteerida mitut nullväärtust. |
Esmane võti on rühmitatud register ja DBMS-i tabelis olevad andmed on füüsiliselt korraldatud rühmitatud indeksi järjestuses. | Võõrvõti ei saa automaatselt luua indeksit, ei rühmitatud ega rühmitamata. Siiski saate võõrvõtmele indeksi käsitsi luua. |
Tabelis võib olla üks esmane võti. | Tabelis võib olla mitu võõrvõtit. |
kokkuvõte
- Mis on DBMS-is võti: DBMS-i võti on atribuut või atribuutide komplekt, mis aitab tuvastada relatsioonis (tabelis) rida (kortereid)
- Võtmed sisse RDBMS võimaldab teil luua seose tabelite vahel ja tuvastada seoseid tabelite vahel
- DBMS-i kaheksat tüüpi võtit on ülim, esmane, kandidaatvõti, alternatiivne, võõrvõti, liit-, liitvõti ja asendusvõti.
- Supervõti on ühe või mitme võtme rühm, mis identifitseerib tabeli ridu.
- Tabeli veergu või veergude rühma, mis aitab meil selle tabeli iga rida üheselt identifitseerida, nimetatakse primaarvõtmeks
- Kõiki erinevaid DBMS-i võtmeid, mis ei ole primaarvõtmed, nimetatakse alternatiivvõtmeteks
- Korduva atribuudita supervõtit nimetatakse kandidaatvõtmeks
- Liitvõti on võti, millel on palju välju, mis võimaldavad teil konkreetse kirje unikaalselt ära tunda
- Võtit, millel on mitu atribuuti tabeli ridade unikaalseks tuvastamiseks, nimetatakse liitvõtmeks
- Tehisvõtit, mille eesmärk on iga kirje kordumatult tuvastada, nimetatakse asendusvõtmeks
- Esmane võti ei aktsepteeri kunagi nullväärtusi, samas kui võõrvõti võib aktsepteerida mitut nullväärtust.