Kmom03: ER-modellering

By . Latest revision .

Vi jobbar vidare med SQL och tränar mer på utmanande saker som subqueries, JOIN och LEFT/RIGHT OUTER JOIN.

Vi bygger vidare på våra terminalskript i JavaScript och Node.js och bygger en menydriven klient som kan utföra olika saker mot databasen.

Vi övar i hur man modellerar och bygger upp en databas, det som kallas Entity-Relationship modelling, ER-modellering, eller bara databasmodellering. Vi delar in modelleringen i konceptuell, logisk och fysisk modellering. Vi börjar med att fokusera på den konceptuella delen av modelleringen.

Databasmodellering av en filmdatabas.

Databasmodellering av en filmdatabas.

Databasmodellering fortsätter och närmar sig strukturen av tabeller.

Databasmodellering fortsätter och närmar sig strukturen av tabeller.

Vi bygger vidare på vårat terminalprogram och skapar en menydriven terminalklient.

En menydriven terminalklient som visar hur man skapar en kommandoloop med JavaScript i Node.js.

När vi är klara har vi även byggt en menydriven terminalklient som pratar med databasen.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 40 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Läs & Studera

(ca: 10-15 studietimmar)

#Föreläsningar

Titta på följande inspelade föreläsningar.

  1. Modellera databas - faser och steg ger en översikt av modellering av databaser och visar olika faser och steg för att modellera databasen.

  2. ER-modellering - konceptuell modellering visar hur man kan rita en ER-modell via olika konstruktioner och introducerar en del begrepp om ER som underlättar ritandet.

#Databasteknik

Läs följande i kursboken:

  1. Databasteknik repetera om avancerad SQL.

    • Kap 8: Mer om SQL: Aggregatfunktioner, null-värden, yttre join
  2. Databasteknik om ER modellering.

    • Kap 2: ER-modellering
    • Kap 4: Designprocessen
  3. Boken har även en webbplats och vissa utdrag från boken finns där. Relevant för detta kmom är följande:

#JavaScript

Det finns inga specifika läsanvisningar för JavaScript. Men du kommer att fortsätta skriva program för JavaScript i Node.js tillsammans med async/await och callbacks.

Läs gärna vidare på egen hand, i “Boken: JavaScript for impatient programmers”, i den mån du vill förkovra dig i JavaScript som programmeringsspråk.

#ER-modellering

Läs igenom följande artiklar.

  1. Läs igenom igenom artikeln “Kokbok för databasmodellering”, den ger dig en metod för att modellera databaser i olika faser. Du kommer jobba enligt denna modellen i uppgiften. I detta kmom läser du först och främst delen om “Konceptuell modellering”.

#Övningar & Uppgifter

(ca: 20-25 studietimmar)

#Övningar

Genomför följande för att förbereda inför uppgifter.

  1. Jobba igenom artikeln “Gör en kommandoradsklient i Node.js (v2)”. Spara alla filer du gör i me/kmom03/cli.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Node.js terminalprogram mot MySQL med kommandoloop”. Spara alla filer i me/kmom03/terminal2.

  2. Fortsätt jobba igenom nästa del av guiden “Kom igång med SQL i MySQL”. Spara filerna i katalogen me/skolan som din redovisning. Detta är sista delen av guiden som vi kommer jobba med.

  3. Gör uppgiften “Skapa ER-modell för en databas (konceptuell)”. Visa att du kan jobba enligt en metod för att skapa en databasmodell och redovisa i ett dokument. Detta är första delen av uppgiften som slutförs i kommande kursmoment. Spara allt du gör i me/kmom03/er1.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Redovisningstexten skrivs alltid individuellt.

Se till att följande frågor besvaras i redovisningstexten.

  • Några generella reflektioner på att skriva och jobba med menydrivna terminalprogram i JavaScript och Node.js?
  • Berätta om din kodstruktur i ditt terminalprogram mot databasen, är du nöjd eller ser du förbättringspotential?
  • Något att nämna kring det aktuella stycket i guiden skolan med till exempel outer joins och subqueries?
  • Hur gick det att jobba med ER-modelleringen, några reflektioner?
  • Fanns det några extra svårigheter/utmaningar du kämpade med i kursmomentet?
  • Vilken är din TIL för detta kmom?

#Revision history

  • 2022-01-18: (G, mos) Genomgången och uppdaterad inför version 2 och vt2022.
  • 2021-01-31: (F, mos) Lade till inspelade föreläsningar.
  • 2020-02-07: (E, mos) Uppdaterat från 20h till 40h.
  • 2019-02-08: (D, mos) Flyttade vissa läsanvisningar om ER modellering till kmom04.
  • 2019-01-31: (C, mos) Uppdaterat inför vt19.
  • 2018-12-19: (B, mos) Uppdaterat läsanvisning utgåva 2 av kursbok.
  • 2018-01-05: (A, mos) Första utgåvan.

Document source.