Databasteknik: Lösningar till teoriövning 10

Uppgift 1


1 = användare
2 = webbklient (eller webbläsare eller web browser)
3 = renderad (dvs "uppritad") webbsida
4 = datornät
5 = GET-request
6 = klientkällkod (HTML-kod)
7 = webbserver
8 = serverkällkod (HTML-kod med servertillägg)
9 = webbprogrammerare

Uppgift 2

Så här kanske:

Webben

Uppgift 3

...

Uppgift 4

Uppgift 5

Det är inte ett riktigt ER-diagram. "Punkt punkt punkt" finns inte i ER-modellen.

Uppgift 6

Nu kan man lagra hur många kurser som helst för varje student, men det finns ingen koppling till entitetstypen Kurs. Det borde vara en sambandstyp och inte ett flervärt attribut.

Uppgift 7

Varje kurs kan bara läsas av en enda student!

Uppgift 8

Nu kan varje student läsa flera kurser, och varje kurs kan läsas av flera studenter. Men det dubbelsidiga fullständiga deltagandet kan skapa problem när man ska lägga in data i en tom databas. Det går inte att börja med att lägga in en student, eftersom studenten måste läsa en kurs, och då måste man alltså börja med att lägga in en kurs. Men en kurs får inte finnas i databasen utan att det finns studenter som läser den kursen, och då måste man alltså börja med att lägga in en student!

Uppgift 9

Kanske så här:

Bättre ER-diagram

Uppgift 10

Det finns flera fel:

Uppgift 11

Så här kanske (om vi antar att samma värde på C2 inte kan förekomma flera gånger för samma C-instans, men flera gånger för olika C-instanser):

A(A1, A2, A3, A4)
B(A1, C1, B1)
C(C1)
C2(C1, C2)
E(ID, E1, E2, E3, C1, D1)

Man skulle också kunna rita upp samma tabeller så här:

Bättre tabeller


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 7 december 2022