Integriteit van tabellen
Aan een tabellenmodel stellen we een aantal integriteitseisen, te weten:
- Tabelintegriteit:
Elke tabel moet minimaal één primaire sleutel hebben. - Entiteitintegriteit:
Elke tabel heeft een primaire sleutel
en
Als de primaire sleutel een administratief nummer is, moet bovendien elke entiteitbeschrijving dusdanig volledig zijn, dat daardoor eenduidig naar de betreffende entiteit wordt verwezen. - Referentiële integriteit:
Als vanuit tabel X wordt verwezen naar een entiteitbeschrijving in tabel Y, dan moet deze entiteitbeschrijving in tabel Y ook daadwerkelijk bestaan.
We lichten deze eisen nader toe.
Tabelintegriteit
De tabel integriteit is een eis, die op iedere tabel van toepassing is. De regel zegt, dat iedere tabel minstens één primaire sleutel moet hebben. Over het waarom daarvan zijn we reeds ingegaan in de paragraaf over sleutels van tabellen.
Entiteitintegriteit
Ook de entiteit integriteit is een eis, die op iedere tabel van toepassing is. De regel zegt, dat bij iedere entiteitbeschrijving de bijbehorende entiteit in de werkelijkheid teruggevonden moet kunnen worden. De regel is uitsluitend relevant, indien een nummer als primaire sleutel voor de tabel is gekozen. Het nummer geeft namelijk geen enkele garantie tot herkenning van een object in de werkelijkheid. De entiteitbeschrijving moet dus zodanig volledig zijn, dat de resterende gegevens één en niet meer dan één entiteit in de werkelijkheid aanwijzen.
Wat gaat er mis, als niet wordt voldaan aan de eis van entiteit-integriteit?
In de eerste plaats kun je dan van een entiteit uit de werkelijkheid nimmer vaststellen of er al een beschrijving van in de database aanwezig is. Als bijvoorbeeld in een medewerkertabel niet op eenduidige wijze is vast te stellen of van een bepaalde medewerker al een beschrijving aanwezig is, is de kans aanwezig, dat we van de betreffende medewerker een tweede entiteitbeschrijving vervaardigen, onder een nieuw medewerkernummer.
Daarnaast kunnen we ook nooit gegevens in de database wijzigen of laten vervallen, als we niet beschikken over het administratief nummer. Ook bij het wijzigen van gegevens ontstaan problemen, als niet aan de geregistreerde gegevens eenduidig waargenomen kan worden, welk object ermee wordt beschreven.
Referentiële integriteit
Met de referentiële integriteit worden de relaties tussen de tabellen veilig gesteld. Deze vorm van integriteit houdt in, dat indien vanuit een tabel wordt verwezen naar een entiteitbeschrijving (= rij) in een andere tabel, deze laatstgenoemde entiteitbeschrijving ook daadwerkelijk moet bestaan. Als bijvoorbeeld in de tabel medewerker wordt verwezen naar de afdeling BA, dan moet in de tabel afdeling een entiteitbeschrijving voorkomen met de afdelingscode BA.
Als niet voldaan wordt aan de referentiële integriteit, kunnen betekenisloze gegevens in de administratie terecht komen. Als in het genoemde voorbeeld de afdeling BA niet in de tabel AFDELING zou voorkomen, zou de bewering dat de betreffende medewerker op afdeling BA werkzaam is, betekenisloos zijn.
Lees verder: Normaliseren van tabellen