Aufgabe 1: (30 Punkte) a) Was versteht man unter physikalischer Datenabhängigkeit ? (3P) Quellcode abhängig von der physikalischen Organisation b) Wie ist ein Bulk-Join definiert ? (3P) Kreuzprodukt zweier Relationen ohne on-Bedingung c) Was bedeutet die Aussage: Das Data-Dictionary ist relational strukturiert ? (3P) Alle Informationen in Form von Relationen gespeichert. d) Erläutern Sie die Bedeutung der externen Ebene im ANSII-3 Ebenen Konzept. (6 P) Sichten, eigene Strukturen für Nutzer, Nutzer angepasst. DBMS setzt um. e) Datenbanksprachen werden anhand von Kriterien bewertet. Bewerten Sie SQL gemäß folgender Eigenschaften (4 P) formale Sprache deskriptiv mengenorientiert einfache Verknüpfung mehrerer Satztypen („typübergreifende“ Operationen) möglich ja f) In welcher Weise widersprechen SQL-Implementierungen dem mathematischen Modell einer Relation ? (4 P) Identische Tupel erlaubt, Reihenfolge der Tupel von Bedeutung g) Was ist der Unterschied zwischen Select count(*) from artikel und Select count(artikel_nr) from artikel ? (3 P) Tupel werden gezählt, Vorkommnisse von artikel_nr <> NULL werden gezählt. (Gibt keine, da Primärschlüssel) auftrag-nr nicht eindeutig, month fehlt in group, b statt auftragspositionen, menge nicht in having Aufgabe: (15 Punkte) Erweitern sie die Relation kunden um das Datenfeld “summe_rechnungsbetraege_laufendes_jahr”. Schreiben Sie anschließend ein updatestatement, dass dieses Datenfeld mit den jeweils gültigen Werten aus der Relation rechnungen füllt. Alter table kunden add summe_rechnungsbetraege_laufendes_jahr number Update kunden set summe_rechnungsbetraege_laufendes_jahr = (select sum(rechnung_betrag) from rechnungen a where a.kunde_nr=kunden.kunde_nr and year(rechnung_datum)=year(current_date) Aufgabe: Sei folgender View gegeben (5 P) Create view kundenview as select * from kunden where kundengruppe < 50 Was geschieht, wenn man per „insert into kundenview“ einen Kunden mit der Gruppe 55 eingibt ? Daten werden angenommen, sind aber nicht sichtbar Was geschieht bei der Eingabe des insert-statements aus Aufgabe d), wenn man den view mit einer „with check option“ versieht ? (5 P) Daten werden abgewiesen, Fehler Aufgabe : a) Was ist in folgender SQL-Anweisung syntaktisch falsch (unabhängig von Attributnamen) ?: „Select * from kunden where kunde_nr not in (select kunde_nr from auftraege order by kunde_nr)“ order by in Subquery nicht erlaubt. b) Was ist an folgender SQL-Anweisung falsch ?: „alter table artikel add gewicht numeric(6,2) not null „ NOT NULL bei Hinzufügen eines Attributes nicht möglich. Aufgabe Welche Artikel haben die größte Gewinnspanne ihrer Gruppe (Differenz: Verkaufspreis - Einkaufspreis)? Listen Sie den Artikel, die Gruppe, die Gewinnspanne. Ausgabe sortiert nach Spanne. select from where (select from where order by artikel_nr, a.warengruppe, verkaufspreis-einkaufspreis artikel a verkaufspreis-einkaufspreis = max(verkaufspreis-einkaufspreis) artikel b a.warengruppe = b.warengruppe) verkaufspreis-einkaufspreis; Seite 2