UML-Aufgabe Denkansätze

Gast #5240135
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.
Gast #5240403
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.
Gast #5240411
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é
Gast #5241391
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?
#5242309
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.
(Firma: Flk Consulting UG) #5243120
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
#5243234
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.
(Firma: Flk Consulting UG) #5243293
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren