Hva er forskjellen mellom integritetsbegrensning og referensiell integritet? https://en.wikipedia.org/wiki/Referential_integrity


Svar 1:

Når en tabell har data som 'refererer' til en annen i databasen, kalles nøyaktigheten til disse referansene referensiell integritet. Hvis du har en tabell kalt CLASSES som lagrer rader med klasser som har blitt undervist og en andre tabell kalt CLASS_ROSTERS med rader som inneholder data om elever som ble registrert i disse klassene, refererer CLASS_ROSTERS til CLASSES. Du bør aldri ha en studentrekord i CLASS_ROSTERS som en matchende klassepost ikke eksisterer i CLASSES-tabellen. Hvis dette noen gang skjer, har referansesikkerhet gått tapt mellom de to tabellene.

En av mekanismene for å håndheve integriteten er en fremmed nøkkelbegrensning. Dette er en databasemekanisme som kan brukes til å forhindre at studentoppføringer blir lagt inn i CLASS_ROSTERS når en matchende klassepost ikke eksisterer i KLASSER. En fremmed nøkkelbegrensning er på flere typer integritetsbegrensninger.

Andre typer integritetsbegrensninger inkluderer primære nøkkelbegrensninger, unike nøkkelbegrensninger og IKKE NULL-begrensninger. Alle disse er databasemekanismer designet for å opprettholde dataintegritet. Deres rolle er å forhindre at data blir satt inn (eller endret) i databasen som vil bryte regler innebygd i datamodellen.


Svar 2:

For å si det enkelt.

En integritetsbegrensning er spesifikk for dataelementforekomsten, for eksempel en typebegrensning (må være et tall), eller et verdiområde etc.

Henvisningsintegritet handler om forholdet mellom den datale elementforekomsten og andre data. Dette sees ofte med 'utenlandske' nøkler. For eksempel kan det hende du ikke tillater at en faktura blir lagt ut for en konto som ikke eksisterer.