Benutzer:MartinThoma/Datenbanken

Aus Wikiversity

Folien[Bearbeiten]

Kap2[Bearbeiten]

  • S. 29: Warum kommen polymorphe Typsysteme nicht ohne polymorphe Operatoren aus? Was ist ein polymorphes Typsystem (bitte eine Definition, keine umschreibung nennen. Also: Ein Typsystem ist genau dann polymorph, wenn gilt ...)

Kap3[Bearbeiten]

  • S. 9: Was ist ein Data Dictionary? (Bitte wieder um Definition)

Kap4[Bearbeiten]

  • S. 35: Was bedeutet es, dass "gehört zu" und "Buch Exemplar" doppelt umrandet sind? (Nochmals auf Folie 40)

Kap5[Bearbeiten]

  • Gibt es im EER Teilnehmerkardinalitäten?

Kap6[Bearbeiten]

  • S. 47: Warum gibt es im ER-Modell keine Fremdschlüssel?
    • Im ER-Modell tauchen Attribute nur einmal auf. Außerdem sind Fremdschlüssel dafür da, um das ER-Modell ins Relationale Modell zu übertragen (siehe Folie Nr. 14 im Kapitel 6)
  • S. 47: Warum ist die Abbildung von Rekusion vom ER-Modell ins Relationenmodell problematisch?
    • (habe die Frage korriegiert)
    • (siehe Folie 38 im Kapitel 6 mit Überschrift "Weiteres Problem bei Abbildung") (Ich habe es so verstanden, dass mit "Rekursion" ein Relationenschema gemeint, wie auf Folie 38 zu sehen ist)

Kap7.1[Bearbeiten]

  • S. 16 ff.: Was ist REL, was ist SAT? Was ist demzufolge F|=f?

Kap7.2[Bearbeiten]

  • ab S. 36: Syntheseverfahren. Darüber würde ich mit euch gerne mal reden.
    • Wir könnten gemeinsam die Übungs 2 bearbeiten (siehe dazu auch Frage zu Übung 2).
  • ab S. 47: MVD (Multi Value Dependency): Das muss ich mir definitiv nochmals anschauen (Irgendwie war ich bei diesem Kapitel wohl nicht da...)

Kap8[Bearbeiten]

Kap9[Bearbeiten]

Syntaktische und semantische Sicherheit: Denkt ihr das ist wichtig? Falls ja: Kann mir jemand zu beidem eine Defintion geben?

  • Eine Anfrage ist genau dann semantisch sicher, wenn ihr Ergebnis für jeden Datenbankzustand endlich ist.
  • Eine Anfrage ist syntaktisch sicher, wenn sie alleine schon wegen ihrer Syntax her semantisch sicher ist. Es gibt also semantisch sichere Anfragen, die nicht syntaktisch sicher sind, aber nicht umgekehrt. Der Grund für die Einführung dieses Konzeptes ist, dass semantische Sicherheit nicht entscheidbar ist (syntaktische aber schon, man schaut einfach ob die Anfrage die eingeschränkte Syntax aufweist). Wie genau die Einschränkung aussieht, solltest du dir in 09-19 anschauen, die Grundidee ist aber, Variablen auf einen endlichen Bereich einzugrenzen.

Kap10[Bearbeiten]

  • S. 19: Was bedeutet SFW? (nochmals auf Folie 91)
    • Select-From-Where
  • S. 45: Wann ist der Self-Join sinnvoll?
    • siehe Beispiel(e) Folie 70 ff.
  • S. 45: Was ist der Zusammenhang zwischen UNION und OUTER JOIN?
  • S. 50: Was macht ALL in "SELECT AVG(ALL Note) FROM Prüft WHERE V_Bezeichnung = 'Datenbanken I'"?
    • ALL ist die default-Einstellung, die eine Aggregatfunktion hat (Folie 52). D.h. es gibt dann nur zwei Möglichkeiten: DISTINCT oder ALL. ALL wird dann i.d.F. die Durchschnittsnote über alle Noteneinträge bilden. DISTINCT würde i.d.F. die doppelten Noten wegwerfen, was den Durchschnitt natürlich erheblich beeinträchtigen kann.
  • S. 58: Warum sollte sie nicht zulässig sein?
    • (1.) Bundesland in GROUP BY ist nicht in der select-Klausel. Auch habe ich (Peter Merkert) mir notiert, dass (2.) Datum in der GROUP BY Klausel vorkommen muss. Meistens werden dir die DBMS ein Ergebnis von Datum ausgeben, aber es ist ja nicht sicher, welches genommen wird.
  • S. 67: Was macht SOME?
    • Prüft, ob einige der Werte deinem gesuchten entsprechen. Es ist ein Existenzquantor wie ANY. Also logisch gleichbedeutend. Auch das Ergebnis ändert sich von SOME zu ANY nicht.
  • S. 74: Was ist an dem Beispiel falsch? Habe gerade "SELECT `user_name` FROM `chess_users` ORDER BY `user_password`" mit MySQL ausgefüht und da klappt einwandfrei.
    • MySQL ≠ SQL! Der vorgestellt SQL Standart akzeptiert ORDER BY nur, wenn das zu ordnende Attribut auch in der SELECT Klausel vorkommt. Das sollte in der Klausur auch auf jeden Fall eingehalten werden.
  • S. 92: Was ist ein sinnvolles Beispiel für eine Anfrage mit einer HAVING-Klausel (bei der man sie durch WHERE ersetzen kann und eine bei der das nicht der Fall ist)?
  • S. 92: Warum ist im SQL-Kontext "A == A" keine Tautologie?
    • Wenn A NULL ist, dann ist die Gleichung NULL == NULL, was in SQL unknown ergibt. Da unknowntrue, ist A == A keine Tautologie.

Kap11[Bearbeiten]

  • Habt ihr eine schöne, kurze Beschreibung, was eine Transaktion ist?
    • Eine Transaktion ist die Ausführung eines Programmes, das auf die Datenbank lesend und/oder schreibend zugreift.
    • Genauer ist eine Transaktion eine partielle Ordnung, die aus Lese-/Schreiboperationen auf "Datenobjekten" plus Abbruch-/Commitbefehl besteht und folgende Bedingungen einhält:
      • Sie beinhaltet genau einen Abbruch- oder genau einen Commitbefehl, der an letzter Stelle steht. Also jede andere Operation o[x] steht in folgender Beziehung zu a/c: o[x] < a bzw. o[x] < c.
      • Falls für das selbe "Datenobjekt" Lese-/Schreiboperationen in der Transaktion enthalten sind, sind sie auch in der partiellen Ordnung enthalten, man weiß also entweder r[x] < w[x] oder w[x] < r[x]. Diese Bedingung widerspricht sich nicht damit, dass es zum Beispiel nur r[x] gibt (das dachte ich zunächst): vergleiche zum Beispiel Klausur vom 25. Februar 2011, Aufgabe 5.
  • Habt ihr eine schöne, kurze Beschreibung, was eine History ist?
    • Eine History ist die Ausführung der Operationen mehrerer Transaktionen, die miteinander "verzahnt" sind, d. h. nebenläufig ablaufen.
    • Genauer ist eine History eine partielle Ordnung über Transaktionen, die folgende Bedingungen einhält:
      • Die History besteht genau aus den Operationen der Transaktionen (wenn weniger, dann nicht vollständig)
      • Die partielle Ordnung der History übernimmt die Beziehungen der Transaktionen, verändert also nicht die Reihenfolge innerhalb einer Transaktion.
      • Wenn zwei Operationen p, q aus der History konfligieren, müssen diese in Beziehung stehen, also entweder p < q oder q < p

Bemerkungen:

  • Zwei Operationen konfligieren <=> sie greifen auf das selbe Datenobjekt zu und mindestens eine der beiden ist "Schreiben".
  • Der Unterschied zwischen Vollständigen Histories und Histories ist mir an Hand der Vorlesungsfolien nicht ganz klar geworden.
  • Da doch einige komplexere Bedingungen einzuhalten sind, finde ich es tatsächlich schwer, eine kurze und prägnante Beschreibung zu finden. Die Bedingungen an sich kann man sich aber anschaulich ganz gut klar machen, finde ich.

Kap12[Bearbeiten]

Kap13[Bearbeiten]

Altklausuren[Bearbeiten]

Klausur A[Bearbeiten]

Klausur B[Bearbeiten]

Was ist der Unterschied zwischen „Teilnehmerkardinalität“ und „Standardkardinalität“ (Teilaufgabe a bzw. b)?

  • Ich schreibe mal den Aufgabenteil b) so hin, wie ich Standardkardinalitäten verstanden habe:
    • 1 bis 5 Autoren veröffentlichen 1 oder mehr (= N) Publikationen auf einer Konferenz.

Klausur September 2012[Bearbeiten]

Musterlösung - Nun auch getext und als PDF

  • Was passiert, wenn man "SELECT person2 AS person1, person1 FROM Friendship" ausführt?
    • Das wird wohl nicht funktionieren. Im Lösungsvorschlag steht aber "SELECT person2 AS person1, person1 AS person2 FROM Friendship", was sich äquivalent zu "SELECT person2 AS foo, person1 AS bar FROM Friendship" verhält, nur dass eben die Spaltenumbenunngen anders gewählt wurden.

Klausur Februar 2011[Bearbeiten]

Aufgabe 4.3 c: Wurde der Begriff konfliktserialisierbar (CSR) in der Vorlesung eingeführt?

  • Ich nehme an, der Begriff ist äquivalent zu unserem Begriff der Serialisierbarkeit (SR). Bin zunächst nicht darauf gekommen.


Klausur Juli 2010[Bearbeiten]

Aufgabe 2.2: Sind sowohl (links) Teilnehmer- als auch (rechts) Standardkardinalitäten in der Musterlösung angegeben?

Klausur Februar 2010[Bearbeiten]

Aufgabe 2.4 a: Wieso ist R in BCNF? Es gibt doch sogar partielle Abhängigkeiten, zum Beispiel in A->C hängt C partiell von A ab. ( S = {{A, B}} )

  • S = {{A}, {B}}!.

Aufgabe 2.4 c ii: Ich verstehe die Musterlösung nicht. Wo kommt NRW auf einmal her?

Aufgabe 4.2 c: Wurde der Begriff "sichserialisierbar" (VSR) in der Vorlesung eingeführt?

Übung[Bearbeiten]

Übung 2[Bearbeiten]

Aufgabe 1[Bearbeiten]

  • Was genau ist die Hülle? Anschaulich und formal.
  • Syntheseverfahren
    • Wie genau läuft die Linksreduktion ab?
    • Wie genau erzeugt man das Ergebnis S = {(R_1, K_1), ..., (R_n, K_n)} nach der Äquivalenzklassenbildung?

Aufgabe 2[Bearbeiten]

  • S. 43 bzw. 90 (letzte Seite): Was bedeutet die rote Markierung? Wieso ist H_2 RC?
    • Man könnte meinen, dass T_3 y von T_2 liest. Dies ist jedoch nicht der Fall, da nach w2[y] nochmal w3[y] auftaucht. Deswegen ist dies keine read-from-Beziehung und die einzige andere ist in RC, nicht aber in ACA.

Interessantes[Bearbeiten]

   SELECT 12 > NULL

ergibt mit MySQL: `NULL`

   SELECT 12 > 2

ergibt mit MySQL: `1`

   SELECT 12 >  "a"

ergibt mit MySQL: `1`

   SELECT 12 >12

ergibt mit MySQL: `0`


Fehler in den Folien[Bearbeiten]

Kap10[Bearbeiten]

  • Folie 76: In SQL funktioniert der Vergleich mit "=" und nicht mit "=="

Links[Bearbeiten]