referentiel integritet er en begrænsning anvendes til en relationel database - en database, hvor de data og relationer mellem dem er organiseret i tabeller af rækker og kolonner - så at inkonsekvente data? er ikke angivet. De fleste relationelle database management systemer definerer referentiel integritet regler, som programmører gælder , når du opretter en relation mellem to tabeller. Referentiel integritet Regel
Væsentlige, referentiel integritet , at en database ikke kan indeholde nogen uovertruffen udenlandske nøgleværdier . En fremmed nøgle er en kolonne i en database tabel, der indeholder værdier også findes i den primære nøgle kolonne - en unik identifikation , som mærker en række i tabellen - i en anden tabel. For eksempel overveje en database tabel ved navn " afdeling ", hvor en kaldet kolonnen " dept -no " er den primære nøgle. Den vedrører en anden tabel ved navn "arbejdstager" , hvor " dept_no " er en fremmed nøgle . En medarbejder kan ikke tilhøre en bestemt afdeling , hvis den tilsvarende " dept_no " ikke allerede eksisterer i " afdelingen " tabellen. Hvis programmet til at tilføje medarbejdere gennemtvinger referentiel integritet , vil ethvert forsøg på at indsætte medarbejder ind i et ukendt afdeling ikke forekomme.
Fordele
Ud over at sikre , at henvisninger mellem data er intakte og gyldige , definere referentiel integritet i en database har mange fordele. Referentiel integritet bruger eksisterende kode i en database motor i stedet for at programmører til at skrive brugerdefineret program kode fra bunden. Som et resultat, er programudvikling hurtigere, mindre udsat for fejl og konsekvent på tværs af flere programmer , der adgang til en database .
Konsekvenser
Desværre , programmeringssprog typisk mangler en mekanisme til håndhævelse referentiel integritet , og selv når en relationel database management system understøtter en sådan mekanisme , programmører ofte undlader at bruge det. Konsekvensen af at ignorere referentiel integritet er programkode , der indeholder fejl , eller bugs , klarer sig dårligt, og det er vanskeligt at udvide
Enforcement
Programmører kan gennemtvinge referentiel integritet. - og undgå "forældreløse " poster i en database - ved at aktivere det for en relation mellem to tabeller. I Microsoft Access , for eksempel, håndhæve referentiel integritet forårsager nogen operation , der overtræder referentiel integritet til at blive afvist. Sådanne operationer omfatter opdateringer til en database, der ændrer målet for en reference, eller sletninger , der fjerner målet for en reference. Desuden Microsoft Access indeholder også en række muligheder , der er kendt som " kaskade " indstillinger . Disse muligheder tillader referentielle opdateringer og sletninger til at blive formeret hele databasen, så alle relaterede rækker ændres tilsvarende.