Kardinaliteten i en fogning mellan två tabeller är det numeriska förhållandet mellan rader i den ena tabellen och rader i den andra. Vanliga kardinaliteter är en-till-en, en-till-många och många-till-många.
Tänk till exempel på en databas med elektroniska patientjournaler. En sådan databas kan innehålla tabeller som följande:
- En
doctor
tabell med information om läkare. - En
patient
tabell för medicinska ämnen som genomgår behandling. - En
encounter
tabell med en post för varje sjukhusbesök.
Naturliga relationer finns mellan dessa entiteter, t.ex. ett möte där många läkare deltar. Det finns en många-till-många-relation mellan poster i doctor
och poster i patient
eftersom läkare har många patienter och patienter kan träffa många läkare. Det finns ett en-till-många-förhållande mellan poster i patient
och poster i encounter
eftersom patienterna kan ha många möten och varje möte endast omfattar en patient.
Ett “en-till-ett”-förhållande används oftast för att dela upp en tabell i två delar för att ge information på ett kortfattat sätt och göra den mer lättförståelig. I sjukhusexemplet kan en sådan relation användas för att hålla isär läkarnas egen unika yrkesinformation från administrativa uppgifter.
I datamodellering grupperas samlingar av dataelement i “datatabeller” som innehåller grupper av datafältnamn som kallas “databasattribut”. Tabellerna är sammankopplade med “nyckelfält”. En “primärnyckel” tilldelar ett fält till sin “specialtabell”. Fältet “Doktorns efternamn” kan t.ex. tilldelas en primärnyckel till tabellen “Doktor” där alla personer med samma efternamn organiseras alfabetiskt enligt de tre första bokstäverna i deras förnamn. En tabell kan också ha en främmande nyckel som anger att fältet är kopplat till primärnyckeln i en annan tabell.
En komplex datamodell kan omfatta hundratals relaterade tabeller. Datorforskaren Edgar F. Codd skapade en systematisk metod för att sönderdela och organisera relationsdatabaser. Codds steg för att organisera databastabeller och deras nycklar kallas databasnormalisering, vilket undviker vissa dolda databasdesignfel (delete anomalies eller update anomalies). I verkligheten slutar processen med databasnormalisering med att tabellerna delas upp i ett större antal mindre tabeller.
I verkligheten är datamodellering av avgörande betydelse, eftersom när uppgifterna blir alltmer omfattande måste tabeller som är länkade med nycklar användas för att påskynda den programmerade hämtningen av uppgifter. Om en datamodell är dåligt utformad kommer till och med ett datorprogramsystem med bara en miljon poster att ge slutanvändarna oacceptabla svarstidsfördröjningar. Av denna anledning är datamodellering en av grundstenarna i den kompetens som en modern programvaruutvecklare behöver.