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