View Full Version : [LÖSUNG] - [HU] ausarbeitung test ss03
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
hier eine mögliche lösung für aufgabe 2
hoffe sie stimmt
greets,
korrupt
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
Hat wer die ausstehenden Ü-aufgaben (etwa zum ER) gelöst? Wenn ja, bitte ins Netz stellen!
Danke!
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).
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: )
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
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.
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?]
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 ).
so könnte die lösung von 1c aussehen...
seid ihr damit einverstanden? (v.a. bei den zahlen bin ich mir nicht ganz sicher)
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?
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.