Uppgiften är obligatorisk.
Uppgiften går ut på att designa en enkel databas för din webbplats. Anm: du behöver inte ta utvecklingen av just en webbshop som mål för kursen, det är bara en av många tillämpningar som Hans valt för sina genomgångar. Det går lika bra med någon annan tillämpning som bygger på en databas och ger ett webbgränssnitt till databasen.
Du kommer inte hinna bearbeta din databas inom ramen för kursen om du tar i för mycket. Kursgenomgångarna koncentrerade sig t.ex bara på artikelregistret i Hans webbshop, och det är ju bara en liten (men viktig) del av en hel webbshop. Diskutera med Hans om vad som är en rimlig motsvarighet till nedanstående krav för denna inlämningsuppgift översatt till din databas.
Det krävs flera moment för att fixa en databasdesign. Gör utvecklingen av databasen steg för steg som vanligt, och inte allt på en gång:
Börja med att välja en kategori av data att lagra i din databas. Hans använder böcker i sina genomgångar, så det kanske blir lite för enkelt om du också ska sälja böcker. Tänk igenom vad man besökare respektive databasadministratörer kan behöva veta om den datakategori du valt för din databas. Tänk också igenom vad dessa två användargrupper kan vilja göra med data: söka, lägga till data, göra ändringar, o.s.v.
Skissa sedan en begreppsmodell för den datakategori du valt. Använd t.ex den variant av ER-modellen (med ER-diagram) som Hans gått igenom.
Överdriv dock inte när du spånar fram olika entiteter i din modell: kärnan i Hans bokhandelsexempel är begreppet/entiteten "artikel", "författare" ett eget begrepp eftersom det kan komma att behövas separata utsökningar och/eller sorteringar på just författare, medan "förlag" reducerades till enbart en egenskap hos "artikel" efter någon utsökning/sortering på förlag inte ansågs vara nödvändig. Kort sagt: tänk igenom vad du senare vill kunna göra med din databas när den är färdig.
Databasdesign är mycket en iterativ process. Du kan mycket väl i ett senare skede komma på att vissa begrepp behöver separatdefinieras. Huvudsaken att du någon gång påbörjat processen med en grovskiss.
Nästa steg är att lista ut sambanden mellan de olika begreppen: ett-till-ett, ett-till-många eller många-till-många. Ett krav på dina begrepp är att du ska ha med minst ett ett-till-mångasamband och minst ett många-till-mångasamband i din modell. Rita in sambanden i ditt ER-diagram, t.ex med "crow's feet"-notationen. Skriv också in relationernas kardinalitet, d.v.s om nedre grånsen för antalet deltagande instanser i en relation är noll eller (minst) ett.
Konvertera din begreppsmodell till en relationsmodell, med definition av lämpliga databastabeller som representerar dina begrepp i begreppsmodellen.
Tabellstrukturen ska uppfylla de regler för databastabeller som beskrivits under föreläsningarna (väsentligen reglerna för tredje normalformen för tabeller). Också här måste du göra bedömningar om det verkligen är rimligt att följa en regel till punkt och pricka, eller om just din webbshop kan klara sig med inte fullt ut normerade tabeller.
Var noga med att se till att alla samband mellan begrepp, både ett-till-många- och många-till-mångasamband, realiseras på korrekt sätt i dina tabeller.
Slutligen ska du ange varje tabellfälts datatyp.
Visa Hans papper (handskrivna räcker) med följande:
Observera att begreppsmodell (ER-diagram) resp. relationsmodell (tabellstruktur) är två helt olika saker, och att de därför inte bör redovisas på samma papper.
© 1995-2013 Hans Mühlen
Kontaktadress: hvzm physto.se
Kurserna ges av Fysikum vid Stockholms universitet.
Senast uppdaterad 3 juni 2009