Hilfe zur Klausuraufgabe Alte Klausuren besprechen

Dieses Thema im Forum "31751 Modellierung von Informationssystemen" wurde erstellt von <Jessica>, 12 Februar 2019.

  1. Bin gerade etwas dabei einige Klausuren der letzten Semester zu bearbeiten.
    Es gibt leider keine Lösungen dazu, daher frage ich einfach mal, ob sich hier einige Leute finden, die Interesse daran haben, die Lösungen zu vergleichen bzw. Besonderheiten oder Unklarheiten der Klausuren zu besprechen.

    Frage zu Klausur SoSe2018:

    Zu der Aufgabe 3b aus der Klausur SoSe 2018, kann ich mir keine richtige Lösung zusammen grübeln, weil ich die Kurseinheiten in dem Bereich der Relationenalgebra recht kurz formuliert finde.

    Mein Lösungsansatz ist dahingehend, dass ich die beiden Datensätze in eine neue Datenbank über eine Projektion integriere und anschließend über eine Restriktion die gesuchten Daten heraus filtere.

    Aufgabe 3b i)
    Projektion:
    NeueDatenbank = ZuordnungTierarten[ZuordnungTierarten.Name = Fördermitglieder.Name]Fördermitglieder

    Restriktion:
    NeueDatenbank[NeueDatenbank.Tierart = Empty]
    ( Dies soll die Mitglieder mit dem leeren Feld Tierart, also die reinen Fördermitglieder herausfiltern )
    ( = Empty konnte ich leider nirgends als Notation finden, vielleicht muss man dort auch = 0 setzen )

    Aufgabe 3b ii)
    Dies ist nicht in einem Schritt möglich, da zuerst die Daten in einer neuen Datenbank zusammengeführt werden müssen.

    Wäre interessant zu sehen, ob es hier geschicktere Lösungsansätze gibt bzw. meiner überhaupt richtig ist.
    Die Zeit scheint relativ knapp bemessen zu sein, ich muss zugeben, dass ich deutlich länger als 4 Minuten (Aufgabe 3b i und ii bringen gerade mal 4 Punkte) gebraucht habe, um diesen Lösungsansatz so zu formulieren.
     
  2. grasch

    grasch

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Jessica: ich bin dabei - ab nächste Woche allerdings, die Woche habe ich noch größere Sorgen :-( mit EOOP .
    Wollte nur Bescheid geben, du bist nicht allein beim Modellieren :allsmiles:
     
    <Jessica> gefällt das.
  3. Hast du inzwischen schon ein paar Aufgaben zeichnen können?
    Bei mir geht es etwas schleppend voran, das Leben kam mal wieder dazwischen.
    Einige generelle Fragen haben sich aber angehäuft.
     
  4. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Naja, also generell denke ich, das davon auszugehen ist, das eine Datenbank existiert bzw. diese für die Aufgabenstellung erst mal keine Rolle spielt.

    Dich interessiert hierbei ja nicht die Struktur der Datenbank, ob du einen MySQL-Server oder Oracle verwendest, welche Infrastruktur, wie viele Nutzer, usw. Du hast hier nur einen Ausschnitt von ein paar Daten gegeben, aus denen du erstens erkennen sollst, wie diese Daten zusammen hängen und zweitens, wie du diese Daten so manipulieren kannst, das du die Darstellung bekommst, die in der Aufgabenstellung verlangt ist - mittels der Mittel, die dir gegeben sind, also die Mittel der Relationenalgebra. Diese sind Vereinigung, Durchschnitt, Differenz und symmetrische Differenz, außerdem Projektion, Verbund und Restriktion. Das ist - um übrigens mal das am praktischen Beispiel zu erklären - der Schritt, bevor du irgendwas in SQL schreibst, das du dir überlegst, was du eigentlich mit deinen Daten anstellen willst.

    Auf die Aufgabe bezogen: Das Thema ist einfach die grundlegende Frage, was zu tun wäre, um alle aktiven Mitglieder herauszubekommen.

    Dazu folgende Tatsachen:
    - Mitglieder sind Fördermitglieder als auch jene, die nur ein Tier besitzen.
    - Mitglieder können beides sein; ein Tierhalter kann gleichzeitig auch Fördermitglied sein.
    - Außerdem gibt es welche, die nur Tierhalter sind oder welche, die nur Fördermitglieder sind.
    - Beide Tabellen hängen hier über die Namen ihrer Mitglieder zusammen.
    Ergo: Es gibt welche, die nur in der oberen Relation vorkommen, welche, die nur in der unteren Relation vorkommen, und welche, die in beiden vorkommen.
    Bei denen, die in beiden vorkommen soll sichergestellt werden, das diese nicht doppelt vorkommen.

    Zuerst mal interessieren uns die Einträge aus beiden Tabellen, und nicht nur einer.
    Da wir hierbei nicht nur die beachten, die in beiden Relationen vorkommen sondern es auch welche gibt, die jeweils in nur einer vorkommen können, müssen wir hierbei erst mal die beiden miteinander vereinen. Also Vereinigung.
    Dadurch kriegen wir jetzt erst mal alle Einträge. Um das mal zu zeigen:

    Name Adresse Tierart
    _________________________________
    Bauer Feldweg 1 --
    Jäger Jagdweg 5 Hunde
    Jäger Jagdweg 5 Katzen
    Wolff Waldrand 7 Hunde
    Krebs An den Teichen 9 --
    Fischer An den Teichen 3 Reptilien
    Vogelsang Sperlingsweg 4 Vögel
    Vogelsang Sperlingsweg 4 Kleintiere
    Haase Feldweg 3 --
    Hirschmann Waldrand 10 Katzen
    Hirschmann Waldrand 10 Vögel
    Schäfer An der Weide 12 --

    (keine Garantie auf die Richtigkeit der Reihenfolge, jedoch sind die Einträge richtig)

    Wieso steht nun bei einigen nix drin unter Tierart? Weil sie keine Tiere besitzen, sondern nur Fördermitglieder sind.
    Jetzt haben wir jedoch zwei Probleme übrig:
    1. Wir verschicken vielleicht an die Adresse oder den Namen, nicht jedoch an irgendwelche Tierarten Post.
    2. Wir haben z.b. Hirschmann, Jäger und Vogelsang die mehr als eine Tierart haben.

    Uns interessieren jedoch nur die Namen. Und zwar ohne Duplikate.
    Hier müssen wir nun die Projektion betreiben: Wir wählen nur die Namen aus.

    Somit kommen wir dann zu folgendem Ergebnis:

    Name
    _________
    Bauer
    Jäger
    Wolff
    Krebs
    Fischer
    Vogelsang
    Haase
    Hirschmann
    Schäfer

    WICHTIG: Die Projektion wählt Attribute aus und eliminiert Duplikate. Sie ist also nicht gleichzusetzen mit z.B. einem einfachen Select aus der SQL, dieser würde nämlich Duplikate beinhalten können, dafür kann man entweder gruppieren oder ein distinct verwenden. Das nur so als kleiner Diskurs über SQL, für die Aufgabe jedoch ist der erste Satz nur relevant.

    Damit kommen wir zur zweiten Frage, was nun offensichtlich sein sollte: Wir müssen so oder so erst mal die Einträge beider Relationen bekommen. Wir können nicht im selben Schritt Duplikate eliminieren und die Vereinigungsmenge der Relationen erstellen.

    Die dritte Aufgabe habe ich bereits oben beantwortet.

    Ich denke, es sollte damit etwas klarer sein, was hier eigentlich gemeint ist.

    Die Mittel der Relationenalgebra und die Beispiele dazu sind in KE 3: Datenbankbenutzung vom Kurs Datenmodellierung und Datenbanksysteme auf Seite 25 ff zu finden.
     
    <Jessica> und Weasel gefällt das.
  5. Wenn man dies allerdings dann als die Lösung zu 3 iii) ansieht, hat man dort in der vorgegebenen Tabelle weniger Zeilen als benötigt.
    Dort sind lediglich 9 Zeilen vorgegeben, diese Lösung würde allerdings 12 Zeilen benötigen.

    Nachvollziehbar ist die Lösung soweit, das erst alles in einer Tabelle zusammengeführt wird.

    Der zweite Schritt:
    Name
    _________
    Bauer
    Jäger
    Wolff
    Krebs
    Fischer
    Vogelsang
    Haase
    Hirschmann
    Schäfer

    liefert uns doch aber nun lediglich eine Tabelle mit Namen aller Mitglieder.
    Wie soll nun rein am Namen der Status, aktives Mitglied oder Fördermitglied ermittelt werden?
    Die Ermittlung aktives Mitglied oder Fördermitglied, kann doch nur über die Tierart geschehen.
     
  6. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Du kriegst bei einer Vereinigung alle Einträge, das heißt inklusive Duplikate. Von denen gibt es drei doppelt, dementsprechend hast du 12 Einträge.Wendest du nun die Projektion an, das du dir nur die Namen geben lässt, werden Duplikate automatisch eliminiert. Dementsprechend kommst du im zweiten Schritt auf 9 Zeilen.

    Der Status ist für die Aufgabe übrigens nicht gefragt worden, jedoch nur, das alle, egal ob Fördermitglied oder nicht, ausgegeben werden sollen, wobei niemand doppelt ausgegeben werden soll.
     
  7. Schau mal in der Aufgabenstellung unterhalb der beiden Tabellen "Zuordnung Tierarten" und "Fördermitglieder" ganz unten auf dem Blatt.
    Für mich geht aus dem Absatz dort hervor, das hier eine Unterscheidung zwischen aktiven Mitglieder und Fördermitgliedern stattfinden soll.
    Ansonsten wäre das sehr irreführend formuliert.
     
  8. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    "Es wurden zu einer Mitgliederversammlung versehentlich nur die aktiven Mitglieder eingeladen. Die restlichen Mitglieder sollen nun auch Einladungen erhalten, dabei soll jedoch vermieden werden, dass diejenigen, die sowohl aktive als auch Fördermitglieder sind, zwei Einladungen enthalten."

    Da steht nicht drin, das du nun unterscheiden sollst. Du sollst aber Duplikate verhindern. Somit wäre meine Lösung durchaus möglich. Andere Interpretation: Nur reine Fördermitglieder sollen noch zusätzlich eine Einladung erhalten.
    Daraus folgt, dass du alle aus der unteren Tabelle nimmst und die eliminierst, die auch in der oberen Tabelle vorkommen, somit also eine Nachricht nur an die Fördermitglieder ausgibst, die reine Fördermitglieder sind und nicht als Mitglieder auftauchen.
    Dafür müsstest du die symmetrische Differenz bilden, womit du dann eine Tabelle hättest, in der reine Mitglieder und reine Fördermitglieder, jedoch nicht beides vorkommen kann. Mit diesem Zwischenergebnis müsstest du wieder die symmetrische Differenz bilden mit der oberen Table, womit du schließlich auch die eliminierst, die reine Mitglieder sind. Ginge auch, wäre jedoch keine saubere Lösung. Du hättest am Ende aufgrund der symmetrischen Differenz nämlich eine Table des Typs Name - Adresse - Tierart wobei in Tierart immer NULL drin steht. Daher kann ich mir nicht vorstellen, das diese Interpretation richtig wäre.
     
  9. mikimit

    mikimit

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Hallo Stefan,

    Bist du dir sicher das man hier die Vereinigung anwenden kann?
    Meiner Meinung nach sind die 2 Tabellen nicht vereinigungsverträglich, da die erste Tabelle noch die Spalte "Tierart" beinhaltet?
     
  10. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Stimmt, habe aus SQL-Sicht zu sehr nachgedacht, und da ginge das durchaus, wenn du die Attribute wählst und dann bei einem Table, wo das Attribut nicht vorkommt, stattdessen NULL mit reinnimmst...ich überleg mir nachher oder morgen nochmal ne andere Lösung bzw. ob das so funktioniert.
     
  11. mikimit

    mikimit

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Ja, ich habe es auch so am Anfang wie du gemacht
    Aber später wurde mir klar das es leider nicht klappt
     
  12. Nachdem die Aufgabe 3 so anscheinend nicht richtig aufgeht, habe ich mich da nochmals dran gesetzt.

    i)
    Projektion "Zuordnung Tierarten" anhand [Name, Adresse]
    Differenz "Fördermitglieder" - ( Projektion "Zuordnung Tierarten" )

    ii)
    Es müssen zuerst Duplikate in "Zuordnung Tierarten" eliminiert werden und die unrelevante Spalte Tierart.

    iii)
    Projektion "Zuordnung Tierarten" anhand [Name, Adresse]:
    Jäger Jagdweg 5
    Wolff Waldrand 7
    Fischer An den Teichen 3
    Vogelsang Sperlingsweg 4
    Hirschmann Waldrand 10

    iv)
    Reine Fördermitglieder:
    Schäfer An der Weide 12
    Bauer Feldweg 1
    Krebs An den Teichen 9
    Haase Feldweg 3
     
  13. Meine Handskizze zu Aufgabe 4 war leider total unübersichtlich, habe jetzt aber mal alles digital übertragen, so das man es auch nachvollziehen kann.
    Hier mal meine Idee zu Aufgabe4:
    Aufgabe-digi.jpg
     
  14. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    yop, scheint die richtige Lösung zu sein. Zumindest wenn man die Aufgabenstellung wirklich so interpretiert.
     
  15. mikimit

    mikimit

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Ich habe die Aufgabe 4 nochmal bearbeitet

    Und ich bin mir nicht kann sicher ob dein Vorschlag ganz richtig ist

    Beim XOR "Neukunde" glaube ich das es anders gezeichnet werden muss

    Wenn ein Kunde Neukunde ist und wenn er eine Bestellung von über 50 Euro hat bekommt er laut der Zeichnung keine Probierportion
    Sondern nur Altkunden bekommen sie

    Vielleicht liege ich auch falsch
     
  16. mikimit

    mikimit

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Meiner Meinung nach sollte als erstes Erfragt werden ob die Bestellung größer als 50 Euro ist, wenn ja dann GPS " Probierportion" modellieren, dann XOR "Neukunde?"
    Wenn ja noch GPS "Gutschein" hinzufügen
    Am Ende alle verbinden, GPS "Versenden" und dann endet der Prozess
     
  17. Das müsste wohl wirklich andersrum. Das passiert mir leider öfters, wenn ich versuche die Aufgaben in der vorgegebenen Zeit zu bearbeiten.
    Da fehlt dann am Ende Zeit alles nochmal auf Sinnhaftigkeit zu prüfen.
     
  18. Schafft es eigentlich irgendjemand die Aufgabe 4 der Klausur WiSe17/18 in der gegebenen Zeit von 30 Minuten zu lösen?
    Ich komme dort auf 15 Geschäftsprozesse und 7 oder 8 Konnektoren.
    Finde das ist eigentlich unmöglich halbwegs sauber hinzubekommen mit sinnvollen Beschriftungen zeitlich.
     
  19. mikimit

    mikimit

    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Ich habe es noch nicht versucht die Aufgaben auf Zeit zu lösen
    Aber ich glaube wirklich das es schwer gehen wird.
    In der Klausur vielleicht lieber erstmal mit den Datenbanken und OO Systemanalyse zu starten und dan die GP Aufgabe
     
  20. EA WS2018/2019 Kurs 818

    Kardinalitäten Haus:
    Gibt es wohl einen expliziten Grund weshalb der Lehrstuhl in der Musterlösung die Kardinalitäten so definiert hat?
    Haus 1...* > Hausangestellte 1...*
    Haus 1...* > Fahrer 0...*
    Haus 1...1 > Rezeptionist 1...* (Unklar weshalb hier auf Haus 1...1 ausgewichen wurde)
    (Normal könnte man doch hier für Haus entweder alle 3 auf 1...* oder 1...1 setzen, der Einheitlichkeit halber. Oder entgeht mir etwas?)
     
  21. DZu den Kardinalitäten:
    Laut EA
    Jedem Haus ist mindestens ein Hausangestellter zugewiesen. Hausangestellte können aber für mehrere Häuser zuständig sein.
    Daraus folgt
    Erster Satz Haus (hat) 1...* HAngestellte
    Zweiter HAngestellte (hat) 1..* Häuser (Reihenfolge natürlich Haus 1..* <> HAngestellte

    Laut EA
    Manche Häuser verfügen über Fahrer Fahrer sind allerdings nicht ausschließlich einem Haus zugeteilt, sondern können auch für mehrere Häuser zuständig sein.
    Haus (verfügt über) 0..* Fahrer
    Fahrer (sind zugeteilt) 1..* Häusern (hier steht können mehreren bedeutet für mich müssen nicht)

    Laut EA
    Jedes Haus hat mehrere Rezeptionisten. (Es steht nicht da, dass der R auch in einem anderen Haus arbeiten kann)
    mehrere sind bei mir mind 2 aber das scheint es hier nicht zu geben das stand schon mal hier im Forum imSkript gibt es das hat bei mir aber einen Fehler in der Ea gegeben also 1..*
    Der andere Fall scheint nach Skript die Notation 1 zu haben aber auch da würde allerdings Punktneutral 1..1 korrigiert

    Ob ich jetzt in der Klausur wieder 2..* schreiben würde und dann mit der Seite im Skript versuchen würde den Punkt zu kriegen oder 1..* um dann mit der EA im Notfall den Punkt zu holen weiß ich nicht so genau ...

    Hoffe das beantwortet irgendwie die Frage
    Mein Cursor ist weg kann nicht mehr sinnvoll korrigieren
     
  22. Danke für die Erklärung Teresa.
    (Es steht nicht da, dass der R auch in einem anderen Haus arbeiten kann)
    Das ist mir wohl wirklich entgangen, hatte da wohl irgendwie zu viel rein interpretiert. Es steht tatsächlich nicht drin.

    Wobei dann die Leserichtung eigentlich andersrum hätte deklariert werden sollen in der Musterlösung, für ein besseres Verständnis des Zusammenhangs.
    Dort steht jeweils:
    Haus ->hat (Rezeptionist, Fahrer, Hausangestellte)
    Sinnvoller wäre wohl gewesen:
    Rezeptionist -> arbeitet für Haus
    Fahrer -> arbeitet für Haus
    Hausangestellte -> arbeiten für Haus
     
    Zuletzt bearbeitet: 22 März 2019
  23. Ich glaube Du hast vielleicht nur ein Problem mit der Notation. Wenn du ein Kästchen Haus und eins Fahrer hast, Dann ist die Lesart Haus hat 0..* Fahrer Das „hat“ in der Mitte kann man ich als Trennelement vorstellen und dann kommen 0..* zum Fahrer (Haus hat keinen oder mehrere Fahrer — so wie man das sagen würde) in der anderen Richtung steht im Trennelement „fährt für“ und die Menge kommt ans Haus ran. Die Leserichtung rechts nach links lässt sich aber hier nicht so gut darstellen.
     
  24. Nochmal Aufgabe 4: Unklar ist, ob nicht die Marmeladen aus dem Lager geholt werden, während die anderen Marmeladen (zeitlich) gekocht werden, also: 3 Prozesse innerhalb des UND-Bereiches (im Text unklar). Auch ist unklar, ob die Verpackung vor oder nach der Beigabe erfolgt (dürfte punktmäßig es aber wohl dasselbe Ergebnis sein). 30min sind machbar, aber ohne schöne 3er-Zellen. Ich schnitz mir wohl ne Kartoffel ;)
     
  25. p.s.: lernt jemand SQL?
     
  26. Viel Glück und gute Fahrt zum Klausurort!
     
  27. Die Zeit in der Klausur hat vorn und hinten nicht gereicht.
    Wer da alles geschafft hat, musste die Aufgaben wirklich alle ohne großes Überlegen und alle Zeichnungen direkt ohne Korrekturen hinbekommen.
     
  28. War bisher die schwerste, oder? Etwas tricky war Relationenalgebra. Vereinigung und Restriktion, oder?
     
  29. Stefan_T

    Stefan_T

    Hochschulabschluss:
    Bachelor of Arts
    Studiengang:
    B.Sc. Wirtschaftsinformatik
    Irgendwie sowas, ja...
    Und war nach 1 1/2 Stunden fertig. Ging also doch.
    Aber diese Relationenalgebraaufgabe war dieses mal echt knackig. Dafür waren sonst die Diagramme einfacher, so kam es mir vor.
    Und hatte auch einige Probleme, da von meinem Zeichenstift mal zwischendurch die Mine flöten gegangen ist und ich Probleme mit dem Radierer hatte, dazu habe ich zu schnell gezeichnet und hab das ERM erst für UML gehalten, dann unnötigerweise in ER Notation gezeichnet bis mir nach einer Entität auffiel...aber naja.
    Hab das zeugs aber vorher auch so geübt das ich das sehr schnell hinbekomme.
     
  30. Hab in der Eile auch nicht gelesen, welches Modell gefordert war, hoffe das passt ;)...Punkte gabs für: 16 Fragen, 30 Klassendiagramm (UML), 20 ERM, 10 RA, 24 GPS, soweit ich noch weiß. Hat jemand mehr als die 2 Tabellen VV221 und VV661 in RA verwendet? GPS war etwas unbequem, ziemlich verworren.
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deinem Erleben anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden