Databasteknik: Teoriövning 1, om grunder och ER-diagram
Välj själv om du vill göra övningen ensam eller i någon typ av grupp.
Det gör inget om en del av frågorna skulle vara svåra att svara på,
för de är kanske avsedda att inleda en diskussion
snarare än att ha ett enda rätt svar.
Förberedelser
Innan denna övning bör du ha tittat på
de två första föreläsningarna på YouTube
(uppdelade i fyra olika Youtube-videor).
Man kan också läsa i kursboken eller motsvarande.
Uppgift 1
Med ordet databas brukar man mena:
- en samling data som
- hör ihop,
- som beskriver, eller modellerar, en del av världen, till exempel
ett företag och dess verksamhet,
- som är persistent, dvs att den inte försvinner
när man avslutar programmet eller stänger av datorn.
- har ett explicit schema,
dvs det ska finnas en explicit beskrivning av
vad det är för data som man kan lagra i databasen,
- är konsistent, eller logiskt koherent,
dvs den får inte innehålla motsägelser, och som
- lagras och hanteras av en dator.
Vilka av dessa egenskaper är absoluta krav på en databas,
vilka är viktiga,
och vilka är mest något som man gärna vill att den ska uppfylla?
Diskutera!
Uppgift 2
Vi ska skapa en databas för att lagra data om maskar, äpplen och träd.
Maskar bor i äpplen som växer på träd.
Varje mask bor i ett äpple, och det finns inga hemlösa maskar.
Varje äpple växer på ett träd, och det finns inga lösa äpplen.
En mask har ett unikt nummer,
ett (inte nödvändigtvis unikt) namn
och en längd som mäts i centimeter.
Även träd och äpplen har unika nummer.
Dessutom har varje äpple en färg,
och varje träd har en höjd som mäts i meter.
Rita ett ER-diagram för databasen!
Använd grunderna.
Det behövs varken arv eller svaga entitetstyper.
Uppgift 3
Det finns nog väldigt många äpplen, och säkert många träd också.
Sambandet att äpplena växer på träden,
är inte det ett många-till-många-samband då?
Uppgift 4
Varje jul ska Jultomten distribuera flera miljarder julklappar till
flera hundra miljoner barn. För att allt ska bli rätt måste Jultomten
och hans nissar hålla reda på stora mängder information. De måste till
exempel hålla reda på vilka barn som finns och var de bor, om de varit
snälla eller elaka, och vilka presenter de önskat sig. Tidigare har
det gått bra med papper och pärmar, men förra året blev mängden papper
så stor att hela arkivavdelningen sjönk genom isen vid Nordpolen, där
tomten ju bor. Därför har Jultomten bestämt sig för att datorisera
julklappsadministrationen med hjälp av en databas.
Jultomten berättar att han vill ha med följande saker i databasen:
- Alla barn i hela världen, med namn och adress.
- Länder som barnen bor i. Länder har unika namn.
- Presenter, alltså de leksaker som barnen önskar sig och som de
får om de varit snälla.
- Önskelistor, som anger vilka presenter som varje barn önskar
sig. Varje barn kan önska sig hur många presenter som helst,
och man måste kunna hantera att det finns en inbördes ordning
mellan de önskningarna.
- Vilka presenter på önskelistan som varje barn sen faktiskt får.
Rita ett ER-diagram för databasen!
Använd grunderna.
Det behövs varken arv eller svaga entitetstyper.
Finns det något i scenariot som är oklart,
och som man skulle behöva fråga Jultomten om?
Diskutera!
(Den här övningen finns också i kursboken.)
Förslag på lösningar
Det finns lösningsförslag till en del av uppgifterna,
men försök lösa dem själv först.
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
3 november 2022