15.07.2013 Views

1. Hensikten med kurset - Lars Marius Garshol

1. Hensikten med kurset - Lars Marius Garshol

1. Hensikten med kurset - Lars Marius Garshol

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!