Forum: PC-Programmierung UML-Aufgabe Denkansätze


von Mike (Gast)


Angehängte Dateien:

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

von Thomas M. (langhaarrocker)


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.

von Mike (Gast)


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.

von Noch einer (Gast)


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.

von René H. (Gast)


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é

von Mike (Gast)


Lesenswert?

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

von Thomas M. (langhaarrocker)


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.

von Eric B. (beric)


Angehängte Dateien:

Lesenswert?

Etwa so.

: Bearbeitet durch User
von Mike (Gast)


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?

von Eric B. (beric)


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
von Frank L. (Firma: Flk Consulting UG) (flk)


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

von Eric B. (beric)


Lesenswert?

Frank L. schrieb:
> Besser ist es die Beziehungen anders anzuordnen.

Das war aber nicht die Aufgabe.

von Frank L. (Firma: Flk Consulting UG) (flk)


Lesenswert?

Hallo Eric,

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

Gruß
Frank

von Thomas M. (langhaarrocker)


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.

von Frank L. (Firma: Flk Consulting UG) (flk)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.