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

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

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

Saved successfully!

Ooh no, something went wrong!