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 />

spørsmål om kreativitet og intuisjon, og man kan ikke så lett lage tommelfingerregler for dette,<br />

men et eksempel kan kanskje klargjøre.<br />

Eksempel 3.1<br />

“Du har tenkt å lage en database over alle dine plater og musikkassetter. Du vil registrere tittel,<br />

artist, år, platetype (CD, LP etc.) og alle sanger på hver plate/kassett. For hver sang vil du<br />

registrere tittel, varighet og hvem som gjør hva (dvs: hvem spiller gitar, hvem har produsert,<br />

hvem har skrevet musikken osv.)”<br />

Her har vi tre åpenbare typer objekter som vi vil registrere data om: plater/kassetter, sanger og<br />

artister. Da kan vi begynne <strong>med</strong> å tegne disse som entiteter. Deretter kan vi sette på<br />

attributtene som ble nevnt ovenfor, unntatt de som er knyttet til andre entiteter.<br />

Da får vi denne modellen:<br />

Tittel<br />

År<br />

Det som da mangler er at vi ikke har sagt noe om forholdene mellom de forskjellige entitetene.<br />

Hvis vi tenker oss om er hver sang bare på en plate, mens en plate i teorien kan ha ubegrenset<br />

mange sanger. Her dukker det opp et lite problem: hva mener vi egentlig <strong>med</strong> sang? Du kan jo<br />

ha f.eks. både studioversjon og liveopptak av samme sang, og kanskje en coverlåt også? Er<br />

hver av disse forskjellige sanger, eller har vi samme sang flere steder? Dette er et typisk<br />

problem: hva mente den som ville ha databasen egentlig? Ofte vet de det ikke selv, eller, mer<br />

presist, de forstår ikke forskjellen.<br />

Den vanligste og greieste løsningen på problemer som akkurat dette er å si at hver versjon<br />

regnes som separate sanger. (Den motsatte varianten gir deg litt flere muligheter, men er mer<br />

tungvint.) Der<strong>med</strong> sier vi at hver versjon av en sang er også innspilt av en (og bare en) artist,<br />

mens hver artist kan ha spilt inn mange sanger.<br />

Tittel<br />

Spilt inn av Har spilt inn<br />

Plate<br />

∞<br />

1<br />

Artist<br />

1096 - <strong>Lars</strong> <strong>Marius</strong> <strong>Garshol</strong> 15<br />

År<br />

Type<br />

Type<br />

Plate Artist<br />

Sang<br />

Tittel Varighet<br />

Sang<br />

Navn<br />

Navn

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

Saved successfully!

Ooh no, something went wrong!