Die HSAweb-Datenbank: Logging (Trigger)

Lösen Sie die fol­gen­de Auf­ga­be mit Post­greS­QL. Für spe­zi­el­le Syn­tax­fra­gen steht Ihnen die offi­zi­el­le Online-Doku­men­ta­ti­on von Post­greS­QL zur Verfügung.

Gege­ben sei fol­gen­de HSA­web-Daten­bank.

HSA­web-DB: Daten­mo­dell (Ver­si­on 4)

In die­ser Auf­ga­be geht es dar­um, mit Hil­fe von Trig­gern Ände­rung an der Tabel­le lehrender in einer Histo­ry-Tabel­le zu spei­chern (Log­ging).

...
lehrender:
  l_id INTEGER,
  l_kuerzel D_KUERZEL,
  l_anrede D_ANREDE,
  l_titel _TITEL*,
  l_name D_NAME,
  l_email D_EMAIL*,
  l_zugeordnet_zu INTEGER,
  l_status D_STATUS_LEHRENDER = 'Lehrbeauftragter',
  PK: l_id, UNIQUE: l_kuerzel,
  FK: l_zugeordnet_zu -> fakultaet(f_id)
...

Aufgabe

Instal­lie­ren Sie die HSA­Web-Daten­bank hsaweb-create.sql und befül­len Sie sie mit­tels hsaweb-data.sql. Lösen Sie dann in gewohn­ter Wei­se die Auf­ga­be, die Sie in der Datei hsaweb-trigger.sql ent­hal­ten. Kopie­ren Sie die­se Datei auf Ihren Rech­ner und tra­gen Sie Ihre Lösung in die Datei ein.

Ach­ten Sie bit­te dar­auf, dass Ihre SQL-Anwei­sun­gen für jeden gül­ti­gen Daten­be­stand genau die gewünsch­ten Infor­ma­tio­nen als Ergeb­nis aus­ge­ben, nicht mehr und nicht weniger.

Mus­ter­lö­sung: hsaweb-trigger-loesung.sql

Hausaufgabe

Kopie­ren Sie das Thea­ter-Daten­bank-Skript theater.sql und erwei­tern sie es so, dass das Arei­vut „qrcode” der Tabel­le „reser­vie­rung” mit einem QR-Code-Image (base64-codiert) per Trig­ger gefüllt wird. 

Sie kön­nen Ihren Trig­ger dahin­ge­hend erwei­tern, dass der Pass­code nicht nur eine Zufalls­zahl, son­dern auch noch Infor­ma­tio­nen zur Reser­vie­rung ent­hält (Reser­vie­rungs-ID, Start­da­tum und ‑zeit der Ver­an­stal­tung sowie Titel des Stücks).

Mus­ter­lö­sung: theater_mit_qrcode.sql