Det er ofte mye lettere å forstå relasjoner når du ser et konkret eksempel. Derfor er denne artikkelen bygget opp rundt en realistisk database for en skole. Du skal ikke bare lese definisjoner, men se hvordan tabellene faktisk henger sammen og hvorfor relasjonene gjør databasen bedre.
Hvis du trenger å repetere grunnlaget først, kan du lese om tabeller og primærnøkkel.
Scenario: en skole vil lagre data om elever, fag og karakterer
Tenk deg at en skole vil bygge en liten database. De vil lagre informasjon om elever, fag og karakterer. Dersom alt legges i én tabell, vil mye informasjon bli gjentatt. For eksempel kan samme elevnavn dukke opp mange ganger, og samme fagnavn kan stå i hver rad.
Det blir fort rotete. Derfor deler vi opp data i flere tabeller:
- Elev(elev_id, navn, klasse)
- Fag(fag_id, fag_navn, lærer)
- Karakter(karakter_id, elev_id, fag_id, karakter, termin)
Her ser du at Karakter-tabellen bruker to fremmednøkler. Den peker både til Elev og Fag. Det er et klassisk eksempel på hvordan relasjoner brukes i praksis.
Hvorfor dette er et godt eksempel
Denne modellen er god fordi den viser både en-til-mange og mange-til-mange i samme system.
- Én elev kan ha mange karakterer.
- Ett fag kan ha mange karakterer.
- En karakter hører til én elev og ett fag.
Dermed blir Karakter den tabellen som binder de andre sammen. Den lagrer ikke alt på nytt, men viser bare forbindelsene.
Steg for steg: slik leser du modellen
1. Elev-tabellen