dbs1w06kuel - schmiedecke.info

Werbung
DB1 für Medieninformatiker
DB22
Musterlösung zur Übungsklausur
Musterlösung zur Übungsklausur
Zulässige Hilfsmittel: Eine Seite handschriftl. Notizen, Skript Kap.4 (SQL), Ihr Ebay-ERM., Mat_inf-Doku
Die Aufgaben sind ungefähr gleich aufwändig und sind je 50 Punkte wert. Bei Unklarheiten fragen Sie den Dozenten.
Schreiben Sie die Lösungen auf diese Blätter, bzw. auf numerierte leere Blätter mit Ihrem Namen; kennzeichnen Sie die
Aufgabennummer eindeutig. Geben Sie alle Blätter (auch die Schmierblätter) ab: Für teilweise richtige Lösungen können Sie Teilpunkte bekommen, auch aufgrund Ihrer Schmierblätter!
Aufgabe 1. (40 Punkte, 15 Min): Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stichworten dazu. Ohne Begründung gilt Ihre Antwort als falsch.
( ) Richtig
( x ) Falsch
1. Ein ERM-Modell ist die grafische Darstellungen eines relationales DB-Schemas.
Grund: ERM ist konzeptuelles oder emantisches modell, RDM ist logisches Modell, aus ERM ableitbar
( x ) Richtig
(
)
Falsch
2. Folgende SQL-Anweisungen sind gleichbedeutend:
select name, vert from kdst where vert in (select vertnr from vert where hauptv = NULL);
select name, vert from kdst, vert where kdst.vert = vert.vernr and hauptv = NULL;
Grund: Ergebnis ist Liste der Vertreter ohne Vorgesetzen Hauptvertreter
( )
( x)
Richtig
Falsch
3. Es ist für den DB-Benutzer unbedingt nötig, das konzeptuelle Schema der DB zu kennen.
Grund: DB-Entwickler benötigt konzeptuelle Schema, Benutzer arbeitet auf dem logischen Schema oder externen Sch.
( )
(x)
Richtig
Falsch
4. Beim Erzeugen der Tabellen einer Relationalen DB ist die Reihenfolge beliebig, beim
Einfügen von Datensätzen ist die Reihenfolge durch Constraints eingeschränkt.
Grund: Referentielle Integrität greift schon bei der Schema-Erzeugung
( )
(x)
Richtig
Falsch
5. Im ERM erkennt man Existenzabhängigkeit an der Maximum-Angabe der Kardinalitäten.
Grund: Am Minimum
( )
(x)
Richtig
Falsch
6. Relationale Datenbanken müssen redundanzfrei sein.
Grund: Redundanz-Armut istNnormalisierungsziel, Teilweise Denormalisierung aus Effizienzgründen
(x)
(x)
Richtig
Falsch
7. M:N-Beziehungstypen eines ERM sind im Relationalen Modell nicht abbildbar.
Grund: nicht unmittelbar auf Fremdschlüssel abbildbar, erfordern die Definition einer Verknüpfungstabelle
( x ) Richtig
( ) Falsch
8. Verzögerte Bedingungsprüfung bedeutet, dass die DB vorübergehend inkonsistente
Zustände zulässt.
Grund: Konsistenz wird erst bei „Commit“ geprüft.
( ) Richtig
( x ) Falsch
9. Update-Anomalie bedeutet, dass der Datenbestand einer Relationalen DB nach jeder UpdateAnweisung konsistent sein muss.
Grund: Dass aufgrund der Schema-Struktur ein Update zu Inkonsistenzen führen kann.
( ) Richtig
( x ) Falsch
10. Unter "Implementierung" eines DB-Schemas versteht man, das Relationenschema
mit Testdatensätzen zu füllen.
Grund: Implementierung == Schema-Erzeugung, Prototyp == Testdaten eingetragen
I. Schmiedecke
Wintersemester 06/07
Seite 1/2
DB1 für Medieninformatiker
DB22
Musterlösung zur Übungsklausur
Aufgabe 2: SQL-Befehle für mat_inf:
a)
Schreiben Sie eine SQL-Anweisung, die für den Auftrag, dessen Numer in der Hostvariable :AUFTR steht, eine
weiter Auftragsposition einträgt. die Daten können Sie frei erfinden.
Insert Into aufpos Values (:AUFTR, 5, 7, 7, 1000, ‘2003-12-12’, 699.00);
b) Schreiben Sie eine SQL-Anweisung, die den Firmennamen des Kunden und die Auftragsnummern und
Auftragssummen aller Auftrage aus dem Jahr 2003 auflistet, die von Großabnehmern stammen
Select firma, aufnr, SUM(menge*preis)
From kdst Join aufkopf On kdnr Join aufpos On aufnr Join kdgru On kdgruppe
Where termin like ’%2003%’ And grup_txt = ‘Großabnehmer’
Group By firma, aufnr ;
c)
Schreiben Sie eine SQL-Anweisung, die eine Kunden-View erstellt, mit Firmenname, Anschrift, Kundengruppe,
Umsatzsoll, Vertretername.
Create or Replace View kundenview AS
Select firma as Firmenname, Strasse, PLZ, Ort, grup_txt as Kundengruppe, umssoll As Umsatzsoll,
name As Vertretername
From kdst Join kdgru on kdgruppe Join vert On vertnr=vertreter;
d) Schreiben Sie einen INSTEAD OF-Trigger für den Eintrag eines Neukunden über die Kundenview. Für die
Kundennummer können Sie die Sequence kd_seq benutzen.
Create or Replace Trigger kundeninsert
Instead Of Insert On kundenview
For Each Row
Declare vnr Number;
kdgnr Number;
Begin
Select vertnr Into vnr From vert Where name = :NEW.vertertername;
Select kdgruppe into kdgnr From kdgru Where grup_txt = :NEW.kundengruppe;
Insert Into kdst Values(kd_seq.nextval, :NEW.firma, :NEW.strasse, :NEW.plz, :NEW.ort, vnr, 0,
:New.Umsatzsoll, 0, kdgnr, Null);
End;
_______________________________________________________________________________________________
Aufgabe 3: Ebay-Modellierung und -Implementierung: (Ohne Musterlösung!!!!)
a)
Verändern Sie das unten stehende vereinfachte Ebay-Modell (zeichnerisch) so, dass Mitglieder sich zu Gruppen
zusammenschließen können. Eine Mitgliedergruppe kann kaufen, verkaufen und Bewertungen erhalten. Die
Mitglieder können auch einzeln tätig sein.
b)
Schreiben Sie die DDL-Anweisungen, d.h. CREATE / ALTER TABLE-Anweisungen, zur Umsetzung von a).
c)
Eine Mitgliedergruppe darf nicht leer sein. Lässt sich diese Bedingung implementieren, und wenn ja, wie?
d) (5 Extrapunkte) Schreiben Sie einen Trigger, der eine Mitgliedergruppe löscht, wenn ihr letztes Mitglied entfernt
wird (Fremdschlüssellöschung, nicht unbedingt Mitgliedslöschung!).
I. Schmiedecke
Wintersemester 06/07
Seite 2/2
Herunterladen