Vad är en relationsdatabas?
Tidigare beskrev jag generellt vad en databas är.
I en relationsdatabas sparar man listor med information. Dessa listor kallas tabeller och kan referera till varandra på lite olika sätt. Referenserna mellan tabellerna kallas relationer, därav namnet; relationsdatabaser.
Tabeller, eller snarare rader i tabeller, kan referera till varandra på tre olika sätt:
- En till många
- Många till många
- En till en
Det databashanteraren hjälper till med, om man definierat tabellerna ordentligt, är att säkerställa att dessa relationer efterlevs.
En till många
Det här är den absolut vanligaste relationen. En rad i en tabell refereras av flera rader i en annan tabell.
Om man till exempel har en tabell med personer och en tabell med telefonnummer så kan en person ha flera telefonnummer, men ett telefonnummer hör bara till en person.
Många till många
Det här är en relation som de flesta databashanterare inte kan hantera ordentligt så man får ofta fuska till den.
Om man till exempel har en lista med elever och en lista med kurser sÃ¥ kan en elev gÃ¥ pÃ¥ flera kurser och en kurs kan ha flera elever. För att fÃ¥ till det sÃ¥ fÃ¥r man lägga till en tredje tabell som innehÃ¥ller en rad per elev och kurs. Sedan kan man sätta upp tvÃ¥ stycken ‘en till mÃ¥nga’-relationer. En elev finns en gÃ¥ng i elevtabellen och flera gÃ¥nger i Elev/Kurs-tabellen och en kurs finns en gÃ¥ng i kurstabellen samt flera gÃ¥nger i Elev/Kurs-tabellen.
En till en
Denna relation förklarar nog sig själv om man läst de föregående, men den är svårast att förklara nyttan med för någon som inte själv blivit tvungen att utnyttja den. Relationen går ut på att en rad i en tabell har en relation till en unik rad i en annan tabell.
Man skulle till exempel kunna tänka sig att man har en tabell med sålda bilar och en annan tabell med de sålda bilarnas motorer. Varje bil har exakt en motor och varje motor tillhör exakt en bil.
En stor del av arbetet med att designa en databas är att komma på hur alla delar av den information man ska behandla hänger ihop. I princip kan man säga att det är det som kallas normalisering, vilket jag kommer skriva om senare.
Lite mindre tankemöda,men inte mindre viktig, är att föreslå för databashanteraren hur den ska lagra all information. För att reda ut det kommer nästa artikel att förklara vad datatyper är.