Kmom05: Procedur och trigger

By . Latest revision .

Vi går vidare och nu handlar det om att programmera en databas med lagrade procedurer och triggers. Dessa konstruktioner ger oss ökade möjligheter att formulera vår SQL-kod i mer avancerade programmeringskonstruktioner och automatiserande hantering av datat i databasen.

Det ger oss också möjligheten till inkapsling av SQL-koden och publicera ett API som kan användas av de klienter som vill åt databasen. Detta gör att databaskoden och dess interna representation kan skyddas från klienterna som enbart jobbar mot databasen via ett API bestående av lagrade procedurer.

Vi ser hur man bygger upp en CRUD-baserad webbklient med HTML-formulär som ger användaren möjlighet att skapa nya rader i databasen, ta bort dem, redigera dem och visa dem. CRUD står för Create, Read, Update, Delete.

Avslutningsvis så påbörjar du implementationen av din Eshop genom att skapa databasen och påbörja byggandet av en webbklient och en terminalklient.

Nu förberedd med ikoner för att göra edit och delete.

Nu förberedd med ikoner för att göra edit och delete.

Nu kan jag uppdatera detaljer om kontot.

Nu kan jag uppdatera detaljer om kontot.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 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: 8-10 studietimmar)

#Föreläsningar

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

  1. Tidstämplar i databastabell visar hur tidstämplar kan fungera i en databastabell och hur de kan få sitt värde per automatik.

  2. Lagrade procedurer och programmera i databasen introducerar framförallt hur man jobbar med lagrade procedurer i databasen för att kombinera variabel, SQL och mer sedvanliga programmeringskonstruktioner.

  3. Trigger i databasen om konceptet “programmera i databasen” och hur triggers passar in i den möjligheten.

#Kurslitteratur

Läs följande:

  1. Databasteknik
    • Kap 13. Integritetsvillkor
    • Kap 15: Lagrade procedurer
    • Kap 16: Aktiva databaser och triggers

Vissa av kapitlen finns i bokens webbkurs, del 2.

#MySQL dokumentation

Bekanta dig med följande:

  1. I manualen för MySQL kan du läsa om lagrade procedurer (stored procedures) och triggers, det är främst följande kapitel som är relevanta, bekanta dig med dem, du kommer att träna på begreppen i kommande övningar.

#Modellering

Läs följande.

  1. Läs igenom foruminlägget om “Vad välja som primärnyckel till en databastabell?”, det ger en snabb orientering i hur man kan tänka när man väljer primärnyckel i en tabell.

#Övningar & Uppgifter

(ca: 8-10 studietimmar)

#Övningar

Genomför följande övning för att förbereda inför uppgifterna.

  1. Jobba igenom “Lagrade procedurer i databas” för att lära dig om lagrade procedurer och vad du kan göra med dem. Spara dina exempelprogram i me/kmom05/prog.

  2. Jobba igenom “Triggers i databas” för att lära dig om vad du kan göra med triggers och hur de fungerar. Spara dina exempelprogram i me/kmom05/prog.

  3. Jobba igenom “CRUD med Express, MySQL och lagrade procedurer” som visar hur ett webbgränssnitt kan se ut där du kan lägga till, uppdatera och ta bort rader i en tabell. Spara de exempelprogram du gör i me/kmom05/crud.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Bygg databasen till en Eshop (del 1)” som låter dig implementera din ER-modell och skapa databasen tillsammans med en terminalklient och en webbklient. Spara all kod under me/kmom05/eshop1.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

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

  • Gick det bra att komma igång med lagrade procedurer och triggers?
  • Hur är din syn på att “programmera” på detta viset i databasen, jämför med traditionell SQL som exponeras i klienten?
  • Skriv ett kort stycke (2-5 meningar) om lagrade procedurer och om triggers där du förklarar begreppen (fördel, nackdel, användningsområde) för en som inte är insatt.
  • Något att kommentera kring arbetet med att komma igång och implementera CRUD i webbklienten?
  • Berätta om hur det gick att utföra uppgiften med din Eshop, berätta även vem du jobbade i grupp med, om någon?
  • Vilken är din TIL för detta kmom?

#Revision history

  • 2019-02-18: (D, mos) Uppdaterat och ny uppgift inför vt19.
  • 2018-12-19: (C, mos) Uppdaterat läsanvisning utgåva 2 av kursbok.
  • 2018-02-13: (B, mos) Ny uppgift, skapa grunden till eshop, flyttad från kmom04.
  • 2018-01-11: (A, mos) Första utgåvan.

Document source.