Vad är skillnaden mellan integritetsbegränsning och referensintegritet? https://en.wikipedia.org/wiki/Referential_integrity


Svar 1:

När en tabell har data som "hänvisar" till en annan i databasen kallas riktigheten för dessa referenser referensintegritet. Om du har en tabell som heter CLASSES som lagrar rader med klasser som har lärts ut och en andra tabell som heter CLASS_ROSTERS med rader som innehåller data om elever som var inskrivna i dessa klasser hänvisar CLASS_ROSTERS till CLASSES. Du bör aldrig ha en studentrekord i CLASS_ROSTERS för vilken en matchande klassrekord inte finns i CLASSES-tabellen. Om detta någonsin händer, har referensintegriteten förlorats mellan de två tabellerna.

En av mekanismerna för att upprätthålla integriteten är en utländsk nyckelbegränsning. Detta är en databasmekanism som kan användas för att förhindra att studentrekord matas in i CLASS_ROSTERS när en matchande klasspost inte finns i CLASSES. En utländsk nyckelbegränsning gäller flera typer av integritetsbegränsningar.

Andra typer av integritetsbegränsningar inkluderar primära nyckelbegränsningar, unika nyckelbegränsningar och INTE NULL-begränsningar. Alla dessa är databasmekanismer som är utformade för att upprätthålla dataintegritet. Deras roll är att förhindra att data infogas (eller ändras) i databasen som skulle bryta regler som är inbyggda i datamodellen.


Svar 2:

I enkla termer.

En integritetsbegränsning är specifik för dataelementinstansen, t.ex. en typbegränsning (måste vara ett nummer), eller ett intervall av värden etc.

Referensintegritet handlar om förhållandet mellan datainstansinstansen till andra data. Detta ses ofta med "främmande" nycklar. Till exempel kanske du inte tillåter att en faktura publiceras för ett konto som inte finns.