Kardinaliteten af et join mellem to tabeller er det numeriske forhold mellem rækker i den ene tabel og rækker i den anden tabel. Almindelige kardinaliteter omfatter en-til-en, en-til-mange og mange-til-mange.
Tænk f.eks. på en database med elektroniske sundhedsjournaler. En sådan database kunne indeholde tabeller som følgende:
- En
doctor
tabel med oplysninger om læger. - En
patient
tabel for medicinske emner i behandling. - En
encounter
tabel med en post for hvert hospitalsbesøg.
Naturlige relationer findes mellem disse enheder, f.eks. et møde, der involverer mange læger. Der er en mange-til-mange-relation mellem posterne i doctor
og posterne i patient
, fordi lægerne har mange patienter, og patienterne kan se mange læger. Der er en en-til-mange-relation mellem posterne i patient
og posterne i encounter
, fordi patienter kan have mange møder, og hvert møde kun involverer én patient.
En “en-til-en”-relation bruges oftest til at dele en tabel i to for at give oplysninger kortfattet og gøre dem mere forståelige. I sygehuseksemplet kunne en sådan relation bruges til at holde lægernes egne unikke faglige oplysninger adskilt fra administrative detaljer.
I datamodellering grupperes samlinger af dataelementer i “datatabeller”, som indeholder grupper af datafeltnavne, der kaldes “databaseattributter”. Tabellerne er forbundet ved hjælp af “nøglefelter”. En “primærnøgle” tildeler et felt til sin “specialordnetabel”. F.eks. kan feltet “Doctor Last Name” tildeles som primærnøgle til tabellen Doctor, hvor alle personer med samme efternavn organiseres alfabetisk efter de tre første bogstaver i deres fornavn. En tabel kan også have en fremmed nøgle, som angiver, at feltet er knyttet til primærnøglen i en anden tabel.
En kompleks datamodel kan omfatte hundredvis af relaterede tabeller. Computerforskeren Edgar F. Codd skabte en systematisk metode til at dekomponere og organisere relationelle databaser. Codd’s trin til organisering af databasetabeller og deres nøgler kaldes databasenormalisering, som undgår visse skjulte database-designfejl (sletteanomalier eller opdateringsanomalier). I det virkelige liv ender processen med databasenormalisering med at opdele tabellerne i et større antal mindre tabeller.
I den virkelige verden er datamodellering afgørende, fordi efterhånden som dataene vokser i omfang, skal tabeller, der er forbundet med nøgler, bruges til at fremskynde programmeret hentning af data. Hvis en datamodel er dårligt udformet, vil selv et edb-applikationssystem med kun en million poster give slutbrugerne uacceptable forsinkelser i svartiden. Derfor er datamodellering en hjørnesten i de færdigheder, som en moderne softwareudvikler har brug for.