1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4. Relasjonsdatabaser<br />
4.1 Oppbygningen av en relasjonsdatabase<br />
Innføring i databaser<br />
Hjertet i alle relasjonsdatabaser er tabellene, som er der alle data lagres. En tabell består av en<br />
rekke felter og poster, der postene er dataelementene, mens feltene er det postene består av.<br />
Sagt på en annen måte utgjør feltene definisjonen av tabellen, mens postene er innholdet.<br />
Registreringsnummer Merke Eier<br />
SP 83400 Toyota MR2 Anne Tryti<br />
BN 26131 Nissan Bluebird Jarl Andresen<br />
DE 66477 Opel Kadett Hans Hansen<br />
Tabell 4.1<br />
I dette eksempelet er ‘Registreringsnummer’, ‘Merke’ og ‘Eier’ feltene, mens ‘SP 83400’,<br />
‘Toyota MR2’ og ‘Anne Hansen’ er en post. For å si det på en annen måte er et felt en kolonne<br />
mens en post er en rad i tabellen. (De engelske begrepene er ‘field’ og ‘record’.) Du kan tenke<br />
deg en post som et arkivkort, men husk at det er en forenkling, for i relasjonsdatabaser kan vi<br />
koble flere poster sammen.<br />
Som regel ønsker vi å legge begrensninger på hva som kan stå i et felt. I feltet ‘Eier’ er vi for<br />
eksempel bare interessert i å ha navn, men det kan vi ikke fortelle maskinen på noen enkel<br />
måte. (Den kan ikke forstå at ingen heter ‘Rtwerwq Hasdjksk’.) Det vi kan fortelle den er at<br />
feltet skal inneholde tekst, og ikke mer enn 40 tegn.<br />
Det er også mulig å legge inn andre former for begrensning. For eksempel kan ikke flere biler<br />
ha samme registreringsnummer, der<strong>med</strong> sier vi at feltet skal bare ha unike verdier. Vi vil også<br />
typisk bruke registreringsnummer for å vise til/identifisere bestemte biler, og siden feltet er<br />
unikt vil dette alltid fungere. (Alle biler har et registreringsnummer og det finnes ikke to<br />
forskjellige biler <strong>med</strong> samme nummer.)<br />
Alle tabeller bør ha noe som kalles en primærnøkkel. Primærnøkkelen er ett (eller flere) felt<br />
som må fylles ut for alle poster og som har unike verdier (er det f.eks. to felter må ingen poster<br />
kunne ha like verdier i begge.) Primærnøkkelen brukes til å henvise til bestemte poster og er<br />
en svært viktig egenskap ved en tabell.<br />
I eksempelet overfor er det bare ‘Registreringsnummer’ som har unike verdier. (Felter som har<br />
unike verdier kalles ofte for kandidatnøkler, fordi de er kandidater til å være primærnøkler.)<br />
Siden ‘Registreringsnummer’ er eneste kandidatnøkkel er den også eneste mulige<br />
primærnøkkel.<br />
4.2 Flere tabeller - relasjoner<br />
Så lenge man kun har enkeltstående tabeller er det trivielt å lage databaser, men idet øyeblikk<br />
dataene i flere forskjellige tabeller skal forbindes <strong>med</strong> hverandre blir ting komplisert. For<br />
eksempel kan vi tenke oss at vi vil lagre data om eierne av bilene, for eksempel telefonnummer<br />
og adresse. Problemet blir da at hvis en person eier flere biler må vi lagre vedkommendes<br />
telefonnummer og adresse en gang for hver bil. Det er ikke særlig elegant og skaper også<br />
1096 - <strong>Lars</strong> <strong>Marius</strong> <strong>Garshol</strong> 18