Aufgabe 9.4: select a1.name, a2.name from assistenten a1, assistenten a2 where a1.persnr != a2.persnr and a1.boss = a2.boss;
View 1 more comment
Funktioniert, ist hier aber nicht der Sinn der Aufgabe...sollte man rekursiv machen
9.4 habe ich auch so gelöst, allerdings gibt es zu jedem paar zwei Tupel. irgendwelche Lösungen dafür?
Kann jemand bitte Erfahrungen zur Hauptklausur teilen? Danke!
Hier müsste eine Vereinigung und kein Schnitt stehen (4.2)
No area was marked for this question
Spezifischere Fragen: -9.5: SELECT p.persnr, p.name FROM professoren p LEFT OUTER JOIN vorlesungen v ON p.persnr = v.gelesenvon GROUP BY p.persnr, p.name HAVING SUM(v.sws) < 6; -> Funktioniert grundsätzlich, zeigt aber (trotz left outer join) keine Professoren mit 0 sws an. Liegt das an HAVING, und wie könnte man das lösen? -9.4: SELECT DISTINCT a1.name, a2.name FROM assistenten a1, assistenten a2 WHERE a1.boss = a2.boss AND a1.persnr <> a2.persnr; -> Funktioniert grundsätzlich, zeigt aber jedes Paar doppelt an als (a, b) und (b, a). Wie könnte man das (unkompliziert) eleganter lösen? -Update: einfach lösbar durch a1.persnr < a2.persnr (statt <>)
View 1 more comment
Alles klar, also liegt es vermutlich an SUM und nicht an HAVING... Danke, auch für die Alternativ-Lösung!
Generell immer als Tipp beim Umgang mit NULL-Werten : Wenn es größere Anfragen sind, den Rückgabewert (z.B. SUM(..)) am besten wie folgt zurückggeben : WITH Complex AS ( SELECT ... CASE WHEN SUM(...) IS NULL THEN 0 ELSE SUM(...) END AS Anzahl ... ) Das macht meiner Meinung nach den Umgang deutlich leichter und verursacht weniger Kopfschmerzen. :D
No area was marked for this question
7b) Meint ihr das stimmt? Wäre nicht der innere Knoten jetzt unterbelegt? Ich würde eher die 25 in den inneren Knoten packen.
Der Knoten ist nach dem löschen unterbelegt und deshalb muss er mit dem Nachbarknoten verschmolzen werden. Außerdem hat jetzt die höhere Ebene gleichviele Einträge wie Kinder (was nicht erlaubt ist) deshalb muss 20 runter in den Blattknoten zu 12, 14 und 25.. Die angegebene Lösung ist in meinen Augen korrekt.
danke Onkel Abi :)
No area was marked for this question
Aufgabe 2b: So würde ja gelten E->C. Die C Spalte müsste eigentlich komplett zufällige Zahlen enthalten, die kein Muster zulassen.
Ist in meinen Augen hier die Frage wie man im Allgemeinen die leere Menge vergleicht. Nach Definition ist a -> b eine FD gdw. sowohl a als auch b Attributmengen der Relation R und für alle Instanzen von R gilt: Für alle Paare von Tupeln r, t Element aus R gilt r.a = t.a => r.b=t.b. Wie gehen wir hier mit der leeren Menge um? Ist die leere Menge gleich der leeren Menge? Dann müsste nach Definition gelten dass für alle Instanzen von R C den gleichen Wert hat weil für jedes beliebige Paar gilt r.leere Menge = t.leere Menge. Falls ich einen Denkfehler habe, korrigiert mich gerne.
Sollte normalerweise so (nur 7er) richtig sein, außer C wäre ein Schlüssel.
No area was marked for this question
5.c) Glaube, dass R1 := {[D, B, C, E, F]} (mit Schlüssel D unterstrichen) sein müsste, da A bei kanonischer Überdeckung herausfallen sollte.
No area was marked for this question
Zu 9.4: select distinct a1.name, a2.name from Assistenten a1, Assistenten a2 where a1.boss=a2.boss and a1.persnr<>a2.persnr -- wobei hier jedes Paar doppelt angegeben ist, was laut Aufgabenstellung zwar nicht falsch ist, aber ich wüsste gerne wie man es eleganter lösen kann
a1.persnr < a2.persnr
No area was marked for this question
Zu 9.6: select distinct v.vorlnr, v.titel from vorlesungen v where exists(select v.vorlnr from voraussetzen v1, voraussetzen v2 where v.vorlnr=v1.nachfolger and v1.vorgaenger=v2.nachfolger);
No area was marked for this question
Aufgabe 1 : a ) Menschen N -- befreundet -- M Menschen b) geboren : {[Steuernummer(Schlüssel), Name, Bundesland, Datum]} c) Orte : bleibt Menschen : {[ Steuernummer(Schlüssel), Name, Vorname, PartnerSteuernummer, GeburtsOrt, GeburtsLand, Geburtsdatum]} befreundet_mit : {[Steuernummer(Schlüssel), FreundSteuernummer(Schlüssel)]}
Hätte bei der 1. auch eher gesagt N-M Beziehung bei befreundet_mit
Aufgabe 9: 1) Nicht mit der Hoeren Relation sondern der Pruefen Relation!
No area was marked for this question
Aufgabe 9: 2. Benötigt ein SELECT DISTINCT s.MatrNr, s.Name... 5. Die Anfrage ist nicht erlaubt. SELECT P.PersNr, P.Name FROM Professoren P, Vorlesungen V WHERE V.gelesenVon = P.PersNr GROUP BY P.PersNr, P.Name HAVING SUM(V.SWS) < 6; 6. WITH RECURSIVE Depends AS( SELECT Vorgaenger, Nachfolger, 2 AS Level FROM voraussetzen UNION ALL SELECT V.Vorgaenger, A.Nachfolger, (A.Level + 1) FROM voraussetzen V, Depends A WHERE V.Vorgaenger <> A.Nachfolger AND V.Nachfolger = A.Vorgaenger ) SELECT DISTINCT D.Nachfolger FROM Depends D WHERE D.Level >= 3;
Kann jemand diese Fragen beantworten? :)
Wie viel habt ihr durchschnittlich gelernt?
Glaube es kommt darauf an, welche Note du möchtest. Mein Anspruch war zu bestehen. Ich habe insgesamt circa eine Woche gelernt und war vorher kaum in den Tutorien. Bin auch erst zur Nachholklausur rein, die ja generell immer bisschen schwieriger ist als die Hauptklausur. Hatte am Ende eine 2,7. Denke 2 Wochen sollten reichen für eine gute Note.
No area was marked for this question
hat jemand die Lösungsvorschläge?
View 1 more comment
@Anonyme Pistole: Hast du zufällig noch Lösungen? :D Wäre super !!
Ja, habe gerade welche hochgeladen, sind aber nicht vollständig (bei der letzten Aufgabe fehlen mir Teilaufgaben)
Der Crashkurstermin für Grundlagen: Datenbanken ist jetzt raus: https://studybees.de/tu-muenchen/