Relationer
Der findes 3 typer af relationer, der anvendes i relationelle databaser
Én til én relation (1:1)
Bruges oftest når man enten har alt for mange kolonner i én tabel, eller hvor man ønsker at gemme specielle informationer om et objekt i en selvstændig tabel.
Et eksempel kunne være informationer om personer. Almindelige personinformationer (navn, adresse, telefonnummer etc.) kunne man have i én tabel og personfølsomme informationer i en anden (cprnummer, relegion, sexuel preference ect.). Den anden tabel kan man så sætte lidt ekstra sikkerhed på, så den ikke er tilgængelig for alle. Relationen mellem sådan to tabeller er en 1:1 relation.
Én til mange relation (1:∞)
Langt de fleste relationer vi møder er af typen en til mange. Relationen mellem kunder og ordrer er en én til mange relation, da én kunde skal kunne have mere end én ordre.
I eksempelt ovenfor vil relationen normalt være baseret på et kundenummer, der er primærnøgle i kundetabellen. Kundenummeret i ordretabellen kalder vi en fremmednøgle (ordretabellen har naturligvis sin egen primærnøgle - normalt et ordrenummer).
Mange til mange relation (∞:∞)
Et eksempel på en mange til mange relation er kunde-firmakontakt. Én kunde kan godt have flere kontakter i firmaet og den enkelte kontakt i firmaet kan godt være i relation til flere kunder.
Jeg kender ikke umiddelbart nogle databasesystemer, der kan håndtere mange til mange relationer, men det man gør for at implementere en mange til mange relation er at introducere en mellem-tabel, der styrer relationen.
I ovenstående tilfælde ville man have en tabel (KundeKontakt) med kolonnerne (KundeKontaktId, KundeId, KontaktId) - den første er "bare" en primærnøgle for tabellen og de to andre er fremmednøgler for de to andre tabeller. Man kan så oprette 1:∞ relationer fra kunde og kontakt tabellerne til denne mellemtabel.