Vad är entitetsintegritet?

Entitetsintegritet är en av de primära reglerna för effektiv databaskonstruktion. Det hänvisar till processen att genomdriva en primärnyckel för varje tabell i en databas, där nyckeln måste vara antingen en rad eller en kombination av rader som är unika icke-nullvärden. Genom att upprätthålla entitetsintegritet kan varje post i varje tabell i en databas identifieras specifikt via primärnyckeln. Detta förhindrar dubbletter av poster och andra problem som indirekt skulle äventyra databasens integritet. I avsaknad av enhetsintegritet kan posterna i en databas av misstag överlappa varandra, eftersom det inte finns något sätt att plocka en specifik post från tabellen.

När man överväger den första delen av entitetsintegritet, ett ”unikt” värde, är begreppet en primärnyckel viktigt att förstå. En primärnyckel i en databas är ett värde som används för att specifikt identifiera varje enskild post. För att vara effektiv måste en primärnyckel vara unik; med andra ord måste det visa sig omöjligt att hämta flera poster genom att söka efter en enda primärnyckel. Ett personnummer skulle vara en bra primärnyckel för en databas fokuserad på individuella personuppgifter i USA, eftersom två personer aldrig har samma nummer. Den som söker i databasen efter ett specifikt personnummer skulle per definition bara hämta en enda post åt gången.

För att se de problem som uppstår i avsaknad av entitetsintegritet genom unika primärnycklar, skulle man kunna föreställa sig en databas där en individs efternamn används som primärnyckel. Eftersom mer än en person kan dela ett efternamn, kan inmatning av ”Smith” eller ”Jones” som sökkriterier möjligen producera dussintals poster. Om detta händer är databasens integritet ifrågasatt eftersom slutanvändaren inte längre har en metod för att hämta individuella poster.

Den andra delen av entitetsintegritet anger att värdet som väljs som primärnyckel aldrig får vara ett null- eller tomtvärde för något objekt i databasen. Om det primära nyckelvärdet förblev null för en eller flera poster i databasen, skulle vissa poster bli omöjliga att hämta, eftersom ett nullvärde är otillräckligt för att unikt identifiera dessa poster. Med andra ord, om ett personnummer används som primärnyckel och en anställd inte är från USA och därför inte har ett, kommer den utländska medarbetarens register att vara omöjligt att identifiera med hjälp av primärnyckeln, vilket ogiltigförklarar databasens integritet .