Skapa ER-modell för en databas (konceptuell)

By . Latest revision .

Du skall jobba med databasmodellering och skapa en ER-modell av en databas som du själv väljer efter ett par förslag som erbjuds.

Detta är första delen av uppgiften och du skall utföra den konceptuella modelleringsfasen.

Du kan lösa uppgiften genom att jobba enskilt eller i grupp om max 3 deltagare. Var och en gör sin egen inlämning, även om man jobbar i grupp.

#Förkunskaper

Du har jobbat igenom artikeln “Kokbok för databasmodellering” som ger dig metoden för hur du skall jobba med modelleringen.

#Genomgång

Det finns en inspelad föreläsning (från en systerkurs) som går igenom vissa aspekter av denna uppgift. Föreläsningen pratar om databasmodellering och visar sedan ett exempel på en e-shop implementerad med SQL och föreläsningen avslutas med att göra reverse engineering på databasen och skapa en komplett ER-modell.

Titta på föreläsningen om ER-modellering och implementation av en e-shop (längd 53 minuter, startar 15 minuter in och avslutas 1:18).

Flera av begreppen som du skall lösa i uppgiften, hanteras i föreläsningen, men lite ur andra vinklar.

#Introduktion

Du skall jobba igenom de olika faserna enligt den metod som beskrivs i kokboken.

I denna specifika uppgift skall du utföra den konceptuella modelleringsfasen. I kommande uppgift, “Skapa ER-modell för en databas (logisk/fysisk)”, skall du utföra den logiska och den fysiska modelleringsfasen.

Varje steg du gör (enligt kokbokens steg) skall du dokumentera i ett dokument som du lämnar in som pdf. När du är klar finns samtliga delsteg dokumenterade i ditt dokument.

#Ritverktyg

När du ritar dina ER-diagram kan du använda ett godtyckligt ritverktyg som har stöd för någon notation som är relevant i ER-sammanhang.

Ett enkelt ritverktyg du kan använda är draw.io. Det har stöd för både ER-variant och UML. Verktyget är webbaserat och går att integrera med Google Docs. Man kan vara flera som jobbar i dokumentet samtidigt och det går att exportera modellerna i flera olika format som går att importera i till exempel Google Docs.

Här är ett exempel på en konceptuell modell som är ritad i verktyget. Klicka på länken och öppna den med draw.io.

Så här bör bilden se ut när du öppnar den.

För den konceptuella modellen fungerar draw.io mer än tillräckligt.

När du jobbar med den logiska modellen och den fysiska modellen så kan det vara en god idé att använda MySQL Workbench som har förmågan att både rita och uppdatera en modell samt generera SQL-kod utifrån modellen.

Ett annat verktyg som är användbart för olika typer av diagram, inklusive UML och ER, är Dia Diagram Editor som finns till olika plattformar.

#Välj bas för din modellering

Du kan välja bland en av följande upplägg och göra databasmodelleringen utifrån den. Samtliga baseras på grundtanken om en e-shop och det är samma typ av tabeller som krävs, oavsett vilket fokus du väljer.

Den databasmodell du nu skapar skall du senare använda för att koppla till ett webbinterface och till ett terminalinterface.

#Generellt krav på databasen

Databasen behöver hantera ett kundregister (kunder med kontaktdetaljer), ett produktregister (produkter med produktkod, namn, kort beskrivning och pris) där varje produkt finns i en eller flera produktkategorier.

Databasen behöver också innehålla ett lager där man ser hur många av varje produkt som finns i lagret och en notering om var produkten ligger i lagret (vilken hylla). En och samma produkt kan vara utspridd över olika hyllor i lagret.

När kunden beställer en produkt så skapas en order som innehåller kundens detaljer tillsammans med vilka produkter som beställts och dess beställda antal.

Utifrån ordern skapas en plocklista som kan skickas till lagret för leverans. Plocklistan innehåller samma information som ordern, men med tillägget att varje produktrad mappas mot en lagerhylla så att lagerpersonalen kan se vilken hylla de kan hämta produkten på.

När leveransen är packad så bifogas en faktura som har samma innehåll som ordern men nu med priset per produktrad och det summerade priset.

Det skall finnas en logg där man kan se viktiga händelser i systemet, vad hände, när hände det. Det kan till exempel vara när order/faktura skapades eller raderades.

#Fokus: BuckStar online shopping

Företaget satsar på onlineförsäljning av kaffe, kaffemuggar och liknande produkter. De har även ett begränsat utbud av te-produkter.

#Fokus: CdOff online shopping

Företaget ser en nygammal marknad växa fram och tänker sälja CD/DVD och äldre vinyl-skivor och relaterade produkter.

#Fokus: Egen idé

Du har ditt eget upplägg och idé. Kör på, se till att de ovanstående generalla kraven på databasen blir uppfyllda av din databasmodell.

#Krav

  1. Skapa en trevlig förstasida till ditt dokument. Skriv titel och namnen på de som utfört modelleringen.

  2. Skapa en innehållsförteckning som sida 2.

  3. Skapa en ny sida med rubrik “Konceptuell modell” och utför och dokumentera alla delsteg för den konceptuella modelleringsfasen, enligt kokbokens steg.

  4. Försäkra dig själv om att din databasmodell kommer att klara av att hantera ordrar och fakturer. Tänk igenom hur man lägger en order och hur fakturan skapas, fundera på om din databas kommer “hålla”. Se det som ditt eget sätt att verifiera att din modell fungerar.

  5. Generera en PDF-fil er.pdf av dokumentet.

  6. När du är klar så publicerar du ditt kursrepo.

# Ställ dig i kurskatalogen
dbwebb publish me

dbwebb test er1

#Tips från coachen

Lycka till och ställ frågor i forumet om du behöver hjälp!

#Revision history

  • 2022-02-11: (D, mos) Ny länk till draw.io.
  • 2019-02-14: (C, mos) Fix brusten länk till draw.io. Mindre justering i text om loggtabellen.
  • 2019-01-31: (B, mos) Genomgång, mindre justeringar i formuleringar.
  • 2018-01-05: (A, mos) Första utgåvan.

Document source.

Category: databas, er-modellering, kursen dbjs, kursen databas.