Ist das Modul machbar wenn man bis jetzt bei keiner Vorlesung oder Übung virtuell dabei war? Wird das hochgeladen oder sind die Lösungen hier einsichtig?
View 2 more comments
Meine jetzt den nachtermin speziell
Mach dir keine Sorgen, vor allem der Nachtermin ist noch viele Sonnenuntergänge entfernt :) Zu den Übungen gibt es Musterlösungen, die im Moodlekurs von den jeweiligen Übungsleitern hochgeladen wurden. Schau dir die am besten an, und entscheid für dich, mit wessen Lösungen du da am besten klarkommst vom Erklärstil her. Mit diesen Lösungen kann man die Themen relativ schnell nacharbeiten. Wenn du dich damit und mit dem Übungsserver auseinandergesetzt hast, hast du beinahe alles, was in der Klausur drankommen könnte, abgedeckt. Die Antwort auf die ein oder andere Theoriefrage, die abgefragt werden könnte, wirst du aber eventuell nur im Skript finden können. Stefan hat übrigens auch Videos hochgeladen, in denen er die Vorterminklausur aus dem letzten Jahr vorgerechnet hat. Das sollte man sich vielleicht auch einmal anschauen :)
Hallo zusammen! Hat zufällig wer die Lösungen vom SQL-Teil aus den Altklausuren/Probeklausuren? Die Videos dazu wurden noch nicht hochgeladen und ich finde sonst keine weiteren Infos. Vielen Dank im Voraus!
Die Lösungen der VT Klausur von 2019 wurde bei sciebo hochgeladen. Ich weiss nicht ob die Probeklausuren bearbeitet werden... Die meisten Lösungen findest du hier, aber es ist nicht sicher ,ob die Lösungen der Probeklausuren richtig sind.
jetzt wurden sie mir auch endlich auf sciebo angezeigt, aber auch erst seit gerade. Danke dir trotzdem!
Hallo, kann Mir jemand nochmal den Klausurtermine verraten? Gibt es schon eine Info, wo die Klausur stattfindet?
3.8.20
Wenn hier die Annahme not steal und force Politik gewesen wäre, müsste man dann überhaupt keine Recoveryereignisse durchführen?
Ja
Hey Leute, Kann mir vielleicht jemand sagen was ich tun muss um mit dem Übungsserver arbeiten zu können? ich hab leider nicht denn Einschreibeschlüssel dafür
View 3 more comments
Wenn man ein wenig SQL versteht, dann kann man den bis auf die schweren Aufgaben relativ schnell bearbeiten.
Danke für die Hilfe :)
"Wer hat Albus Dumbledore getötet?" kann mir bitte wer die Abfrage erklären
View 3 more comments
Wann und vor allem Wofür benutze ich solche Instanzen?
Im Grunde brauchst du die Tabelle Character zweimal, weil du sowohl die Character Informationen über Dumbledore, als auch die Character Informationen über den Killer brauchst. Das Bindeglied zwischen den beiden Character Tabellen ist hier die KilledBy Tabelle . (Du willst für den Character, welcher Dumbledore ist, wissen, welcher Character sein Killer war) Im FROM Teil kann eine Tabelle aber nicht zweifach vorkommen, ohne, dass mindestens eine davon umbenannt wird. Das ist der Grund für die Umbenennung :)
Habe alle schweren und mittleren Aufgaben auf dem Übungsserver erledigt.
View 1 more comment
Einfach viel rumprobiert oder mithilfe der Lösungen?
Alle selbst gelöst. Außer bei einer mittleren Aufgabe habe ich in die Lösung geschaut. Weil ich erst nicht kapiert habe, was einen Schulleiter von einem Hausleiter unterscheidet. Und bei den schweren Aufgaben hat es auch nicht beim ersten Versuch funktioniert. Aber ich arbeite beruflich oft mit SQL. Deswegen war das jetzt machbar.
Habe mehrere Posts gesehen mit Leuten die sich wundern warum sie den DBMS-Kurs nicht mehr sehen: Nach den Moodle Problemen hat das Backup hat den Kurs aus irgendwelchen Gründen unter "Vergangen" eingeordnet. Wenn ihr im Dashboard auf "Vergangene" geht findet ihr ihn dort.
Kann mir wer die Funktion von Group By erklären?
Damit teilst du die Tabelle für jeden unterschiedlichen Wert der Attributmenge nach dem GROUP BY Keyword in Untertabellen auf. Beispielsweise hast du eine Tabelle die Angestellte modelliert, in der für jeden Mitarbeiter auch angegeben wird, in welcher Abteilung er ist, und wie viel er verdient. Wenn du jetzt herausfinden wollen würdest, was die Summe der Gehälter pro Abteilung ist, teilst du zunächst die Tabelle in Untertabellen PRO Abteilung, also GROUP BY Abteilung, auf und summierst dann in der HAVING Klausel die Summe :) Das benutzt man meistens, wenn etwas "pro" irgendwas anderes bestimmt werden soll. Summe der Gehälter PRO Abteilung, Anzahl der Wesen PRO Gender, etc. :)
Danke dir
Hay Leute, die meisten Übungen waren ja relativ schnell voll, sodass die meisten nicht jeden Übungsleiter zuhören konnten und es deswegen nicht sinnvoll wäre zu fragen welchen ihr am besten fandet. Würde aber gerne wissen, wessen Musterlösungen zu den Übungen, die auf Moodle ja unabhängig von der eingeschriebenen Gruppe für alle zugänglich hochgeladen wurden, ihr am effektivsten haltet, um damit die Sachen nochmal durchzugehen. Was meint ihr? Wo wurden die Themen am verständlichsten erklärt?
View 1 more comment
Gruppe 6
Bin Gruppe 7 und die war top. Ist meine ich derselbe Leiter wie Übung 6 oder?
Moin leute, der DBMS Kurs ist bei mir im Moodle nicht mehr sichtbar ?? sind die Vorlesungsvideos bei euch auch nicht mehr erhältlich??
View 1 more comment
Bei mir ist DBMS auch nicht sichtbar, aber wenn ich folgenden Link aufrufe, wird der Kurs angezeigt und ich bin auch immer noch angemeldet: https://moodle.uni-due.de/course/view.php?id=928 Die Vorlesungsvideos findest du hier: https://uni-duisburg-essen.sciebo.de/s/mGLtSADmTHSLkc0
Danke dir die Linke funktionieren :)
Hat jemand den Einladungslink zur WhatsApp-Gruppe?
Was ist der Einschreibeschlüssel für den Übungsserver?
_dbmsüs_
Bietet jemand nachhilfe in SQL an?
Könnte ich auch gut gebrauchen
No area was marked for this question
Kann mir jemand das Zweiphasensperrprotokoll mit Preclaiming erklären? Warum wird hier bei der Aufgabe 2b) anfangs eine Schreibsperre gesetzt, obwohl die 4.Transaktion y lesen möchte?
Du schaust von anfang an was für Lese und Schreibeoperationen Transaktion 4 durchführen wird und lockst von anfang an alles, was die Transaktion 4 später braucht (deswegen der Begriff Preclaiming). Transaktion 4 liest y und schreibt später auf x (dies wird aber direkt gelockt) . Also setzt Du beide Sperren direkt. Guck mal unten die Graphik. Die Wachstumsphase ist einfach durch einen Strich nach oben gekennzeichnet, weil das Sperren jeder Transaktion auf einen Schlag geschieht.. Der Unlock in der Schrumpfungsphase findet stufenweise statt stufenweise-->(da einfach und nicht striktes 2PL). Das bedeutet sobald ein Unlock möglich ist, das ist zB. der Fall, wenn in der Spalte mit dem y Element nichts weiteres durch Transaktion 4 geschiet, so wird unlocked.
Danke :)
Wie lernt man am Besten?
Hey liebe Kommilitonen, ich verstehe Scheduling nicht (Das verfahren wo man diese Tabelle hat und dort etwas eintragen muss) . Könnte mir jemand das erklären?
Hallo verstehe den SQL befehl iwie nicht, kann jemand helfen? Gib für alle Lehrer, die mehr als ein Fach unterrichten, die Fächer an.(characterid,firstname,lastname,courseid,coursename)
View 2 more comments
Danke
No area was marked for this question
Super hilfreich, vielen Dank! :)
Gerne doch :D
Geben Sie alle Lehrer aus, die mehr Jahre als Severus Snape unterrichtet haben. (characterid, firstname, lastname) Hat jemand hierfür eine Lösung? Verzweile schon seit längerer Zeit daran
select distinct characterid,firstname,lastname from teaches natural join character group by characterid,firstname,lastname having count(*)> all (select count(*) from teaches natural join character where lastname='Snape')
kann mir das jemand erklären?
was ist dieses Join Head Using?
so wie ich das verstehe, wird schoolhouse mit head gejoint, also zusammengefügt über die parameter characterid, schoolhouseid also using = zusammenfügung über parameter die man in der Klammer angibt
No area was marked for this question
Übung 8, Aufgabe 1 2. Welche Schedules erfüllen das Serialisierbarkeitskriterium? Geben Sie für diese Schedules äquivalente serielle Schedules an. Kann mir jemand erklären, was mit dem zweiten Teil dieser Aufgabe gemeint ist? Und wo steht das im Skript?
Hallo, entweder ich bin dumm oder ich wurde auf dem Kurs Datenbankmanagementsysteme im Moodle rausgeschmissen. Ich sehe den Kurs in der Übersicht nicht. Wie finde ich den Kurs. Also wo muss ich erneut nach dem Kurs suchen?
View 3 more comments
und ich auch , ich kann keine Übungsaufgabe oder Folien sehen , ich finde nur Übungsserver , was mache ich ? und ich habe die letzten 6 Vorlesungen nicht herunterladen .. wie lerne ich 😥?
Also ich konnte über die Startseite DBMS finden und ganz normal benutzen. Der Kurs wird mir halt nur nicht links bei Meine Kurse aufgelistet!
Wie lernt ihr generell für den Übungsserver?
ich hab hier gelesen dass man mit dem Script gar nicht arbeiten soll und ganz andere Dinge lernen soll. Ich würde gerne wissen ob ich das genau so machen kann wenn ich so gut wie gar nichts weiß. Ich hatte nicht die Möglichkeit an den Vorlesungen teilzunehmen auf Grund von diversen Problemen daher meine Frage.
View 2 more comments
Es gibt hier die ein oder andere Datei, die die wichtigsten Theoriefragen beinhaltet. Desweiteren kannst Du natürlich mit den Übungsblättern lernen und solltest Dir definitiv die Probeklausuren anschauen und Dir den Theorieteil verinnerlichen. Ausschließlich Script lernen würde ich nach meinem jetzigen Wissensstand definitiv nicht. Man hat da nicht so recht den Überblick was wichtig ist und was nicht. Denn bestimmte Themen werden mit sehr großer Wahrscheinlichkeit in eines der beiden Prüfungen abgefragt.
Alles klar. Danke für die Hilfe leute👍🏻🙏🏻
Ich kann mich nicht mit dem Übungsserver verbinden. Bin mit dem uni vpn verbunden und bekomme trotzdem ein "The connection has timed out" angezeigt. Mir ist jetzt aufgefallen dass ich zwar mit dem vpn verbunden bin aber meine ip adresse sich nicht ändert. Hatte jemand dasselbe Problem oder kennt jemand eine Lösung?
Hab das selbe Problem
Die Uni-IPs sind mWn im Bereich 132.252... Geht mal auf wieistmeineip.de und lasst euch dort die IP-Adresse anzeigen. Wenn da eine IP der Uni erscheint, seid ihr im VPN drin.
Hallo an Alle, Info heute aus der Übungs VL. Wahrscheinlich fangen wir nächsten Donnerstag mit der Wiederholung der VL an.
View 1 more comment
Ja. So habe ich es verstanden. Das VL Video von heute war wohl das letzte.
Alles klar, danke!
Ohne scheiß, gut gemeinter Tipp. Pfeift auf das Script zum lernen. Lernt das Dokument Reuploadheorieklausurrelevant und den Theorieteil der Probe und Altklausuren. Es kommen original wieder und wieder die gleichen Theorieaufgaben abwechselnd vor. Ich kann euch aus dem Dokument sogar einige Aufgaben nennen, die fast sicher abgefragt werden.
View 8 more comments
@Anonymer Geldsack Sie wurde die letzten Jahre, genauso wie dieses Semester auch, von Herrn Hanenberg gehalten
Okay, dann bin ich ja erleichtert! Danke :)
Bin BWL Student, weiß einer bis wohin es für uns BWLer relevant ist ? :)
Ab dem Blatt, in dem es um Transaktionsmanagement geht, ist es für BWL Studenten nicht mehr Klausurrelevant
Kann mir vielleicht jemand erklären warum der housename unten gleich null sein muss? Welcher Charakter war Schüler und Schulleiter der gleichen Schule?(characterid,firstname,lastname) select distinct characterid,firstname,lastname from character natural join schoolhouse natural join student where characterid in (select characterid from character natural join schoolhouse natural join head where housename is null)
View 3 more comments
Dennoch erleichtert es das Ganze ungemein
Vielen Dank für die schnelle Antwort :) Hatte mir die Pdf auch angeschaut, bin trotzdem nicht drauf gekommen... nicht mein Tag
Geben Sie an, wie viele Wesen von männlichen, und wie viele von weiblichen Wesen getötet wurden. (numKilledByMale, numKilledByFemale) Kann bitte jemand sagen, was ich hier falsch mache? select distinct numKilledByMale, numKilledByFemale from (select count(distinct characterid) numKilledByMale from gender natural join character natural join killedby group by gender having gender = 'male') q1 natural join (select count(distinct characterid) numKilledByFemale from gender natural join character natural join killedby group by gender having gender = 'female') q2
Du zählst nicht, wie viele Wesen von Männern und Frauen getötet wurden, sondern, wie viele Männer und Frauen getötet wurden. Das ist so, weil du Character mit KilledBy über einen NATURAL JOIN verbindest. Dadurch hast du die Wesen, die getötet wurden. Und wenn du jetzt die characterID's pro Geschlecht zählst, zählst du die Anzahl der ermordeten pro Geschlecht. Du willst aber eigentlich die Anzahl an Wesen pro Geschlecht, welche von anderen Wesen getötet wurden. Join also nicht über Character.characterID = Character.characterID (Das macht der NATURAL JOIN), sondern über Character.characterID = KilledBy.killerID Nach der Änderung musst du dann noch das Select in den beiden Unterabfragen auf chracterID genauer machen, weil es jetzt mehrere chracterID's gibt. Also Character.characterID jeweils. Der Rest ist gut :) Und noch eine Kleinigkeit: Das macht es nicht falsch, aber eigentlich sollte man HAVING nur benutzen, wenn man Aggregatfunktionen auf etwas überprüfen möchte. Hier würde es sich anbieten das wegzulassen und diese Bedingung in den WHERE Teil zu packen.
Kann jemand den Link vom Übserver posten? Moodle ist leider down
Gib alle Charaktere aus, die noch nie einen angreifenden Zauberspruch (Characteristic Offensive) ausgeführt haben. (characterid,firstname,lastname)......Vorsicht mit Nullmarken!!!! SELECT distinct characterid, firstname, lastname FROM character natural join appliedspell WHERE characterid not in (SELECT distinct characterid FROM appliedspell natural join spell natural join spellcharacteristic natural join characteristic WHERE cname ='Offensive' and characterid is not null) Kann mir jemand den Fehler sagen?
Im FROM teil der Oberabfrage hast du mit appliedspell per natural join verbunden. Dadurch sind die Leute verschwunden, die nie einen Zauberspruch durchgeführt haben. Also lass den join einfach weg, die Unterabfrage ist so bereits gut :)
Oh mann, vielen vielen dank!!!
SELECT distinct spellid, spellname, anzahl FROM (SELECT spellid, count(*) anzahl from appliedspell where not succeeded group by spellid having count(*) >= All(select count(*) from appliedspell where not succeeded group by spellid )) q1 natural join spell Was sagt mir das q1 ??
Unterabfragen im FROM Teil brauchen zwangsweise immer einen Alias. Das q1 ist der Name, für den sich der Typ, der die Anfrage formuliert hat, als Namen entschieden hat :)
Steht in der Aufgabe "noch nie" verwendet ihr except. Steht in der Aufgabe "sowohl ... als auch ..." verwendet ihr intersect. Benutzt diese Befehle, um komplizierte und lange sql Abfragen zu vermeiden. Ein Beispiel findet ihr bei meinem Dokument "Sql Befehle + Erläuterungen" unter den Kommentaren
Ist die klaut zum NT machbar oder sollte man lieber zum VT schreiben?
View 1 more comment
Im letzten Jahr kam lediglich im NT Relationale Algebra dran.. aber das kann auch Zufall gewesen sein
Tatsächlich fand ich die NT Klausur letztes Jahr "schwerer", weil Relationale Algebra eigentlich fast nie dran kam. Fand den vt vergleichsweise einfacher, aber grundsätzlich ist es egal ob vt oder nt
hat jemand die ausgelöst?
ACID-Kriterien: A - Atomicity - Atomarität Transaktionen werden entweder ganz oder gar nicht ausgeführt C - Consistency - Konsistenzüberwachung Datenbank wird durch eine Transaktion von einen konsistenten Zustand in einen eventuell anderen, aber auch konsistenten, Zustand überführt I - Isolation - Abgrenzung Transaktionen sollen sich nicht gegenseitig beeinflussen D - Durability - Dauerhaftigkeit Nach erfolgreichen Abschluss einer Transaktion sollen die Änderungen durch diese Transaktion dauerhaft auf der Datenbank abgespeichert sein
hallo kann jemand mir helfen und die Lösung schicken ?
Schlüsselkandidaten müssen - Ein Tupel eindeutig identifizieren und - Minimal sein (Also kein Attribut soll wegelassen werden können, ohne dass die Identifizierungseigenchaft dadurch verschwindet)
No area was marked for this question
hast du du Zusammenfassung auch für andere Teile , besonders Teil 8?
Nein.
wann genau benutzt man using und warum?
Den NATURAL JOIN benutzt du, wenn du über ALLE gleichnamigen Attribute der beiden zu joinenden Tabllen verbinden möchtest. Beim USING kannst du eine Teilmenge der Menge aller gleichnamigen Attribute angeben. Also von den gleichnamigen Attributen nur die spezifizieren, über die du verbinden möchtest. Also kann man USING genau dann benutzen, wenn man über gleichnamige Attribute joinen möchte, es aber jenseits dieser Attribute auch noch weitere gleichnamigen Attribute gibt, über die man nicht joinen möchte.
Wie lange lernt ihr für die Klausur
Was mache ich hier falsch? Aufgabe: Gib alle Paare mit deren Kindern aus. (coupleid,ffirstname,flastname,mfirstname,mlastname,cfirstname,clastname) Meine Lösung: select distinct couple.coupleid, father.firstname ffirstname, father.lastname flastname, mother.firstname mfirstname, mother.lastname mlastname, child.firstname cfirstname, child.lastname clastname from couple natural join sprout natural join character child join character father on (father.characterid = maleid) join character mother on (mother.characterid = femaleid) Ich kriege ein Ergebnis, das mir scheint, richtig zu sein, ist aber anscheinend nicht so. Danke!
Hay, deine Anfrage ist richtig für die Aufgabenstellung, wie du sie geschrieben hast, und wie sie auf dem Übungsserver formuliert wurde. Nach bisschen rumprobieren habe ich allerdings herausgefunden, wieso der Übungsserver das nicht als richtig akzeptiert und was er stattdessen bekommen möchte. Aus mir unerklärlichen Gründen möchte der Übungsserver die folgende Reihenfolge für die Attribute: (coupleid,mfirstname,mlastname,ffirstname,flastname,cfirstname,clastname) Was also in der Aufgabenstellung steht, wie die Reihenfolge sein soll und die erwartete Musterlösung stimmen demnach nicht überrein. Du konntest also nichts dafür, dass deine Anfrage nicht funktionierte, denn das ist ein Fehler des Übungsservers. Ändere die Reihenfolge auf das, was ich schrieb. Dann sollte deine Anfrage auch als richtig anerkannt werden :) Vom semantischem Inhalt her war sie bereits richtig!
Achso, jetzt verstehe ich, was gemeint wurde, da fehlt eine Erklärung, was f, m und c bedeuten Bei mir sind es father, mother, child und sie meinten female, male, child Danke dir!
Was genau bewirkt der Befehl "join killedby killed on..." ?
Wie löst man derartige Aufgaben? Blicke da wirklich 0 durch
View 2 more comments
Die Mittwochsübungen sind glaub ich die einzigen, welche Übungsblatt 8 letzte Woche bereits durchnehmen konnten. An allen anderen Wochentagen war ja mindestens einmal bereits ein Feiertag. (Die Übungsblätter werden dann nachgeholt) Falls du in einer anderen Übung bist, wird dieses Thema vermutlich diese Woche behandelt :D
Gut zu wissen, danke für Info
Was mache ich falsch bei dieser Abfrage vom Übungsserver? Die Aufgabe lautet: Gib das Verhältnis von weiblichen zu männlichen Charaktere an.(femaleMaleRatio) mein Versuch: SELECT DISTINCT 1.0*numFemale/(1.0*numMale) femaleMaleRatio FROM (SELECT characterid, COUNT(*) numFemale FROM Character NATURAL JOIN gender WHERE gender = 'female' GROUP BY characterid ) q1 JOIN (SELECT characterid, COUNT(*) numMale FROM Character NATURAL JOIN gender WHERE gender = 'male' GROUP BY characterid) q2 ON q1.characterid = q2.characterid in q1 hole ich mir die weiblichen Charaktere und zähle sie in q2 die männlichen aber wie muss ich joinen? 1 .Wenn ich so joine wie ichs oben gemacht habe, dann bekomme ich keine Treffer, weil die männlichen und weiblichen Charaktere unterschiedliche IDs haben. 2. Wenn ich einen Full Outer Join nehme, dann habe ich Null marken.. 4. Bei einem CROSS JOIN ist das Ergebnis 1, warum eigendlich? 3. Oder habe ich einen ganz anderen Fehler gemacht?
Dein GROUP BY in beiden Unterabfragen ergibt denke ich keinen Sinn. Damit fragst du nach der Anzahl an females, pro female, und das ist immer 1. Gleiches Spiel bei den Männern. Für jeden Männerdatensatz fragst du nach der Anzahl der Männer in dieser Subtabelle. Auch das ist immer 1. Lass das GROUP BY weg, dann ist das schonmal um einiges richtiger. Die characterID musst du jetzt auch weglassen. Ohne bekämst du jetzt zwei Unterabfragen, die jeweils einen Wert zurückgeben (Anzahl Frauen und Anzahl Männer) Die Kannst du dann per CROSS JOIN verbinden. Die beiden Anzahlen würden dann einfach nebeneinander stehen, Und dann wärst du auch denk ich fertig :)
Danke :-) Hat funktioniert SELECT DISTINCT 1.0*numFemale/(1.0*numMale) femaleMaleRatio FROM (SELECT COUNT(*) numFemale FROM Character NATURAL JOIN gender WHERE gender = 'female' ) q1 CROSS JOIN (SELECT COUNT(*) numMale FROM Character NATURAL JOIN gender WHERE gender = 'male' ) q2
:D
Kann mir jemand erklären wann man left und right outer join benutzt anstatt natural join?
View 1 more comment
Danke für die schnelle Antwort :D
Faustregel: OUTER JOIN behält alle Ergebnisse auf der linken/rechten Seite, INNER JOIN (= NATURAL JOIN) schmeißt die Ergebnisse weg, die nicht in beiden Relationen vorkommen. Immer wenn dich alle Ergebnisse einer Relation interessieren, wird OUTER JOIN genutzt.
Hat jemand auch Probleme die Seite vom DBMS Übungserver aufzurufen ?
View 4 more comments
Bzw es ging dann halt trotzdem nicht, das hat irgendwie so ne Macke
Kann sein
Hallo kann mir jemand bitte erklären was steal und force bedeutet?
Steal: Eine Änderungen durch eine Transaktion darf schon vor dem Commit der Transaktion vom Primärspeicher auf den Sekundärspeicher geschrieben werden. Not Steal: Eine Änderungen durch eine Transaktion darf nicht schon vor dem Commit der Transaktion vom Primärspeicher auf den Sekundärspeicher geschrieben werden. Force: Eine Änderungen durch eine Transaktion muss spätestens zum Commit der Transaktion vom Primärspeicher auf den Sekundärspeicher geschrieben werden. Not Force: Eine Änderungen durch eine Transaktion muss nicht spätestens zum Commit der Transaktion vom Primärspeicher auf den Sekundärspeicher geschrieben werden. Änderung: Eine Schreibaktion (Also keine Lesenaktion) Commit: Ende einer Transaktion (Die letzte Aktion davon) Primärspeicher: RAM (Flüchtig) Sekundärspeicher: HDD oder SSD (Nicht flüchtig)
ohh vielen vielen dank
Load more