1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Innføring i databaser<br />
Med andre ord tegnes entiteter <strong>med</strong> ring rundt, mens attributter må klare seg uten. Mellom Bil<br />
og Person er det et forhold (representert ved en linje.) Ved linjen, inntil Bil står tegnet ∞, som<br />
står for uendelig, og betyr at hver Person kan ha uendelig mange biler. Inntil Person står 1,<br />
som betyr at hver Bil bare kan ha en Person. At Person’en er eier, og ikke tyv bryr vi oss ikke<br />
om. (Dette kalles Person’s rolle.)<br />
Å gjøre om fra datamodellen (dvs: tegningen) til tabeller og begrensningsregler er et tema for<br />
seg, som kalles normalisering. Siden våre databaser blir såpass enkle skal vi ikke gå noe særlig<br />
inn på dette her. (Mer om normalisering står i avsnitt 4.3.)<br />
3.4 Forhold<br />
Forholdene er kjernen i en relasjonsdatabase. De brukes til å organisere dataene og unngå<br />
dobbeltlagring. Mange databasesystemer er mer primitive enn relasjonsdatabasene, fordi de<br />
mangler forholdene. Som regel har de tabeller på samme måte som relasjonsdatabaser, men de<br />
kan altså ikke kobles sammen <strong>med</strong> forhold. Problemet <strong>med</strong> dette er at forholdene som gjør<br />
relasjonsdatabasene så kraftige.<br />
Det finnes enda mer avanserte databasetyper, men vi skal ikke gå inn på disse her. Dette blant<br />
annet fordi de aller fleste databasesystemer er relasjonsdatabaser (eller av den enklere typen jeg<br />
nevnte). Mer om dette i avsnitt 5.<strong>1.</strong><br />
Forhold kan være av tre typer:<br />
• En-til-en<br />
Her er det slik at det til hver post i den ene tabellen svarer nøyaktig en post i den andre. Da<br />
kan man som regel slå de to tabellene sammen, men ikke alltid, det kan være fornuftige<br />
grunner til å holde dem adskilt.<br />
• Mange-til-en (eller en-til-mange)<br />
Dette er den vanligste typen forhold, og er helt grei å forholde seg til.<br />
• Mange-til-mange<br />
Mange-til-mange-forhold skal ikke forekomme i en database. De trenger seg iblant på, men<br />
må da omgås ved at man lager en entitet mellom de to som har et innbyrdes mange-tilmange-forhold.<br />
Begge de opprinnelige entitetene har et en-til-mange-forhold til den nye.<br />
3.5 Hvordan lage en datamodell<br />
Navn<br />
Adresse<br />
Spørsmålet blir nå: når man skal lage en datamodell, hvordan finner man frem til entitene og<br />
deres attributter, og hvordan finner man forholdene mellom disse? Dette er egentlig et<br />
1096 - <strong>Lars</strong> <strong>Marius</strong> <strong>Garshol</strong> 14