Viidete terviklikkus on andmebaasi funktsioon relatsioonandmebaasis juhtimissüsteemides. See tagab, et andmebaaside tabelite vahelised suhted jäävad täpsemaks, rakendades piiranguid, et takistada kasutajate või rakenduste sisestamist ebatäpsetest andmetest või osutada andmetele, mida pole olemas.
Andmebaasid kasutavad nende sisalduva teabe korraldamiseks tabeleid. Need on sarnased arvutustabeleid, näiteks Exceli, kuid need on tunduvalt võimsamad arenenud kasutajatele. Andmebaasid toimivad primaarsete võtmete ja välisvõtide abil, mis säilitavad tabelitevahelisi suhteid.
Peamine võti
Andmebaasi tabeli esmane võti on igale rekordile määratud kordumatu tunnus. Igal tabelil on üks või mitu prime võtmena määratud veergu. Sotsiaalkindlustuse number võib olla esmane võtme andmebaasi töötajate nimekiri, sest iga sotsiaalkindlustuse number on ainulaadne.
Kuid eraelu puutumatuse tõttu on ettevõtte määratud ID number parem valik töötajatele esmaseks võtmeks. Mõned andmebaasi tarkvara - näiteks Microsoft Access - määravad primaarvõtme automaatselt, kuid juhuslikul võtmel puudub tegelik tähendus. Parem on kasutada rekordi tähendusega võtit. Viidete terviklikkuse jõustamise lihtsaim viis ei võimalda primaarvõtme muutmist.
Välisvõti
Võõrvõti on tabelis identifikaator, mis vastab teise tabeli esmasele võtmele. Võõrvõti loob suhte erineva tabeliga ja viide terviklikkusele viitab nende tabelite seostele.
Kui ühel tabelil on mõne muu tabeli võõrvõti, näitab viidete terviklikkuse kontseptsioon, et te ei pruugi lisada võtit võti sisaldava tabeli rekordi, kui vastavas reas pole seotud tabelis. Samuti hõlmab see tehnikaid, mida nimetatakse kaskaadvälja värskenduseks ja kaskaadvälja kustutamiseks, mis tagavad, et seotud tabelis tehtud muudatused kajastuvad esmases tabelis.
Viide terviklikkuse reeglite näide
Mõelge olukorrale, kus teil on kaks tabelit: töötajad ja juhatajad. Töötajate tabelil on välisvõti atribuut "ManagedBy", mis viitab haldurite tabeli iga töötaja juhtkonna rekordile. Viidatud terviklikkus tagab kolme järgmise reegli:
- Tööandjate tabelisse ei saa salvestada, välja arvatud juhul, kui atribuut ManagedBy osutab juhtide tabelis kehtivale rekordile. Viidatud terviklikkus takistab vigase teabe sisestamist tabelisse. Kõik toimingud, mis ei vasta referents-terviklikkuse reeglile, ebaõnnestuvad.
- Kui muudatuste esmane võtmesõna menüüs Juhid muutub, redigeeritakse kõiki tabeleid Töötajad vastavaid kirjeid kaskaadvärskenduse abil.
- Kui kustutatakse juhtide tabelis olev rekord, kustutatakse kõik tabelite Töötajad vastavad kirjed kaskaadiga kustutamise abil.
Viidatud terviklikkuse piirangute eelised
Relatsioonandmebaasis juhtimissüsteemi kasutamine koos viidete terviklikkusega pakub mitmeid eeliseid:
- Vältida dubleerivate andmete sisestamist.
- Vältida ühe tabeli viimist mõne muu tabeli olematusse.
- Garanteeritud kooskõla partnerlustabelite vahel.
- Väldib väliste võtmetega seotud väärtust sisaldava kirje kustutamist teises tabelis.
- Vältida võti lisamist tabelisse, mis sisaldab välisvõtit, välja arvatud juhul, kui lingitud tabelis on primaarvõti.