VT 2017.doc

Exams
Uploaded by anonym 7912 at 2019-06-25
Description:

nicht meine Lösungen

 +6
213
21
Download
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
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.)
Wieso 1 ?
View 2 more comments
Select distinct produktiv from BestellPosition q1 join BestellPosition q2 on (q1.produktID = q2.produktID) where q1.preis != q2.preis Würde diese Lösung auch gehen ?
@Anonymer Geldsack Nein. Es sollen nur Produkte ausgegeben werden für die mehrere (mehr als einer) Preise eingetragen wurden. Da kommst du leider nicht um das HAVING drumherum.
ist die Aufgabe hier vollständig ? man soll ja laut der Aufgabe Das ergebnis nach kundeid und bestellid ordnen. Also zum schluss mit GROUP BY KUNDEID,BESTELLID ergänzen ?
View 7 more comments
Würde sagen wie es im Dokument steht nur halt zusätzlich natural join bestellposition und am ende order by kundeid, bestellid
Ich habe es so gemacht: SELECT kundeID, bestellID, produktID FROM Bestellung NATURAL JOIN BestellPosition WHERE produktID not in (SELECT produktID FROM BestellPosition WHERE produktID = 4711) GROUP BY kundeID, bestellID So müsste das doch gehen oder? PS: Ist der Schwierigkeitsgrad der ersten bzw einfacheren SQL Aufgaben in der VT Klausur so wie hier gewesen? Also dass jemand wie ich der die schweren Aufgaben nicht beherrscht noch zumindest 15 bis 20 Punkte holen kann? =)
wann benutzt man Count(*) und wann z.B. Count(produktid) ?
Count(*) würde alle Elemente zählen. Count(produktID) zählt die Elemente in der Spalte ProduktID. Angaben ohne Gewähr
Warum wird hier auf KlausurNote referenziert? Müsste das nicht auf Note referenzieren, da man nicht mehrere n.b.'s hinzufügen darf.
In der Tabelle KlausurNote sind ja die Noten für Klausuren eingetragen, weswegen man auch diese verwenden muss. In der Tabelle Note sind lediglich die verschiedenen Notenarten, also "sehr gut, "gut", etc... Sofern nicht ein neues Notensystem eingeführt wird, wird sich diese Tabelle auch nicht ändern.
Hay, ich hätte eine Frage an die Leute die 2018 geschrieben haben oder 2016. Hier kommen im VT und NT 2017 ca. die gleich Fragen dran, wenn es um die kleinen Dinge geht wie ACID-Kriterien. Kommen die Sachen auch 2016 oder 2018 vor? Sodass es relativ sicher ist, dass die diese Jahr auch dran kommen? oder soll man lieber auch noch so ein Zeug wie Ansi Sparc lernen was hier aber nie vorkam
View 3 more comments
ohne Tabelle, nur die Stufen nennen und kurz erklären
Oh, oke
Kann mir jemand die Überführung in die 3. NF erklären. Ich verstehe die nicht so ganz...
Die Überführung oder was sie ist? Eigentlich kann man sagen, jede Abhängigkeit die der 2. und 3. Normalform widerspricht, wird in eine eigene Tabelle gemacht und der Primärschlüssel dieser als Fremdschlüssel der Hauptrelation(T1) genommen
Meint ihr man bekommt hier auch Punkte ohne eine Tabelle zu machen? Also in Worten erklären? sind ja auch nur 3 Punkte
eigentlich dieses Beispiel ist die einfachste & schnellste Antwort
Wird so überhaupt eine Zahl 0 ausgegeben?
View 5 more comments
Werdet ihr in der Klausur mit count (*) oder mit den Attribut das ganze machen? Wann ist denn Count (*) nicht gestattet?
Das hängt natürlich immer von der Aufgabenstellung ab, oft heiß es ja z.b. "Anzahl der Autos einer Person", also am besten count(autoID) count(*) verwendest du eigentlich nur wenn es um das Zählen der gesamten Datensätze einer Tabelle geht. z.B. "Anzahl aller Personen" count(*) from Person
würd hier auch count (bestellid) funktionieren
No area was marked for this question
Hey, ich hab immer Probleme bei Aufgaben, wo man die Tabellen benennt wie zum Beispiel hier h.) gibt es irgendeinen tipp, den ihr mir geben könnt, damit ich erkenne wann ich das machen muss oder muss ich das auf dem Übungsserver immer weiter machen und hoffen, ich krieg es hin wenn es drankommt?
Soweit ich verstanden Habe sind Trigger wie normale Check Klauseln nur Aggregatfunktion wie count,sum,avg,min,max funktionieren nicht in nicht in check klauseln in postgres daher werden Trigger herangezogen . KANN EINER DAS BESTÄIGEN ?
Ja , Trigger kommen sozusagen dann in Einsatz wenn etwas berechnet werden muss.
Könnt ihr mir bitte bei folgender Frage zu CREATE TABLE KLAUSURNOTE helfen..? Wäre das folgende ebenfalls richtig? CREATE TABLE KLAUSURNOTE ( Klausurid integer Noteid integer studentid integer datum Date Constraint KlausurnotePK Primary Key(Klausurid, studentid, datum) Constraint KlausurFK Foreign Key(klausurid)references Klausur Constraint NoteFK Foreign Key(Noteid) references Note Constraint studentFK ForeignKey(studentid)references student
View 6 more comments
Also kann man die auch einfach komplett weglassen ?
ja wenn du das so wie in der lösung machst dann ja . ansonsten machst du das wie anonymes messer
Kann mir jemand bitte den Sinn von Triggern erklären ?
in triggern gibt man eine bedingung vor wenn die verletzt wird , gibt zum bsp sql eine fehlermeldung "then raise exception : ''error "
Ein Trigger ist so etwas wie eine Routine zur Ereignisbehandlung: Immer dann, wenn sich in der Datenbank eine bestimmte Situation ereignet, wird eine spezielle Prozedur automatisch ausgeführt. Ein Trigger ist in folgenden Situationen nützlich: Werte in einer Zeile einer Tabelle sollen festgelegt werden. Werte sollen vor dem Speichern auf ihre Plausibilität geprüft werden. Veränderungen in der Datenbank sollen automatisch protokolliert werden.
Warum nicht Constraint Primary Key (Klausurid, studentid, datum) ?
muss nicht, das ist einfach eine Verkürzte Schreibweise 070SQL_DDL.pdf Seite 27
kann man mir mal erklären wie ich auf T6 kommen soll ? Ich habe für T6 (ABC DE)
View 12 more comments
was wäre dein ergebnis wenn zb nur die 2.nf gefragt wird ?
Gabs es Aufgaben wo man den Lösungsweg mit angeben muss? Habe ehrlich gesagt bisher keins gesehen :)
Kann mir jemand erklären, woher man weiß, dass man bei der Aufgabe Trigger verwenden muss? Gibts im Text irgendein Wort wo man das weiß oder ähnlich? Ich wär wohl selber nie im Leben auf die Lösung gekommen
View 6 more comments
Ja. Die kann man eigentlich immer anwenden leicht umgeformt.
immer bei gewährleisten sie
Warum verwendet man hier bei der Aufgabe Group by? Ich glaube grob weiß ich warum, aber ich wäre für eine gute Erklärung dankbar.
Die Aufgabe kann mit einer HAVING-Klausel gelöst werden, diese erfordert nunmal ein GROUP BY. Desweiteren willst du ja die Preise eines Produktes vergleichen, daher erzeugst du eine sogenannte Untertabelle die nach den Produkten "gruppiert" ist, weswegen hier einfach die ProduktID verwendet wird. Wichtig ist hierbei "Die Preise VON EINEM Produkt", daher die Gruppierung.
Hey Leute, wäre jemand so nett und könnte die Lösung von dieser Preclaiming Aufgabe hochladen. Das würde mir sehr weiterhelfen..
Hab
Sehr sehr vielen Dank :)
No area was marked for this question
gönnt euch;)
weiss einer wie man die Aufgabe 5 (Scheduling) loest ? Wenn ja, koennte wer (falls vorhanden) die Loesung posten oder ein gutes Tutorial empfehlen ?
schau in den dokumenten nach, da hmgibt es eine preclaiming aufgabe mit einer anleitung