Mis on DBMS-i võtmed?
DBMS-i KEYS on atribuut või atribuutide kogum, mis aitab teil tuvastada relatsiooni (tabeli) rida. Need võimaldavad teil leida seose kahe tabeli vahel. Klahvid aitavad teil tabeli ühe või mitme veeru kombinatsiooni abil tabeli rea ainulaadselt tuvastada. Võti on abiks ka tabelist ainulaadse kirje või rea leidmisel. Andmebaasivõtmest on abi ka tabelist ainulaadse kirje või rea leidmisel.
Näide:
töötaja ID | Eesnimi | Perekonnanimi |
11 | Andrew | Johnson |
22 | Tom | Puit |
33 | Alex | Hale |
Eespool toodud näites on töötaja ID esmane võti, kuna see identifitseerib töötaja kirje ainulaadselt. Selles tabelis ei saa ühelgi teisel töötajal olla sama töötaja ID.
Selles õpetuses saate teada:
- Mis on võtmed?
- Miks me vajame võtit?
- Erinevad võtmed andmebaaside haldussüsteemis
- Mis on super võti?
- Mis on esmane võti?
- Mis on alternatiivne võti?
- Mis on kandidaatide võti?
- Mis on võti?
- Mis on liitvõti?
- Mis on komposiitvõti?
- Mis on asendusvõti?
- Erinevus esmase võtme ja võõra võtme vahel
Miks me vajame võtit?
Siin on mõned põhjused sql-võtme kasutamiseks DBMS-süsteemis.
- Võtmed aitavad teil tabelis mis tahes rida tuvastada. Reaalses maailmas võib tabel sisaldada tuhandeid kirjeid. Pealegi võiks kirjeid dubleerida. Võtmed tagavad, et saate nendest väljakutsetest hoolimata tabelirekordi ainulaadselt tuvastada.
- Võimaldab luua tabelite vahelise seose ja tuvastada seose tabelite vahel
- Aidake teil suhetes identiteeti ja ausust jõustada.
Andmebaaside haldussüsteemi võtmete tüübid
DBMS-is on peamiselt seitset erinevat tüüpi võtmeid ja igal võtmel on erinevad funktsioonid:
- Super Key - super võ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 identifitseerib selle tabeli iga rea ainulaadselt.
- Kandidaatvõti - on atribuutide kogum, mis identifitseerib tabelis ühikuid kordumatult. Kandidaatvõti on supervõti, millel pole korduvaid atribuute.
- Alternatiivvõtme - on tabeli veerg või veergude rühm, mis identifitseerib selle tabeli iga rea ainulaadselt.
- Välisvõtme - on veerg, mis loob suhte kahe tabeli vahel. Võõrvõtmete eesmärk on säilitada andmete terviklikkus ja võimaldada navigeerimist üksuse kahe erineva eksemplari vahel.
- Liitvõtmega - sellel on vähemalt kaks atribuuti, mis võimaldavad konkreetse kirje ainulaadselt ära tunda. Võimalik, et iga veerg ei pruugi andmebaasis olla ainulaadne.
- Liitvõtit - tehisvõtit, mille eesmärk on iga kirje ainulaadne identifitseerimine, nimetatakse asendusvõtmeks. Sellised võtmed on ainulaadsed, kuna need on loodud siis, kui teil pole ühtegi loomulikku primaarvõtit.
- Surrogate Key - tehisvõtit, mille eesmärk on iga kirje kordumatu identifitseerimine, nimetatakse asendusvõtmeks. Sellised võtmed on ainulaadsed, kuna need on loodud siis, kui teil pole ühtegi loomulikku primaarvõtit.
Mis on Super-võti?
Superklahv on ühe või mitme võtme rühm, mis identifitseerib tabeli ridu. Super-võtmel võib olla täiendavaid atribuute, mida pole vaja kordumatuks tuvastamiseks.
Näide:
EmpSSN | EmpNum | Emanimi |
9812345098 | AB05 | Näidatud |
9876512345 | AB06 | Roslyn |
199937890 | AB07 | James |
Eespool toodud näites on EmpSSN ja EmpNum nimi superklahvid.
Mis on esmane võti?
PRIMARY KEY on tabeli veerg või veergude rühm, mis identifitseerib selle tabeli iga rida kordumatult. Esmane võti ei saa olla duplikaat, mis tähendab, et sama väärtust ei saa tabelis kuvada rohkem kui üks kord. Tabelis ei saa olla rohkem kui üks esmane võti.
Reeglid esmase võtme määratlemiseks:
- Kahel real ei saa olla sama esmase võtme väärtus
- Igal real peab olema esmane võti.
- Esmane võti ei saa olla null.
- Peamise võtme veeru väärtust ei saa kunagi muuta ega uuendada, kui mõni võti viitab sellele primaarvõtmele.
Näide:
Järgmises näites on StudID
peamine võti.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-post |
1 | 11 | Tom | Hind | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | 12 | Nick | Wright | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | 13 | Dana | Natan | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Mis on alternatiivne võti?
ALTERNATE KEYS on tabeli veerg või veergude rühm, mis identifitseerib selle tabeli iga rea ainulaadselt. Tabelil võib esmase võtme jaoks olla mitu valikut, kuid peamiseks võtmeks saab määrata ainult ühe. Kõiki võtmeid, mis pole primaarvõti, nimetatakse alternatiivvõtmeks.
Näide:
Selles tabelis on StudID, rull nr, e-post kvalifitseerunud peamiseks võtmeks. Kuna aga StudID on peamine võti, siis nimetus Roll, muutub e-post alternatiivseks võtmeks.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-post |
1 | 11 | Tom | Hind | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | 12 | Nick | Wright | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | 13 | Dana | Natan | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Mis on kandidaatide võti?
KANDIDAADIVÕTI on atribuutide kogum, mis identifitseerib tabeli ühikuid kordumatult. Kandidaatvõti on supervõti, millel pole korduvaid atribuute. Peamine võti tuleks valida kandidaatvõtmete hulgast. Igal tabelil peab olema vähemalt üks kandidaatvõti. Tabelil võib olla mitu kandidaatvõtit, kuid ainult üks esmane võti.
Kandidaadi võtme omadused:
- See peab sisaldama unikaalseid väärtusi
- Kandidaatvõtmel võib olla mitu atribuuti
- Ei tohi sisaldada nullväärtusi
- Unikaalsuse tagamiseks peaks see sisaldama minimaalseid välju
- Iga tabeli kirje identifitseerimine
Näide: antud tabelis on Stud ID, nimekiri nr ja e-posti aadress kandidaatvõtmed, mis aitavad meil tabelis õpilasrekordi ainulaadselt tuvastada.
StudID | Rull nr | Eesnimi | Perekonnanimi | E-post |
1 | 11 | Tom | Hind | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | 12 | Nick | Wright | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | 13 | Dana | Natan | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Mis on võti?
FOREIGN KEY on veerg, mis loob suhte kahe tabeli vahel. Võõrvõtmete eesmärk on säilitada andmete terviklikkus ja võimaldada navigeerimist üksuse kahe erineva eksemplari vahel. See toimib ristviitena kahe tabeli vahel, kuna see viitab teise tabeli primaarvõtmele.
Näide:
DeptCode | Osakonna nimi |
001 | Teadus |
002 | Inglise |
005 | Arvuti |
Õpetaja ID | Fname | Lname |
B002 | David | Warner |
B017 | Sara | Joosep |
B009 | Mike | Brunton |
Selles võtmes dbms näites on meil koolis kaks tabelit, õpetus ja osakond. Kuid pole mingit võimalust näha, milline otsinguosakond millises osakonnas töötab.
Selles tabelis, lisades Deptcode'i võõrvõti õpetaja nimele, saame luua kahe tabeli vahelise seose.
Õpetaja ID | DeptCode | Fname | Lname |
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joosep |
B009 | 001 | Mike | Brunton |
Seda mõistet tuntakse ka kui viitavat terviklikkust.
Mis on liitklahv?
COMPOUND KEY'il on kaks või enam atribuuti, mis võimaldavad konkreetse kirje ainulaadselt ära tunda. Võimalik, et iga veerg ei pruugi andmebaasis olla ainulaadne. Kuid kombineerituna teiste veergude või veergudega muutub liitvõtmete kombinatsioon ainulaadseks. Liitvõtme eesmärk on andmebaasis iga tabelis olev kirje ainulaadselt tuvastada.
Näide:
Tellimuse nr | PorductID | tootenimi | 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 peamine võti, kuna see ei tuvasta kirjet üheselt. Siiski võiks kasutada tellimuse ID ja toote ID liitvõtit, kuna see identifitseerib iga kirje kordumatult.
Mis on liitklahv?
KOMPOSIITVÕTI on kahe või enama veeru kombinatsioon, mis identifitseerib tabeli ridu ainulaadselt. Veergude kombinatsioon tagab ainulaadsuse, kuigi individuaalset kordumatust ei ole tagatud. Seega on need ühendatud, et tabelis kirjeid ainulaadselt tuvastada.
Liitvõtme ja liitvõtme erinevus seisneb selles, et liitvõtme mis tahes osa võib olla võõras võti, kuid liitvõtm võib võõra võtme osa olla või mitte.
Mis on asendusvõti?
SURROGATE KEYS on kunstlik võti, mille eesmärk on iga kirje kordumatu identifitseerimine, seda nimetatakse asendusvõtmeks. Selline dbms-is osaline võti on ainulaadne, kuna see luuakse siis, kui teil pole ühtegi loomulikku primaarvõtit. Need ei anna tabeli andmetele mingit tähendust. Surrogate võti on tavaliselt täisarv. Asendusvõti on väärtus, mis genereeritakse vahetult enne kirje tabelisse sisestamist.
Fname | Perekonnanimi | Algusaeg | Lõpuaeg |
Anne | Smith | 09:00 | 18:00 |
Jack | Francis | 08:00 | 17:00 |
Anna | McLean | 11:00 | 20:00 |
Näidatud | Willam | 14:00 | 23:00 |
Eespool toodud näites on näidatud eri töötaja vahetuste ajad. Selles näites on iga töötaja kordumatuks tuvastamiseks vaja asendusvõtit.
Surrogate võtmed ruutruumis on lubatud, kui
- Ühelgi atribuudil pole esmase võtme parameetrit.
- Kui esmane võti on liiga suur või keeruline, tabelis.
Erinevus esmase võtme ja võõra võtme vahel
Esmane võti | Võõrvõti |
Aitab tabelis kirje ainulaadselt tuvastada. | See on tabeli väli, mis on teise tabeli peamine võti. |
Esmane võti ei aktsepteeri kunagi nullväärtusi. | Võõrvõti võib aktsepteerida mitut nullväärtust. |
Esmane võti on rühmitatud indeks ja DBMS-i tabeli andmed on füüsiliselt rühmitatud indeksi järjestuses korraldatud. | Võõrvõti ei saa automaatselt luua indeksit, klastrilisi ega klastrita. Siiski saate võõrvõtmes käsitsi luua registri. |
Teil võib olla üksik esmane võti tabelis. | Tabelis võib olla mitu võõrast võtit. |
Kokkuvõte
- SQL-i võti on atribuut või atribuutide kogum, mis aitab teil relatsioonis (tabelis) rida tuvastada
- DBMS-võtmed võimaldavad teil luua tabelite vahelise seose ja tuvastada seose tabelite vahel
- Seitse tüüpi DBMS-võtmeid on Super, Primary, Candidate, Alternate, Foreign, Compound, Composite ja Surrogate Key.
- Superklahv 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 ainulaadselt tuvastada, nimetatakse primaarvõtmeks
- Kõiki võtmeid, mis pole primaarvõti, nimetatakse asendusvõtmeks
- Superklahvi, millel pole korduvat atribuuti, nimetatakse kandidaatvõtmeks
- Liitvõtmeks on võti, millel on palju välju, mis võimaldavad konkreetse kirje ainulaadselt ära tunda
- Võtit, millel on mitu atribuuti tabeli ridade kordumatuks tuvastamiseks, nimetatakse liitvõtmeks
- Kunstlikku võtit, mille eesmärk on iga kirje kordumatu identifitseerimine, nimetatakse asendusvõtmeks
- Esmane võti ei aktsepteeri kunagi nullväärtusi, samas kui võõras võti võib aktsepteerida mitut nullväärtust.