Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Semantische Integritätsbedingungen  AIFB SS2001 1 3.6.2 trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).

Ähnliche Präsentationen


Präsentation zum Thema: "Semantische Integritätsbedingungen  AIFB SS2001 1 3.6.2 trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez)."—  Präsentation transkript:

1 Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez). Abteilung: (Abt-Bez, Abt-Leiter, Geh-Summe, Ang-Zahl, Budget). Für Angestellte, Abteilung gilt die interrelationale Integritätsbedingung (in Pseudocode - kein richtiges SQL) Abteilung.Ang-Zahl = (SELECT COUNT(*) FROM Angestellte A WHERE A.Abt-Bez = Abteilung.Abt-Bez) sowie Abteilung.Geh-Summe = (SELECT SUM(Gehalt) FROM Angestellte A WHERE A.Abt-Bez = Abteilung.Abt-Bez)

2 Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (3/5) (1) Beim Einfügen eines neuen Satzes in die Angestellten-Relation wird der Wert von Ang-Zahl für die betreffende Abteilung um 1 erhöht und Geh-Summe entsprechend geändert. Lösung mittels Trigger-Klauseln DEFINE TRIGGER ON INSERTION OF UPDATE SET NEW WHERENEW DEFINE TRIGGER Ang1 ON INSERTION OF Angestellter: (UPDATE Abteilung A SET Ang-Zahl = Ang-Zahl + 1, Geh-Summe = Geh-Summe + NEW Angestellter.Gehalt WHERE A.Abt-Bez = NEW Angestellter.Abt-Bez)

3 Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (4/5) (2) Entsprechend: Beim Löschen eines Satzes in der Angestellten- Relation soll der Wert von Ang-Zahl für die betreffende Abteilung um 1 verringert und Geh-Summe entsprechend geändert werden. DEFINE TRIGGER Ang2 ON DELETION OF Angestellter: (UPDATE Abteilung A SET Ang-Zahl = Ang-Zahl - 1, Geh-Summe = Geh-Summe - OLD Angestellter.Gehalt WHERE A.Abt-Bez = OLD Angestellter.Abt-Bez)

4 Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (5/5) (3)Entsprechend: Beim Ändern eines Satzes in der Angestellten- Relation soll der Wert von Geh-Summe entsprechend geändert werden. DEFINE TRIGGER Ang3 ON UPDATE OF Angestellter: (UPDATE Abteilung A SET Geh-Summe = Geh-Summe - OLD Angestellter.Gehalt WHERE A.Abt-Bez = OLD Angestellter.Abt-Bez) DEFINE TRIGGER Ang4 ON UPDATE OF Angestellter: (UPDATE Abteilung A SET Geh-Summe = Geh-Summe + NEW Angestellter.Gehalt WHERE A.Abt-Bez = NEW Angestellter.Abt-Bez)


Herunterladen ppt "Semantische Integritätsbedingungen  AIFB SS2001 1 3.6.2 trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez)."

Ähnliche Präsentationen


Google-Anzeigen