AKAD Lösungsfolien WInf Folie 1 von 7 1. Übungsaufgabe Entscheidungstabellen 1.1. Erstellen der vollständigen Entscheidungstabelle 1.1.1. Analyse der Bedingungen Es lassen sich die folgenden Bedingungen herausarbeiten: Studiengebühr bezahlt Teilnahmehäufigkeit an der Klausur < 3 Teilnahme am Diplomandenseminar 1.1.2. Analyse der Regeln Bei einer vollständigen Entscheidungstabelle ergeben sich bei drei binären Bedingungen genau acht Regeln. 1.1.3. Analyse der Aktionen Es lassen sich die folgenden Aktionen erkennen: Student zur Klausur zulassen Zusendung des aktuellen Seminarplanes Zusendung einer Zahlungsaufforderung für die Studiengebühren Exmatrikulation des Studenten 1.1.4. Konstruktion der Entscheidungstabelle Daraus läßt sich die folgende vollständige Entscheidungstabelle konstruieren: Klausuranmeldung R1 R2 R3 R4 R5 R6 R7 R8 Studiengebühr bezahlt J J J J N N N N Teilnahme am Diplomandenseminar J J N N J J N N Teilnahmehäufigkeit < 3 J N J N J N J N Seminarplan zusenden Zahlungsaufforderung zusenden Exmatrikulieren Abb. 1: Zulassung zur Klausur als Entscheidungstabelle
AKAD Lösungsfolien WInf Folie 2 von 7 1.2. Verdichtung der Entscheidungstabelle R2 und R4 ziehen die Aktion Exmatrikulieren nach sich, unterscheiden sich aber nur in der Bedingung Teilnahme am Diplomandenseminar. Daher können sie zur neuen Regel R'2 zusammengefaßt werden; R4 wird gelöscht, und Teilnahme am Diplomandenseminar erhält einen Irrelevanzzeiger. R6 und R8 ziehen ebenfalls die Aktion Exmatikulieren nach sich, unterscheiden sich ebenfalls nur in der Teilnahme am Diplomandenseminar. Daher können sie zur neuen Regel R'6 zusammengefaßt werden; R8 wird gelöscht, und Teilnahme am Diplomandenseminar erhält ebenfalls einen Irrelevanzzeiger: Klausuranmeldung R1 R'2 R3 R5 R'6 R7 Studiengebühr bezahlt J J J N N N Teilnahme am Diplomandenseminar J - N J - N Teilnahmehäufigkeit < 3 J N J J N J Seminarplan zusenden Zahlungsaufforderung zusenden Exmatrikulieren Abb. 2: Zulassung zur Klausur als Entscheidungstabelle nach erster Verdichtung R'2 und R'6 ziehen beide die Aktion Exmatrikulieren nach sich. Sie unterscheiden sich in ihrem relevanten Teil nur durch die Bezahlung der Studiengebühr (Teilnahme am Diplomandenseminar ist bei beiden irrelvant). Daher können beide zur neuen Regel R''2 zusammengefaßt werden, Regel R'6 kann gelöscht werden, und Studiengebühr bezahlt erhält einen Irrelevanzzeiger: Klausuranmeldung R1 R''2 R3 R5 R7 Studiengebühr bezahlt J - J N N Teilnahme am Diplomandenseminar J - N J N Teilnahmehäufigkeit < 3 J N J J J Seminarplan zusenden Zahlungsaufforderung zusenden Exmatrikulieren Abb. 3: Zulassung zur Klausur als Entscheidungstabelle nach zweiter Verdichtung Regel R3 und R7 lassen sich nicht verdichten, da zwar immer ein Seminarplan zugeschickt wird, ist jedoch die Studiengebühr nicht entrichtet, ergeht zusätzlich eine Zahlungsaufforderung. Regel R5 und R7 lassen sich nicht verdichten, da zwar immer eine Zahlungsaufforderung ergeht, aber im Falle der Nichtteilnnahme an einem Diplomandenseminar zusätzlich ein Seminarplan zugesandt wird.
AKAD Lösungsfolien WInf Folie 3 von 7 1.3. Fallerweiterung durch zusätzliche Aktion 1.3.1. Ergänzung der Entscheidungstabelle Neben den schon bekannten gibt es nun noch eine zusätzliche Aktion: Erstattung der Studiengebühren Daraus ergibt sich die folgende neue vollständige Entscheidungstabelle: Klausuranmeldung R1 R2 R3 R4 R5 R6 R7 R8 Studiengebühr bezahlt J J J J N N N N Teilnahme am Diplomandenseminar J J N N J J N N Teilnahmehäufigkeit < 3 J N J N J N J N Seminarplan zusenden Zahlungsaufforderung zusenden Exmatrikulieren Erstattung der Studiengebühren Abb. 4: Zulassung zur Klausur als Entscheidungstabelle mit neuer Aktion 1.3.2. Verdichtung der neuen Entscheidungstabelle Unabhängig von der Bezahlung der Studiengebühr und Teilnahme am Diplomandenseminar ist der Student nach dem dritten erfolglosen Versuch zu exmatrikulieren. Sofern er eine Studiengebühr entrichtet hat, ist diese zu erstatten. Es ergeben sich zunächst dieselben Verdichtungsmöglichkeiten wie bereits in obiger Abb. 2 gezeigt: Klausuranmeldung R1 R'2 R3 R5 R'6 R7 Studiengebühr bezahlt J J J N N N Teilnahme am Diplomandenseminar J - N J - N Teilnahmehäufigkeit < 3 J N J J N J Seminarplan zusenden Zahlungsaufforderung zusenden Exmatrikulieren Erstattung der Studiengebühren Abb. 5: Zulassung zur Klausur als verdichtete Entscheidungstabelle mit neuer Aktion Die neuen Regeln R'2 und R'6 unterscheiden sich zwar nun lediglich durch Bezahlung der Studiengebühr; da beide aber unterschiedliche Aktionen (Exmatrikulation einerseits und Exmatrikulation und Erstattung der Studiengebühr andererseits) nach sich ziehen, ist eine Verdichtung nicht mehr möglich. Die übrigen Regeln sind wie bereits oben geschildert nicht mehr zu verdichten.
AKAD Lösungsfolien WInf Folie 4 von 7 2. Netzplantechnik: Übungsaufgabe 1 Tätigkeit Vorgänger Dauer FAZ FEZ SAZ SEZ GP A B, C 7 5 12 8 15 3 B - 5 0 5 0 5 0 C - 3 0 3 2 5 2 D B, C 4 5 9 5 9 0 E A, I 2 13 15 15 17 2 F D, G, H 8 9 17 9 17 0 G B 2 5 7 7 9 2 H B 3 5 8 6 9 1 I D, G 4 9 13 11 15 2 Abb. 6: Tabellarische Lösung Netzplantechnik Übungsaufgabe 1 1 B C 2 B' 3 G D H A 4 D' I G' 5 6 F E 7 Vorgang Scheinvorgang (zugleich Kritischer Weg) kritischer Weg Abb. 7: Graphische Lösung Netzplantechnik Übungsaufgabe 1
AKAD Lösungsfolien WInf Folie 5 von 7 Vorgehen zur Lösung Netzplantechnik, Übungsaufgabe 1 1. Suche die Anfangstätigkeiten, d.h., diese, die keinen Vorgänger haben und setze deren FAZ auf Null. Berechne sodann deren FEZ aus FAZ+Dauer. Im Beispiel sind dies die Tätigkeiten B und C. 2. Suche Tätigkeiten, von deren Vorgänger die FEZ bekannt sind. Diese Tätigkeiten können an diesem FEZ beginnen (setze die FEZ des Nachfolgers auf die FAZ des Vorgängers). Im Beispiel sind die FEZ von B und C bekannt. Suche in Spalte Vorgänger B und/oder C und ermittle damit die Nachfolger. Hat eine Tätigkeit nur einen Vorgänger, setze deren FAZ auf den FEZ des Vorgängers (im Beispiel: G und H erhalten den FEZ von B), bei mehreren Vorgängern ist die maximale (späteste) FEZ der Vorgänger als Restriktion einzusetzen, da diese frühestens dann beginnen können, wenn alle Vorgänger abgeschlossen sind. Im Beispiel erhalten daher A und D als FAZ den FEZ von B (FEZ C < FEZ B). Berechne sodann die FEZ dieser Tätigkeiten wie unter 1. 3. Weiter mit 2.: Berechne FAZ von I: Vorgänger sind D und G. Der maximale FEZ ist der FEZ von G mit dem Wert 9, d.h. FAZ von I ist 9. Berechne FEZ als 9 + 4 = 13. 4. Weiter mit 2.: Berechne FAZ von F: Vorgänger sind D, G und H. Der maximale FEZ ist der FEZ von D mit dem Wert 9, d.h. FAZ von F ist 9. Berechne FEZ als 9 + 8 = 17. 5. Weiter mit 2.: Berechne FAZ von E: Vorgänger sind A und I. Der maximale FEZ ist der FEZ von I mit dem Wert 13, d.h. FAZ von E ist 13. Berechne FEZ als 13 + 2 = 15. 6. Der FEZ des Projektes liegt beim maximalen FEZ, d.h., hier bei 17. 7. Suche letzte Tätigkeit und setze dort FEZ:=SEZ; gibt es mehrere letzte Tätigkeiten, setze deren SEZ auf den maximalen FEZ der letzten Tätigkeiten. Im Beispiel heißt dies: E und F sind letzte Tätigkeiten (sie treten niemals als Vorgänger einer Tätigkeit auf), FEZ von E=15, FEZ von F=17, d.h., max. ist 17; daraus folgt: SEZ von E=17 und SEZ von F=17. 8. Berechne die SAZ für die Tätigkeiten, deren SEZ bekannt ist, durch Subtraktion der Dauer der Tätigkeiten; daraus folgt: SAZ von E = SEZ von E - Dauer von E (17-2 = 15) und SAZ von F = SEZ von F - Dauer von F (17-8 = 9). 9. Suche Vorgänger der jetzt mit ihrer SAZ bekannten Tätigkeiten. Für E sind dies A und I, für F sind dies D, G und H. Setze die SEZ der jeweiligen Vorgänger auf die SAZ der jeweiligen Nachfolger. Im Beispiel heißt dies: Aus SAZ von E=15 folgt SEZ von A=15 und SEZ von I=15 und aus SAZ von F=9 folgt SEZ von D=9, SEZ von G=9 und SEZ von H=9. Berechne die jeweiligen SAZ der Tätigkeiten A, I, D, G und H wie unter 8. beschrieben (Subtraktion der jeweiligen Dauer). Es ergeben sich folgende Werte: SAZ von A=8, SAZ von I=11, SAZ von D=5, SAZ von G=7 und SAZ von H=6. 10. Suche einen noch nicht vollständig berechneten Vorgänger der bis dahin erledigten Tätigkeiten (d.h., weiter mit 9.). Dies sind B und C. B hat die Vorgänger H (SAZ von H=6), G (SAZ von G=7), A (SAZ von A=8) und D (SAZ von D=5). Sofern mehrere Vorgänger da sind (wie in diesem Beispiel) nimm das Minimum der SAZ der Vorgänger (hier SAZ von D=5) und setze SEZ von B auf diesen minimalen Wert. Berechne SAZ von B aus SEZ von B-Dauer von B (5-5=0). 11. Ebenso bei C: Vorgänger sind D und A mit SAZ von D=5 und SAZ von A=6. Nimm - da parallele Tätigkeiten - Minimum (=5) und setze SEZ von C auf diesen Wert. Berechne SAZ von C aus SEZ von C - Dauer von C (5-3=2). 12. Berechne alle Puffer als SEZ-FEZ oder SAZ-FAZ (muß bei korrekter Lösung identische Werte liefern).
AKAD Lösungsfolien WInf Folie 6 von 7 3. Netzplantechnik: Übungsaufgabe 2 Tätigkeit Vorgänger Dauer FAZ FEZ SAZ SEZ GP A - 3 0 3 0 3 0 B A 2 3 5 4 6 1 C A 2 3 5 3 5 0 D A 1 3 4 4 5 1 E A 5 3 8 5 10 2 F C,D 1 5 6 5 6 0 G A 5 3 8 3 8 0 H F 1 6 7 7 8 1 I H 2 7 9 8 10 1 J B,F 4 6 10 6 10 0 K J,E 1 10 11 10 11 0 L I,E 1 9 10 10 11 1 M K,L 1 11 12 11 12 0 N G 2 8 10 8 10 0 O A 3 3 6 7 10 4 P O,N 2 10 12 10 12 0 Q P,M 1 12 13 12 13 0 Abb. 8: Tabellarische Lösung Netzplantechnik Übungsaufgabe 2 O 4 N 8 P A 1 2 G B C 5 6 J K M Q 9 13 14 15 L F H 11 12 I 10 D 7 E Abb. 9: Graphische Lösung Netzplantechnik Übungsaufgabe 2
AKAD Lösungsfolien WInf Folie 7 von 7 4. Datenbanken: Übungsaufgabe Redundant sind: 1. Studentendaten, 2. Betreuerdaten Anomalieprobleme, Arten und Beispiele: Insert: Einfügen eines Betreuers mit falschen, weil zu einem vorhandenen Entity widersprüchlichen Ortsdaten Update: Änderung von Betreuerdaten an nicht allen Stellen ihres Vorkommens Delete: Löschen einer Diplomarbeit, wobei Betreuer mit gelöscht wird und u.u. nicht mehr vorhanden ist NULL-Wertprobleme, Beispiele: Diplomarbeit ohne Note, Student ohne Betreuer, Betreuer ohne Student Normalisierte Relationen: R.Student (SMNR, SName, SOrt, SStr, SGName) R.Betreuer (BNR, BName, BOrt, BStr) R.Pruefung (SMNR, PrüfZR, BNR, Note) Fremdschlüsselattribute: SMNR in Pruefung, Verweis auf Student.SMNR BNR in Pruefung, Verweis auf Betreuer.BNR Anfragen: SELECT SNAME, SORT, SSTR FROM STUDENT ORDER BY 1; SELECT AVG(NOTE) FROM PRUEFUNG; SELECT SNAME, SGNAME, BNAME, BORT FROM STUDENT, BETREUER, PRUEFUNG WHERE STUDENT.SMNR = PRUEFUNG.SMNR AND BETREUER.BNR = PRUEFUNG.BNR ORDER BY 3; SELECT SNAME, SORT FROM STUDENT WHERE SORT IN (SELECT BORT FROM BETREUER); SELECT SNAME FROM STUDENT, PRUEFUNG WHERE STUDENT.SMNR = PRUEFUNG.SMNR GROUP BY STUDENT.SMNR HAVING COUNT(*) > 1; DELETE FROM PRUEFUNG WHERE PRÜFZR <= 92-I; Sichten: CREATE VIEW UNGEPRUEFT AS SELECT SNAME, SORT FROM STUDENT WHERE SMNR NOT IN (SELECT SMNR FROM PRUEFUNG); CREATE VIEW DIPL_DOZ AS SELECT SNAME, SORT, BNAME, BORT FROM STUDENT, BETREUER, PRUEFUNG WHERE STUDENT.SMNR = PRUEFUNG.SMNR AND BETREUER.BNR = PRUEFUNG.BNR ORDER BY SNAME; CREATE VIEW ORTSSTATISTIK AS SELECT SORT, COUNT(*) FROM STUDENT GROUP BY SORT; CREATE VIEW STUDGANG_STAT AS SELECT SGNAME, COUNT(*) FROM STUDENT GROUP BY SGNAME ORDER BY 2; CREATE VIEW AVG_NOTE AS SELECT SGNAME, AVG(NOTE) FROM STUDENT, PRUEFUNG WHERE STUDENT.SMNR = PRUEFUNG.SMNR GROUP BY SGNAME;