Vorbereitung zu Klausur

Allgemeine Fragen zu Aufgaben

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Vorbereitung zu Klausur
Hallo hab hier mal eine Frage und zwar zu den Sequenzdiagrammen. Also man hat ja z.B. die Operation break, das bedeutet ja das der normale Ablauf unterbrochen wird, falls die Bedingung vorher erfüllt ist bzw. verletzt.

Was ist mit dem normalen Ablauf gemeint? Also heißt es wenn die Bedingung vor dem Break-Kasten erfüllt ist, dann wird danach nur das was in Break-Kasten ausgeführt und was danach kommt nicht mehr oder ist es umgekehrt?!

Und anschließend hätte ich noch Frage, ob ich die Traces aus der Beispielklausur richtig gemacht habe. Wäre für jeden Hinweis bzw. richtige Erklärung sehr dankbar!!

Also 1, 2 , 3 und 6 habe ich als zulässig und 4 , 5 als falsch.( also gezählt habe ich von oben nach unten , von rechts nach links)

Bitte um Korrektur, wenn was falsch ist:)


Hast du die irgendwo im Internet? Meine Gedanken-Lese-Fertigkeit ist ziemlich schlecht :smiley:


also das sequenzdiagram weiß ich nicht, wie ich die hier als pdf veröffentlichen kann. Aber die Traces sind die folgenden :
k1->m1->x1->y1richtig
k1->m1->m2->k2->k1->m1->m2->k2->o1->p1richtig
o1-> p1richtig
k1->m1->m2->k2->o1->p1falsch
k1->m1->m2->k2->x1->y1->o1->p1falsch
k1->m1->m2->k2->x1->y1richtig

weiß nicht ob ich das richtig verstanden habe aus wikipedia, da gab es nur 2 beispiele:)

danke für die Hilfe:)


Ich seh das anders:
k1->m1->x1->y1 falsch (wenn man die Pfeile zurück als Antwort-Nachricht interpretiert => Loop kann nicht einfach abbrechen… wenn schon denn schon)
k1->m1->m2->k2->k1->m1->m2->k2->o1->p1 richtig
o1-> p1 falsch (Der Loop muss mindestens 1x laufen!)
k1->m1->m2->k2->o1->p1 richtig (Loop 1x, dann ist die Break-Condition nicht erfüllt → Das nach dem Block wird ausgeführt)
k1->m1->m2->k2->x1->y1->o1->p1 falsch
k1->m1->m2->k2->x1->y1 richtig


also du meinst damit ich in den break - Fall komme, muss ich mindestens einmal loop durchlaufen, und loop besteht aus sequenzen k1 bis m2, d.h. der gesamte Kasten von loop besteht aus diesen sequenzen. Um loop einmal vollständig zu durchlaufen, muss ich mind. die seq. k1->k2->m1->m2 durchlaufen oder ??

Ja ich hab das einbisschen anders verstanden, aber wenn es so ist, dann hast du natürlich recht. Danke für den tipp:)


Das loop(1,3) sagt aus, dass der Loop mindestens 1x durchlaufen werden muss.
Und wenn du den Loop schon anfängst, musst ihn auch zu Ende machen… der Loop besteht halt aus dem ganzen Kasten, wo “loop” oben dran steht.


Läuft der Loop nicht nur unter valCond = true mindestens 1x durch ?


Nach meinen Recherchen :wink: wird erst nach der Mindestanzahl an Durchläufen die valCond ausgewertet.


Siehe auch die Spec: http://www.omg.org/cgi-bin/doc?formal/09-02-02.pdf
Auf Seite 472 der internen Nummerierung (Seite 488 im PDF) wird erläutert ab wann die valCond ausgewertet wird.


Wie wichtig sind eigentlich die Transferaufgaben ??? Kann man irgendwo die Lösungen vgl. damit man weiß, ob man bei den Antworten ungefähr richtig lag??


Was meinst du mit Transferaufgaben?

Also bei uns war der Schwerpunkt auf ER(!) und Diagrammen. Dann noch ein bisschen Umsetzung auf SQL.
Sehr viel Transfer war da nicht dabei. Es war halt immer ein Text gegeben und man sollte ein bestimmtes Diagramm draus machen…

(weiß allerdings nicht, wie es bei euch dieses Semester aussieht)


Bei uns gibt es dieses Semester auch so ein Transferwissen Übungsblatt, das nicht extra in der Übung besprochen wurde. Uns wurde gesagt, dass es nicht schaden würde, wenn man dieses Blatt macht.
Da man leider nicht alle Lösungen zu den Aufgaben aus dem Skript ableiten kann, wollte ich fragen ob jmd. dieses Blatt gemacht hat, damit man vllt. einige Sachen vgl. kann.


Wenn du bei dir Beispielklausur keine Probleme hast, musst du dir keine Sorgen machen.


Ich hab mal eine Frage und zwar bei Mapping, wenn man eine N:1 Beziehung hat und auf der N Seite ist eine totale Teilnahme, dann muss man doch angegeben, dass der Fremdschlüssel NOT NULL sein darf. Schreibt man das NOT NULL direkt danach oder drunter ? Weil in der Übung machen sie das immer in eine neue Zeile praktisch unter die Tabelle. Oder ist es prinzipiell egal?

Und noch eins wenn ich z.B wie in der Beispielklausur die Beziehung M:N habe, aber beide Entities haben keine Primärschlüssel muss ich mir dann selber einen aussuchen oder nehme ich da den PS von der 1:N Beziehung mit der gleichen Entity.

Also ich meine Werbespot(Dauer, Titel, ID[Werbepartner] ) PS ist Kombination aus partiellen Schlüssel und Fremdschlüssel also beide unterstrichen und NOT NULL

und dann besteht ja die M:N Beziehung zw. Werbespot und Sendeslot, ich mache dann eine Tabelle für die Relation:

gezeigt_in(…) was kommt da in die Klammer, denn beide entities haben keine PS?? Oder nehme ich da einfach ID[Werbepartner] auf ??


Das mit dem NOT NULL musst du nach der Beschreibung der ganzen Attribute hinzufügen, also
Relationenname (Att1, Att2, …) Att1 NOT NULL
Das steht direkt unter der Aufgabe.

Deine zweite Frage würde ich folgendermaßen beantworten:
gezeigt_in((Datum, Beginn, Ende)[Sendeslot], (ID[Werbepartner], Titel)[Werbespot])
Wobei ich mir da nicht ganz sicher bin, speziell bei der Werbepartner ID. Wäre nett, wenn das noch jemand kommentieren könnte.


Was ich machen würde, ist, da ja das Attribut in Werbespot einfach ID heißt,

gezeigt_in((Datum, Beginn, Ende)[Sendeslot], (ID, Titel)[Werbespot])

Dass es ein Fremdschlüssel ist, wird ja durch die […] in Werbespot ausgedrückt, nach außen heißt’s aber ja einfach ID

Sendeslot hat sehr wohl einen: Kombination (Datum, Beginn, Ende) !


Also hab jetzt in den Folien noch mal nachgeschaut also bei gezeigt_in würde ich auch dasselbe schreiben, wobei ich nicht ganz genau weiß, ob ich jetzt alle FS unterschtreichen müsste oder nur Titel[…] und Datum,…,[Sendeslot], wobei ID[…] gehört doch auch zu der Beziehung also gehört es auch zu meinem Primärschlüssel


Werbespot ist eine schwache Entität, also werden die PKs der Entitäten geerbt, die am identifizierenden Beziehungstyp teilnehmen.
→ Werbespot hat ID[Werbepartner], Titel (partieller Schlüssel) als Pk, also müssen alle PKs der beteiligten Entity-Typen in die Relation “gezeigt_in”.

Ergebnis: gezeigt_in(u[Sendeslot], (ID, Titel)[Werbespot][/u])


Aber ID gehört doch eigentlich zu Entity Werbepartner und nicht zu Werbespot, warum kann man die ID einfach so zu Werbespot nehmen??