Mis on olemi terviklikkus?

Olemi terviklikkus on tõhusa andmebaasi koostamise üks peamisi reegleid. See viitab primaarvõtme jõustamise protsessile iga andmebaasi tabeli jaoks, kus võti peab olema kas rida või ridade kombinatsioon, mis on ainulaadsed mitte-null väärtused. Säilitades olemi terviklikkuse, saab iga kirje igas andmebaasi tabelis primaarvõtme abil konkreetselt tuvastada. See hoiab ära kirjete dubleerimise ja muud probleemid, mis kaudselt kahjustaksid andmebaasi terviklikkust. Olemi terviklikkuse puudumisel võivad andmebaasi kirjed kogemata kattuda, kuna konkreetset kirjet ei saa tabelist välja tõmmata.

Arvestades olemi terviklikkuse esimest osa, “unikaalset” väärtust, on oluline mõista primaarvõtme kontseptsiooni. Primaarvõti andmebaasis on väärtus, mida kasutatakse iga üksiku kirje konkreetseks tuvastamiseks. Et olla tõhus, peab primaarvõti olema kordumatu; teisisõnu peab osutuma võimatuks mitme kirje hankimine ühe primaarvõtme otsimisega. Sotsiaalkindlustusnumber oleks hea esmane võti USA-s üksikutele isiklikele kirjetele keskenduva andmebaasi jaoks, kuna kahel inimesel pole kunagi sama numbrit. Igaüks, kes otsib andmebaasist konkreetset sotsiaalkindlustuse numbrit, saab definitsiooni järgi korraga ainult ühe kirje.

Et näha probleeme, mis tekivad olemi terviklikkuse puudumisel ainulaadsete primaarvõtmete kaudu, võiks kujutada andmebaasi, kus primaarvõtmena kasutatakse isiku perekonnanime. Kuna perekonnanime saab jagada rohkem kui ühel inimesel, võib otsingukriteeriumiks “Smith” või “Jones” sisestamine tekitada kümneid kirjeid. Kui see juhtub, on andmebaasi terviklikkus kahtluse all, sest lõppkasutajal pole enam meetodit üksikute kirjete toomiseks.

Olemi terviklikkuse teine ​​osa ütleb, et primaarvõtmeks valitud väärtus ei tohi kunagi olla andmebaasi ühegi üksuse nullväärtus või tühi väärtus. Kui primaarvõtme väärtus jääb ühe või mitme andmebaasi kirje puhul nulliks, muutuks teatud kirjete toomine võimatuks, kuna nullväärtusest ei piisa nende kirjete unikaalseks tuvastamiseks. Teisisõnu, kui primaarvõtmena kasutatakse sotsiaalkindlustuse numbrit ja töötaja ei ole pärit USA-st ja seega ei oma seda, on välismaa töötaja kirjet primaarvõtme abil võimatu tuvastada, mis muudab andmebaasi terviklikkuse kehtetuks. .