Datenbankmanagementsysteme

at Universität Duisburg-Essen

Join course
728
Discussion
Documents
Flashcards
Was ne Klausur er stellt 😂😂
View 8 more comments
@Wechseldatenträger Ich stimme dir zu, das hatte nichts mit ER-Diagrammen zu tun.
Genau, bei 1:n wird der Primärschlüssel der 1er Entität als Fremdschlüssel in die n Entität übernommen. Bei n:m Beziehungen wird eine separate Tabelle erstellt mit den Primärschlüsseln beider Entitäten als Primär und Fremdschlüssel der beiden Entitäten wenn ich mich recht erinnere. Die 1:1 Beziehung habe ich so belassen.
Warum lädt man die VT Klausur zur Vorbereitung hoch, wenn fast nichts davon drankommt...
View 3 more comments
Kann ich verstehen. Hab jede Mengen Leuten die Schedules Aufgaben erklärt und viele haben wohl viel Zeit damit verbracht die zu verstehen. Und dann wird die einfach nicht abgefragt.
Wieso? Mindestens die Hälfte der Klausur war Dank dem SQL Teil quasi gleich. 😜 Normalisierung kam auch schon öfters vor. Ich denke, man sollte sich davon loseisen, nur das zu lernen, was in der Vergangenheit dran kam, um nicht Gefahr zu laufen, von der Klausur überrascht zu werden. Im Prinzip könnte immer alles abgefragt werden. Dementsprechend ist die Kritik unangebracht, auch wenn ich mit meiner Vorbereitung auf die Klausur suboptimal vorankam und die Aufgaben aufgrunddessen nicht zufriedenstellend bearbeiten konnte. ☹ Von daher suche ich den Fehler weniger in den zur Verfügung gestellten Probeklausuren, Übungen, etc., sondern vielmehr darin, wie ich mich damit auf die Klausur vorbereitet habe und es zukünftig mal besser machen kann.
Was hattet ihr als Schlüsselkandidaten?
Abc und acd glaube ich
a,b,c,d
Wie viele Punkte braucht man nochmal zum bestehen? Sind die Punkte auch runtergesetzt wie beim VT oder hat das nichts mit dem NT zu tun?
View 4 more comments
Das ist dann schon arg unwahrscheinlich. Die sind ja schon so großzügig und setzen runter auf 40%. Wenn die noch mal runtersetzen würden, können die die Prüfung gleich absagen und jeden bestehen lassen
NT letztes Jahr auch 40,5
Wie fandet ihr die Klausur im Vergleich zu den vorherigen Klausuren?
SQL Teil gut machbar, Rest dahingehend unfair, dass in all den Altklausuren fast immer die selben Themen drankamen bis auf ein paar Teilpunkte, hier waren diesmal ganz andere Themen bei. Hätte man sich mit beschäftigt wären die aber auch nicht schwer gewesen.
Was kam alles vor?
View 5 more comments
Scheduling kam vor... Man sollte zwei Schedules zeichnen für Fortgepflanzte Rollback und Deadlock.
ja schon klar aber das kam auch in all den letzten Klausuren vor + dazu ne ganze Scheduling Aufgabe mit 8 9 10 Punkten
Kamen ernsthaft Operatorbäume und etwas zu ER Modell vor? Schedule kam wohl überhaupt nicht dran? Wenn das stimmt, dann ist das die erste Klausur seit Jahren, die so krass von den bisherigen abgewichen ist
View 1 more comment
Gut, dass ich zum Vt geschrieben habe. Hört sich ja ganz schlimm an. Zum Vt konnte man, wenn einem der Sql Teil probleme bereitet hat, mit all dem anderen kram sehr gut punkten. So hab ich dann auch bestanden. Aber zum Nachtermin wär ich wohl kläglich gescheitert
ER-Diagramme kamen nicht dran.
SELECT expectations FROM Stundents
Die Ruhe vor dem Sturm...
View 5 more comments
Im R14 war das doch oder?
Ja
Nennen Sie die Schichten der Drei-Ebenen-Schemaarchitektur nachANSI und nennen Sie zu jeder der Schichten ein dazugehöriges SQL-Konstrukt. Externe, Interne, Konzeptionelle Ebene, was wären dazugehörige SQL Konstrukte?
Extern = Views und Subschemas Konzeptionell = Tabellen Intern = Index, Segmente...
Dankee
Jemand schon die Lösung für die Aufgabe 5?
View 27 more comments
Müsste bei der Lösung von ganz oben nicht zum Beispiel ganz unten rechts nicht eher X2 W2 U2 stehen (in der Reihenfolge) anstatt U2 X2 W2. Das Unlocken passiert doch zum Schluss oder ist das egal?
@Anonyme Zapfsäule ja, du hast Recht. Da habe ich mich vertan
Könnte man nicht nachdem W1(x) unlocked wird, mit dem R2(x) weitermachen?
View 1 more comment
Ich bin zwar seit der Klausur im VT raus aus dem Thema aber ich meine das geht nicht wegen R2(z), das noch in der Warteliste ist. Oben hast du bei der Spalte z ja noch einen x lock
Wäre das R2(z) und nicht in der Warteliste, wäre es hier richtig, erst die Warteliste abzuarbeiten, bevor W2(z)?
No area was marked for this question
Hi, Die lösung zu dem geschlächterverhältnis (g) gibt mir fehlermeldung bei dem join befehl... ich habs versucht mit nem SELECT crid, sum(case when `gid` = '2' then 1 else 0 end)/sum(case when `gid` = '1' then 1 else 0 end) as ratio FROM crewmember join person group by crid having sum(case when `gid` = '1' then 1 else 0 end) > 0 and sum(case when `gid` = '2' then 1 else 0 end)> 0 aber da kommt auch was falsches bei raus... (überall 1.66666666) wobei es 1:1 undef. und 1:1 is (bei meiner übungstabelle) Ideen?
View 2 more comments
Laut deiner Fehlermeldung hast du wohl MySQL anstatt PostgreSQL ausgewählt. Außerdem rate ich dir davon ab SQLFiddle zu benutzen, das ist nicht gerade gut... Und die Tabellen existieren sehr wohl innerhalb des Queries, denn die jeweiligen Tabellen wurden im FROM-Teil so benannt.
Nach minimaler Abänderung. Und vorallem dem Umstellen von MySQL auf PostgreSQL.
wann benutzt man xlock wann slock beim scheduling?
S (Shared Lock) wird verwendet, um das Lesen zu erlauben. Es können mehrere Shared Locks auf demselben Objekt existieren, es darf aber auch nur gelesen, nicht geschrieben werden. X (Exclusive Lock) wird verwendet, um das Schreiben zu erlauben. Es darf allerdings nur ein einziges Exclusive Lock und gleichzeitig kein Shared Lock auf demselben Objekt existieren, um zu schreiben.
Könnte mir jmd bitte sagen in welchen Raum befindest sich die Klausur?
RE14 wie immer
R14 R00 A04
Leute, kann mir einer bitte helfen? Irgendwie versteh ich nicht, was der Unterschied zwischen einem "Non-repeatable Read" und dem "Phantom-Problem" sein soll. Irgendwie hört sich beides für mich gleich an...
View 2 more comments
Vielen vielen Dank Qre :) Also liegt der Unterschied darin, dass beim Non-repeatable read Attribute geändert wurden und beim Phantomprobleme Reihen hinzugefügt/verändert wurden? Also nach deinem Verständnis.
So habe ich es verstanden, ja ;) Also Non-repeatable read = alte Datensätze verändert. Phantompeoblem = neue Datensätze hinzugefügt (eventuell auch gelöscht)
Kann sonst noch was bei der Scheduling Aufgabe vorkommen? - Zweiphasensperrprotokoll mit Preclaiming - Striktes Zweiphasensperrprotokoll
die ersten zwei Punkte sind identisch und außer striktem 2pl und Preclaiming kann eig nichts dran kommen
Zum nt kann auch das strikte 2pl mit deadlock kommen
kennt jemand ein beispiel für preclaiming das zu einem fortgepflanzten rollback führt ?
View 5 more comments
Mir ist nicht ganz klar, wieso da W1(z) steht. Würde es nicht mehr Sinn ergeben wenn dort W1(x) steht oder verstehe ich etwas falsch?
Spielt keine Rolle, es geht nur darum das Transaktion 2 etwas genutzt hat ( in dem Fall x), welches auch von Transaktion 2 genutzt wurde. Sobald dann der Rollback eintritt, muss T2 auch zurückgesetzt werden, da das x von beiden benutzt wurde.
Hat jemand hier zu die Lösung?😊
So hab ich das gelöst: select characterid, 0 num from teaches where characterid not in( select distinct characterid from Student) union (select characterid, count(*) from Student where characterid in( select distinct characterid from Teaches )Group by characterid)
Viel Glück euch allen für die Klausur morgen
Dir auch, falls du auch schreibst.👌😊
Sollte man hier auf die Frage, wie das garantiert wird, schreiben, dass es standardmäßig vom DBMS zurückgewiesen wird, wenn man einen Wert als Fremdschlüssel eintragen möchte, der als Primärschlüssel nicht existiert? Würde das reichen?
Primärschlüssel **in der Bezugstabelle** würde ich ergänzen. Allerdings kann man auch die "CASCADE"-Funktion hier nennen. Das Löschen von allen Referenzen und den dazugehörigen Datensätzen, falls das verwiesene Objekt gelöscht wird, dient ebenfalls zur Wahrung der referentiellen Integrität. Beispiel: Student wird aus der Tabelle "Studenten" gelöscht, mittels CASCADE werden auch alle Kursbelegungen der zugehörigen Matrikelnummer aus der Tabelle "Kursbelegungen" gelöscht. Ich würde aber mal davon ausgehen, dass es reicht eines der beiden zu nennen :?
Select distinct crID from Character natural join CrewMember natural join Crew where gID not in (Select distinct gID from Character natural join CrewMember natural join Crew where gID = 2) Ist meine Lösung richtig ?
View 4 more comments
ich hätte das so gelöst select distinct crid from crewmember natural join character where gid!=2 ist denke ich bis unkomplizierter als mit unterabfragen
Select distinct from crewmember where cid not in (Select cid from character where gid = 2) könnte man das auch so lösen ?
No area was marked for this question
Ist der Trigger richtig?
View 5 more comments
@Anonymer Notenschlüssel Direkt darüber steht doch der "CREATE TRIGGER"-Block.
stimmt sorry, habe ich nicht gesehen. Danke!
Ich habe hierzu nix gefunden. Hat jemand die Lösung dazu?
Sicher! Diese Frage wurde übrigens schon zwei weitere Male gestellt, daher hab ich einfachshalber einfach meine Antwort noch einmal kopiert: "Eine View wird zwar zur externen Schicht gezählt, sie setzt sich jedoch aus Elementen der konzeptuellen Schicht (Tabellen / Relationen) zusammen. Anders herum ist die konzeptuelle Schicht gleichzeitig die Summe aller Views und Daten. Insofern ist es da schwierig die beiden Objekte klar abzutrennen. Denn die View besteht aus Elementen der konzeptuellen Schicht. Und die konzeptuelle Schicht besteht unter anderem aus Views, eine View ist nämlich eine Teilmenge der konzeptuellen Schicht, die somit gleichzeitig ein Element der externen Schicht bildet. Daher sollte man zum externen Schema bestenfalls Views UND Subschemas nennen! Ich hoffe, das war verständlich, ansonsten kannst du gerne weiter nachfragen :D"
Hallo leute kannmir einer sagen ob das korrekt ist das ist die 4 Probeklausur Preclaiming Danke im voraus!
ich glaub du hast einen fehler in der sechsten zeile da ja Transaktion 2 auf auch X zugreifen möchte R2(x) ist ja in der warteliste muss R2(y) auch auf die warteliste . Wenn eine Transaktion startet wird ja zu beginn alles benötigte gelocked
Kann mir jemand bitte diese Abfrage erklären ?
View 5 more comments
Müsste where nicht vor group by? Oder ist das beim Trigger anders?
Ne, dürfte beim Trigger nicht anders sein. Where vor Group by :D
Ich bin demjenigen der mir die Lösung zu dieser kleinen Teilaufgabe schickt, zu ewigem Dank verpflichtet :D Wäre jemand eventuell so freundlich :)?
View 3 more comments
Danke :D
Wie würde die Tabelle aussehen ? Und woran erkenne ich das fortgepflanzte rollback ?
W2(y) kann nicht aus der Warteliste. Demzufolge kommt W2(z) und W3(z) auch in die Warteliste und wir haben einen Deadlock. Alles andere ist aber richtig.
View 11 more comments
Ja aber ich hab doch in der Zeile Z als erstes eine S3 sperre, danach folgt erst die S2 sperre. Verstehst du was ich meine ? Bin etwas verwirrt
Du kannst eine x3 sperre auf eine s3 sperre setzen aber eine x3 sperre auf S2 geht nicht.
Wäre das so richtig ?
View 4 more comments
@Anonymer Würfel stimmt hab mich verschrieben :o könnte man nicht , in dem Fall doch mit R2(y) weiter machen ?
ich hätte diese Lösung..
Warum ist hier ein Blitz? Wieso kann man nicht schon da eine Lesesperre auf R2(z) setzen?
View 3 more comments
ja, und wegen r2y
okay hab es verstanden, dankeschön
Glaubt ihr auch, dass morgen Scheduling mit Preclaiming dran kommen wird? Irgendwie habe ich den Eindruck, dass pro Jahr immer beides einmal drankommt.
View 5 more comments
https://www.youtube.com/watch?v=Gn5IqtxuQFQ&list=PLoOmvuyo5UAe6Jlz20xcKTM6Y-v_ZNHkw&index=58 Das Video hat mir eigentlich ganz gut weitergeholfen, hatte am Anfang auch nichts verstanden. Würde dann noch das Skript durch gehen und Übung 11 bearbeiten bzw. dann immer mit der Lösung durchgehen
Da wär ich gar nicht mal so sicher. Das strikte 2Pl in der Klausur war sehr tricky und jeder dachte es gibt einen Deadlock, aber erst am Ende ging alles durch. Kann also möglich sein, dass ihr im NT dann tatsächlich einen Deadlock habt
Viel Glück an alle, die morgen die DBMS-Klausur schreiben. 🍀🍀🍀
Kann jemand diese Ergebnisse erläutern?
2NF: Alle Nicht-Prime Attribute müssen vom ganzen Schlüssel voll funktional abhängig sein. In Aufgabe a) wurde bereits geklärt, dass der einzig logische Schlüssel {A, B, C, F, G} sein muss. 1. ist von {A, B, C} abhängig. Leider ist dies nicht der ganze Schlüssel, sondern nur eine Teilmenge des Schlüssels, also wird die 2NF verletzt. 2. {F, G}, genau dasselbe. 5. {B, C} ist ebenfalls eine Teilmenge des Schlüssels. Also widersprechen 1., 2. und 5. der 2. Normalform. 3NF: Nicht-Prime-Attribute dürfen nicht transitiv von Schlüsselkandidaten abhängig sein. 3. ist von I abhängig. I ist allerdings nicht Teil des Schlüssels, sondern vom Schlüssel(kandidaten) abhängig. Diese Transitivität verletzt die 3. Normalform. Stattdessen sollte I -> J in eine seperate Tabelle verlagert werden. 4. Dasselbe Spielchen mit J. Damit widersprechen 3. und 4. der 3. Normalform. (Plus 1., 2. und 5., welche man aber in der Aufgabe nicht nochmals nennen soll.)
select distinct characterid,firstname,lastname from character where characterid not in (select characterid from appliedspell natural join spell natural join spellcharacteristic natural join characteristic where cname='Offensive' where characterid is not null) hey leute eine frage warum gibt der wenn man das where characteris is not null weg macht keine Tupel aus ? laut vorlesungsfolien wird null doch überspringen bei in ???
View 6 more comments
allerdings muss ich anmerken, dass nullmarken auch bei not in nicht ausgegeben werden. es wird lediglich eine leere ergebnisrelation ausgegeben, daher bedanke ich mich für deine mühe , kann mit deiner antwort aber nichts anfangen
Okay, das tut mir leid. Ich hab meine ursprüngliche Antwort nochmals angepasst, bevor irgendjemand beim Durchscrollen dann was Falsches aufschnappt.
Ist das so korrekt? Aufgabe c) ist mit dem Schlüsselkandidaten (A,C) gelöst worden.
View 2 more comments
Es sind ja beides Schlüsselkandidaten, nur wenn man das ganze dann in die dritte Normalform umformen möchte, macht es meiner Meinung nach keinen Sinn, wenn man beide Schlüsselkandidaten nimmt. Aber es stimmt schon, jetzt wo du es sagst. Ich blicke halt nicht so ganz durch, wenn man 2 Schlüsselkandidaten hat..
Ich hätte geschrieben: 3. wenn 1. Schlüsselkandidat ist und umgekehrt