Hvad er enhedsintegritet?
Enhedsintegritet er en af de primære regler for effektiv databasekonstruktion. Det henviser til processen med at håndhæve en primær nøgle for hver tabel i en database, hvor nøglen skal være enten en række eller en kombination af rækker, der er unikke ikke-nul-værdier. Ved at opretholde enhedsintegritet kan hver post i hver tabel i en database identificeres specifikt via den primære nøgle. Dette forhindrer duplikerede poster og andre problemer, der indirekte ville kompromittere databasens integritet. I mangel af enhedsintegritet kan posterne i en database ved et uheld overlappe hinanden, da der ikke er nogen måde at plukke en bestemt post fra tabellen på.
Når man overvejer den første del af enhedsintegriteten, en "unik" værdi, er begrebet en primær nøgle vigtigt at forstå. En primær nøgle i en database er en værdi, der bruges til specifikt at identificere hver enkelt post. For at være effektiv skal en primær nøgle være unik; med andre ord, det skal vise sig umuligt at hente flere poster ved at søge efter en enkelt primær nøgle. Et Social Security-nummer ville være en god primær nøgle for en database, der fokuserer på individuelle personlige poster i USA, da to personer aldrig har det samme nummer. Enhver, der søger i databasen efter et specifikt Social Security-nummer, vil per definition kun hente en enkelt post ad gangen.
For at se de problemer, der opstår i mangel af enhedsintegritet gennem unikke primære nøgler, kunne man forestille sig en database, hvor en persons efternavn bruges som den primære nøgle. Da mere end én person kan dele et efternavn, kan indtastning af "Smith" eller "Jones" som søgekriterier muligvis producere snesevis af poster. Hvis dette sker, er databasens integritet i tvivl, fordi slutbrugeren ikke længere har en metode til at hente individuelle poster.
Den anden del af enhedsintegriteten siger, at den valgte værdi som den primære nøgle aldrig må være en null eller tom værdi for et element i databasen. Hvis den primære nøgleværdi forblev ugyldig for en eller flere poster i databasen, ville visse poster blive umulige at hente, da en nullværdi er utilstrækkelig til unikt at identificere disse poster. Med andre ord, hvis et Social Security-nummer bruges som den primære nøgle, og en medarbejder ikke er fra USA og dermed ikke har en, vil den udenlandske medarbejders optegnelse være umulig at identificere ved hjælp af den primære nøgle, hvilket ugyldiggør databasens integritet .