PDA

View Full Version : [LÖSUNG] - [HU] ausarbeitung test ss03


Korrupt
28-06-2004, 11:58
hej,
ich hab mal begonnen den test vom ss03 auszuarbeiten.
anbei meine lösung für die aufgabe 3. kann mir jemand sagen ob das richtig ist?

greets,
korrupt

Korrupt
28-06-2004, 20:51
hier eine mögliche lösung für aufgabe 2
hoffe sie stimmt

greets,
korrupt

Korrupt
28-06-2004, 21:08
punkt a)
aussage 1 & 2 sind wahr, bei 3 & 4 bin ich mir nicht sicher :confused:

frage: bei der vererbung in uml: wenn ich z.b. eine klasse person habe und unterklassen z.b. student, wissenschaftlicher mitarbeiter und allgemeiner mitarbeiter. kann sich auf eine instanz person z.b. student und wissenschaftlicher mitarbeiter vererben???
wäre nämlich interessant zu wissen bei dem testbeispiel ob eine person mechaniker und pilot sein kann oder nur mechaniker oder pilot?!?!

punkt b)
Flugzeutyp(Modell, Kapazität, Gewicht)
Flugzeu(RegistrierNr, Modell, HangarNr)
Hangar(HangarNr)
die personen habe ich noch in keine relation gefasst wegen obiger frage.

greets,
korrupt

gregsi
29-06-2004, 17:14
Hat wer die ausstehenden Ü-aufgaben (etwa zum ER) gelöst? Wenn ja, bitte ins Netz stellen!

Danke!

gregsi
29-06-2004, 17:37
wäre nämlich interessant zu wissen bei dem testbeispiel ob eine person mechaniker und pilot sein kann oder nur mechaniker oder pilot?!?!


Da sowohl MECHANIKER als auch PILOT Unterklassen einer PERSON sind, kann - meines Verständnisses nach - kein Mechaniker auch Pilot sein (und umgekehrt).

nochwer
29-06-2004, 23:32
Da sowohl MECHANIKER als auch PILOT Unterklassen einer PERSON sind, kann - meines Verständnisses nach - kein Mechaniker auch Pilot sein (und umgekehrt).warum nicht? MECHANIKER und PILOT sind zwar 2 klassen, aber es kann doch trotzdem vorkommen, dass dabei jeweils dieselbe datenzeile (gleicher name und so) drin vorkommt... oder...?

... für die angabe würd ich aber trotzdem davon ausgehen, dass keine person beide berufe gleichzeitig ausübt... (obwohl - wissen kann man's nie :coolgrim: )

Korrupt
30-06-2004, 00:24
zu meiner frage: ich hab mir mittlerweile sagen lassen, dass eine person entweder mechaniker oder pilot sein kann, nicht beides gleichzeitig.

und deshalb ist auch von aufgabe 1a die aussage 4 falsch!

das relationale DBS zu 1b würde ich dann für die personen so lösen:
Person(SVNr, Name, Adresse, Persontyp, Gehalt, Lizenznummer)
anm.: Persontyp: enum('Mechaniker','Pilot') wenn Mechaniker dann ist nur das Gehalt interessant, wenn Pilot dann nur die Lizenznummer. hat jemand einen anderen vorschlag?

Reparieren(SVNr, Modell) //mechaniker darf flugzeugtyp reparieren
Fliegen(SVNr, Modell) //pilot darf flugzeugtyp fliegen
anm.: man müsst vor speicherung eines datensatzes entsprechend prüfen, ob die person wirklich reparieren/fliegen darf.
jemand einen anderen vorschlag??

greets,
korrupt

nochwer
30-06-2004, 00:33
punkt a)
aussage 1 & 2 sind wahr, bei 3 & 4 bin ich mir nicht sicher :confused:
1 und 2 sind auch meiner meinung nach wahr.
3 ist, glaube ich, falsch. hangar und flugzeugtyp sind ja voneinander absolut unabhängig.
bei 4 bin ich mir nicht ganz sicher. eindeutig falsch wäre es, wenn bei dem vererbungspfeil "disjoint" dabeistünde. ziemlich wahrscheinlich richtig wäre es, wenn "overlapping" dabeistünde. ich weiß leider nicht, was der standard ist, wenn gar nichts dabei steht - aber nachdem der name einer person sowohl in die klasse mechaniker als auch in die klasse pilot vererbt wird, kann es ja trotzdem sein, dass eine person beides macht und daher in beiden vorkommt. daher tendiere ich eher zu richtig.

nochwer
30-06-2004, 01:10
das relationale DBS zu 1b würde ich dann für die personen so lösen:
Person(SVNr, Name, Adresse, Persontyp, Gehalt, Lizenznummer)
anm.: Persontyp: enum('Mechaniker','Pilot') wenn Mechaniker dann ist nur das Gehalt interessant, wenn Pilot dann nur die Lizenznummer. hat jemand einen anderen vorschlag?

Reparieren(SVNr, Modell) //mechaniker darf flugzeugtyp reparieren
Fliegen(SVNr, Modell) //pilot darf flugzeugtyp fliegen
anm.: man müsst vor speicherung eines datensatzes entsprechend prüfen, ob die person wirklich reparieren/fliegen darf.
jemand einen anderen vorschlag??

greets,
korruptalso wenn eine person tatsächlich nicht pilot und mechaniker gleichzeitig sein kann, würde ich das gleich ganz anders aufteilen:
Mechaniker (SVNr, Name, Adresse, Gehalt)
Pilot (SVNr, Name, Adresse, LizenzNr)

wenn doch, würde ich die pilot/mechaniker-frage eher ausgliedern
Person (SVNr, Name, Adresse)
Beschäftigung (SVNr, Beschäftigung) //dann kann nämlich eine SVNR 2mal vorkommen, ohne dass Anomalien vorkommen)
$Beschäftigung ('Mechaniker', 'Pilot')
Mechaniker (SVNr, Beschäftigung='Mechaniker', Gehalt)
Pilot (SVNr, Beschäftigung='Pilot', LizenzNr)
[geht das? kann man in listen schon solche abfragen reinschreiben?]

nochwer
30-06-2004, 01:22
und dann dann fehlen natürlich noch:
Flugzeug (RegistrierNr, FlugzeugTyp, Hangar)
FlugzeugTyp (Modell, Kapazität, Gewicht)
Hangar (HangarNr)

deine trennung bez.
Reparieren(SVNr, Modell)
Fliegen(SVNr, Modell) ist nur dann notwendig, wenn eine person pilot und mechaniker gleichzeitig sein kann. sonst reicht es wohl, eine einzige liste zu machen, also etwas wie
zuständigkeit (SVNr, Modell)
- wobei mir dabei deine getrennte version besser gefällt.

und ad

anm.: man müsst vor speicherung eines datensatzes entsprechend prüfen, ob die person wirklich reparieren/fliegen darf. das muss man sowieso, man kann daten ohnehin nicht irgendwo reinschreiben, ohne vorher zu schauen, ob das auch so passt (siehe scheißlanges inskriptionsverfahrensbeispiel :p ).

nochwer
30-06-2004, 01:48
so könnte die lösung von 1c aussehen...
seid ihr damit einverstanden? (v.a. bei den zahlen bin ich mir nicht ganz sicher)

nochwer
30-06-2004, 01:52
und für 1d braucht man eigentlich nur eine zeile dazuschreiben:
Servicemaßnahmen (RegistrierNr, SVNr, Datum, Serviceart, Arbeitsstunden)
sonst ist eigentlich nichts zu ändern, denn durch die ersten 2 referenzen ist es ja dann eh gleich auch verlinkt... oder?