Databasteknik: Teoriövning 2, om EER-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å föreläsning nummer tre på YouTube (uppdelad i två Youtube-videor). Man kan också läsa i kursboken eller motsvarande.

Uppgift 1

Världen innehåller saker, som antingen kan vara vassa eller runda. Alla saker har en vikt. Vassa saker har en vasshet. Runda saker har en diameter. Saxar är en sorts vassa saker. En sax har inga särskilda egenskaper förutom vassheten. Bollar år runda, och är därför en sorts runda saker. Förutom diametern har en boll också en studskoefficient, som anger hur högt den studsar.

Rita ett EER-diagram som innehåller de fem entitetstyperna sak, vass sak, rund sak, sax och boll.

Uppgift 2

En databas innehåller båtar. Alla båtar har ett unikt nummer, en vikt och ett namn. En del av båtarna är fiskebåtar, och varje fiskebåt har en fångst, som mäts i ton. En del av båtarna är ubåtar, och varje ubåt har ett maxdjup. En del av ubåtarna är militär-ubåtar. En del av militär-ubåtarna är attack-ubåtar och en del är missil-ubåtar. Varje attack-ubåt har en tuffhet, och varje missil-ubåt har ett missilantal.

Dessutom finns det personer i databasen. Varje person har ett namn och ett unikt nummer. En del av personerna är sjömän, och andra är kaptener. Varje båt har en kapten. Ubåtarna har dessutom en besättning på en eller flera sjömän.

Rita ett EER-diagram över den beskrivna databasen.

Uppgift 3

I och med den nya McDonald's-restaurangen, som om några veckor kommer att öppnas i Långhuset på universitetsområdet, kommer McDonald's i Sverige att ha blivit så stora att de behöver en ny databas för att hålla reda på sin försäljning.

Det man behöver hålla reda på är, mer detaljerat, följande:

  1. Restauranger. Varje restaurang har ett unikt nummer, en adress och ett telefonnummer.
  2. Varor som man kan köpa, till exempel "Big Mac". Varje vara har ett unikt nummer, ett unikt namn och ett pris.
  3. Försäljningen. Varje vara som säljs lagras, med vilken vara det var, vilken restaurang den såldes på, och när.
  4. Försäljningstillfällen. Alla varor som slås in i kassan och betalas tillsammans räknas som ett försäljningstillfälle. Det ska gå att se hur många varor av varje sort som sålts vid varje försäljningstillfälle.

Så här ser kan ett ER-diagram för databasen se ut:

ER-diagram över McDonald's-databasen

Nu vill McDonald's kunna dela in sina varor i flera olika kategorier, till exempel Efterrätter, Hamburgare och Drycker.

Man kan göra ändringen i ER-diagrammet, genom att skapa under-entitetstyper till entitetstypen Vara. Diagrammet blir då ett så kallat EER-diagram. Visa hur EER-diagrammet kommer att se ut.

Uppgift 4

En nackdel med att skapa under-entitetstyper i EER-diagrammet i uppgiften ovan är att databasen blir oflexibel. Det är svårt att lägga till en ny kategori. Visa en alternativ lösning där det är lättare för McDonald's själva att lägga till kategorier.

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), 6 november 2022