mikrocontroller.net

Forum: PC-Programmierung UML-Aufgabe Denkansätze


Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute,

Ich habe so meine Schwierigkeiten die Aufgabe im Anhang zu lösen
Vielleicht könnt ihr mir paar Denkansätze geben??

Danke im Voraus.

Grüße

Autor: Thomas M. (langhaarrocker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach aus der Vererbung Compositions. Also Arzt / Patient enthalten 
jeweils ein Person Objekt. Dann für jedes Objekt eine Tabelle mit 
Primärschlüssel und in den Tabellen für Objekte, die auf andere Objekte 
verweisen, dann noch entsprechende Fremdschlüssel.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für deine Infos. Meinst du mit jeweils ein Person Objekt 
Instanzen von KLasse "Person" , also Arzt:Person bzw. Patient:Person. 
Das mit den relativen Tabellenstrukturen verstehe ich irgendwie nicht so 
richtig.Kannst du das Diagramm mit Kompositionen mal aufzeigen, wie du 
es machen würdest? Danke im Voraus.

Autor: Noch einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm...

Entweder hat der Prof einen Fehler gemacht - er hätte diese Aufgabe erst 
stellen dürfen, nachdem er Relationale Datenbanken erklärt hat.

Oder du hast den Stoff aus dem letzten Semester schon wieder vergessen.

Autor: René H. (Firma: Herr) (hb9frh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> Danke schon mal für deine Infos. Meinst du mit jeweils ein Person
> Objekt Instanzen von KLasse "Person" , also Arzt:Person bzw.
> Patient:Person. Das mit den relativen Tabellenstrukturen verstehe ich
> irgendwie nicht so richtig.Kannst du das Diagramm mit Kompositionen mal
> aufzeigen, wie du es machen würdest? Danke im Voraus.

Wie eine relationale Datenbank aufgebaut ist hast Du verstanden?

Grüsse,
René

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja so ungefähr:), mein Problem ist eher das Umwandeln des Diagrammes, 
sodass keine Vererbungen enstehen...

Autor: Thomas M. (langhaarrocker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Vererbungspfeile löschen
- durch Assoziationslinien ersetzen
- Kardinalitäten eintragen: Am Linienende von Person je eine 1, am Ende 
von Arzt bzw. Patient je eine 0.

Autor: Eric B. (beric)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Etwa so.

: Bearbeitet durch User
Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke das Diagram von Eric.B ist nicht richtig. Die ausgefüllte 
Raute muss meiner Meinung nach Richtung Klasse Person zeigen, denn die 
Komposition ist  eine Beziehung, die Teile (Arzt, Patient) zu einem 
Ganzen(Person) in Beziehung setzt. Wird z.B. Klasse Person gelöscht, 
existiert Arzt und Patient nicht mehr. Sehe ich doch richtig oder? Wie 
sieht es dann mit den Attributen aus, behalten die jeweiligen Klassen 
ihre Attribute wie im ursprünglichen Diagramm?

Autor: Eric B. (beric)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> die
> Komposition ist  eine Beziehung, die Teile (Arzt, Patient) zu einem
> Ganzen(Person) in Beziehung setzt.

Umgekehrt: Arzt und Patient sind das Ganze, und Person ist ein Teil von 
denen.


> Wird z.B. Klasse Person gelöscht,
> existiert Arzt und Patient nicht mehr.

Doch, nur sind sie keine Personen mehr :-) Oder korrekter: sie enthalten 
keine Person mehr.

Umgekehrt gilt aber: wenn ein Arzt (Instanz, nicht die komplette 
Klasse!) verschwindet, dann existiert auch der zugehörige Person nicht 
mehr.

Es ist auch nicht ausgeschlossen, dass Personen existieren die weder 
Arzt noch Patient sind.

: Bearbeitet durch User
Autor: Frank Link (Firma: Flk Consulting UG) (flk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Besser ist es die Beziehungen anders anzuordnen.

Arzt<>-Person und Patient<>-Person sind jeweils Kompositionen
Person<>-Maßnahme ist dann die dritte Komposition.

Diese Konstellation ermöglichen eine relativ einfache Abfrage der Daten 
über entsprechend formulierte Views.

Die Assoziationsform Komposition ist zu wählen, da damit sichergestellt 
ist, dass wenn ein Arzt oder ein Patient gelöscht werden, auch der 
entsprechende Personensatz und die Maßnahmen gelöscht werden.

Bei der von Eric dargestellten Form, muss es in Maßnahme zwei 
Fremdschlüssel geben die in Abhängigkeit davon gesetzt werden von 
welcher Seite Arzt oder Patient der Datensatz eingefügt wird. Das macht 
eine Abfrage über einen View deutlich komplexer und damit langsamer.

Gruß
Frank

Autor: Eric B. (beric)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank L. schrieb:
> Besser ist es die Beziehungen anders anzuordnen.

Das war aber nicht die Aufgabe.

Autor: Frank Link (Firma: Flk Consulting UG) (flk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Eric,

die Aufgabe war die Vererbung aufzulösen. Genau das ist damit 
gewährleistet.

Gruß
Frank

Autor: Thomas M. (langhaarrocker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank L. schrieb:
> Bei der von Eric dargestellten Form, muss es in Maßnahme zwei
> Fremdschlüssel geben die in Abhängigkeit davon gesetzt werden von
> welcher Seite Arzt oder Patient der Datensatz eingefügt wird. Das macht
> eine Abfrage über einen View deutlich komplexer und damit langsamer.

Es ist leider noch aufwändiger: Die selbe Maßnahme kann vielen Ärzten 
und vielen Patienten zugeordnet werden. Man braucht also 
Verknüpfungstabellen.

Autor: Frank Link (Firma: Flk Consulting UG) (flk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

Du hast Recht, ich habe mir nur auf die Auflösung der Vererbung 
angesehen und nicht den Rest des Diagrammes :-(.

Damit wäre die korrekte Aussage Arzt-<>Person und Patient-<>Person sind 
jeweils Kompositionen Person-Maßnahme ist dann eine Association.

Von daher ist das Diagramm von Eric soweit korrekt wobei ich um 
Unterschied die Assoziation nicht zwischen Arzt-Maßnahme-Patient anlegen 
würde, sondern direkt zwischen Person und Maßnahme.

Gruß
Frank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.