Zurück zu PrüfungsvorbereitungDbs2FS08.
Konsistenzbedingungen: Was bedeutet Explizite Datenintegrität? -- Do 31.07.2008 17:40, MG
Spezielle Triggers: Instead of Trigger : Relevant für Prüfung? -- Do 31.07.2008 17:40, MG
Syntax von GRANT ANY und GRANT ALL - lbetscha
Triggers und Procedures: Zugriff auf Variabeln -- lbetscha 08/06/2008
Muss, um auf Variabeln zugreifen zu können, denen ein Doppelpunkt vorangestellt werden? also z.B.
:meinevariable := 1
Wie ist das mit ErrCode? Auf diesen wird ohne Doppelpunkt zugegriffen:
ErrCode := -1
Ist dies, weil ErrCode keine 'richtige' Variable ist? Oder ein Fehler in diesem entsprechenden Codefragment?
Antwort SK: ":=" ist eine Zuweisung; 'meinevariable' und 'ErrCode' sind Variablen. Richtig ist
meinevariable := 1;
Prüfung 2006 Aufg. 2.2 -- lbetscha 08/06/2008
COR TRIGGER Abt_MA_Update_Ort_View INSTEAD OF UPDATE ON Abt_MA_VIEW FOR EACH ROW BEGIN UPDATE Abteilung a SET a.aort = :NEW.aort WHERE a.anr = :NEW.anr END
Unsere Frage betrifft hier die Zeile
WHERE a.anr = :NEW.anr
Sind auch folgende Varianten OK? Wenn ja warum? Wenn nein warum nicht?
1. WHERE anr = :NEW.anr 2. WHERE :OLD.anr = :NEW.anr
Antworten:
UPDATE Abteilung SET aort = :NEW.aort WHERE :OLD.a.anr = :NEW.anr;
-
Musterloesung/08_SQLSpatial/01_CreateTable/Methoden.sql: weshalb SELF? -> Methode gehört doch zu Objekt, und damit sollte der Bezug 'Kinder' klar/eindeutig sein. -- Do 31.07.2008 17:40, MG
ORDBMS : Vererbung -- Do 31.07.2008 17:40, MG
Prüfung 2006 Aufgabe 4.3 -- lbetscha 08/06/2008
Definieren Sie eine gültige OQL-Anfrage: Finde alle Verlage, die Journale zum Schlagwort „Datenbanken“ herausgeben; Ausgabe des Namens.
Welche der folgenden Antworten ist korrekt?
1: SELECT DISTINCT(v.name) FROM Journal j, j.verleger v WHERE j.Schlagwort = "Datenbanken" oder diese 2: SELECT DISTINCT(v.name) FROM Verleger WHERE v.publikationen.Schlagwort = "Datenbanken"
Prüfung 2006 Bei OQL wird von einem struct geschrieben, in unseren Unterlagen wird nirgends das Wort struct in Zusammenhang mit OQL erwähnt. Was müssen wir da wissen?
OQL in alten Prüfungen kommt das SELECT struct im Bezug zu OQL vor. Was hat Abfrage1 für Vorteile gegenüber Abfrage2? (1) "SELECT struct( titel: j.titel ) FROM ..." gegenüber (2) "SELECT j.titel FROM ..."
Während das Resultat einer reinen SQL-Anfrage ist immer eine (ad-hoc) Tabelle ist, definiert OQL (ODMG-93) als Resultat-Typen LIST<T>/SET<T>/BAG<T> wobei der Typ T entweder ein Wert oder ein Objekt sein muss. Der Typ eines select-Ausdrucks ist (mit t = Typ von e): list<t> wenn order by angegeben wurde, set<t> wenn distinct, aber nicht order by angegeben wurde, bag<t> wenn weder distinct noch order by angegeben wurde.
Zur Erläuterung folgende Beispiele (mit Resultattypen):
Hinweis: Pfadausdrücke (Navigation) Wenn ein Pfadausdruck mengenwertig ist (d.h. eine Collection, typischerweise eine 1-zu-many oder many-zu-many Relationship), dann kann er nicht mehr erweitert werden! Man verwende stattdessen die FROM-Klausel. Beispiel auf Basis des Modells derselben Prüfung 2006 (ausg1.Titel ist mengenwertig):
Falsch : select ausg1.Titel from ausg1 in Ausgabe where ausg1.Titel = "Java und ODBMS" OK ....: select ausg2.Titel from ausg2 in Ausgabe, pub in ausg2.enthaelt where pub.Titel = "Java und ODBMS"
Musterloesung/08_SQLSpatial/01_CreateTable/Methoden.sql: - MG
4) Musterloesung/09_XML/04_QueryDB/LoesungAufg2.txt -- Do 31.07.2008 17:40, MG