dbs1w06kl

Werbung
DBS1 für Medieninformatiker
DB22
Musterlösung zur Hauptklausur
Musterlösung zur Hauptklausur WS 06/07
__________________________________________________________________________
Aufgabe 1.: Kreuzen Sie die richtigen Antworten an und geben Sie eine Begründung in Stichworten an. Ohne
Begründung gilt Ihre Antwort als falsch.
( X ) Richtig
( ) Falsch
1. In einer Relationalen DB sind im Data Dictionary die DB-Schemata,
in den Tablespaces die Relationen gespeichert.
Grund: Das DataDictionary enthält die Schema-Definitionen und wird durch die DDL bearbeitet, die DML berabeitet die Daten
( ) Richtig
( X)
Falsch
2. Folgende SQL-Anweisungen sind gleichbedeutend:
SELECT name, firma FROM vert, kdst WHERE vert.vertnr = kdst.vertreter;
SELECT name, firma FROM vert LEFT JOIN kdst ON vert.vertnr = kdst.vertreter;
Grund: LEFT join bedeutet, dass ALLE Datensätze aus vert geliefert werden , auch wenn es dazu keinen passenden
Datensatz in kdst gibt. INNER JOIN wäre korrekt.
( )
( X)
Richtig
Falsch
3. Der Hauptnachteil von Views ist, dass Datenänderungen in den Basisrelationen sich erst in der
nächsten Session auf die View auswirken.
Grund: Views sind gespeicherte Select-Befehle, die bei jeder Verwendung neu ausgeführt werden, also aktuell sind.
( )
X )
Richtig
Falsch
4. Referentielle Integrität einer Datenbank bedeutet, dass alle Fremdschlüsselspalten gefüllt sind (
(NOT NULL) und alle referenzierten Tupel existieren.
Grund: Leere Einträge in Fremdschlüsselspalten sind ausdrücklich zulässig, es sei den, NOT NULL ist angegeben
( X)
( )
Richtig
Falsch
5. Eine Kardinalität mit Minimum 1 kann oft durch eine NOT NULL-Bedingung abgebildet
werden.
Grund: (1:1) ist immer durch eine NOT-NULL-Bedingung am Fremdschlüssel ausdrückbar, (1:n) nicht.
( )
( X)
Richtig
Falsch
6. Normalisierung bedeutet die Entfernung von Redundanzen in Schlüsselattributen.
Grund: Normalisierung entfernt Redundanzen aus Nicht-Schlüssel-Attrbuten (NSA)
( )
( X)
Richtig
Falsch
7. Datenunabhängigkeit bedeutet, dass ein Anwendungsprogramm das Logische Schema der
verwendeten Datenbank nicht kennen muss.
Grund: ...bedeutet, dass das Anwendungsprogramm nicht das GESAMTE logische Schema kennen muss, ggf. sogar
durch VIEWS davon abgekoppelt ist, und dass es das physische Schema gear nicht kennen muss.
( X ) Richtig
( ) Falsch
8. Semantische Datenmodellierung bedeutet, die Modellierung von Informationsstrukturen und
Beziehungen ohne Bezug auf eine Implementierungstechnik.
Grund: ERM und UML snd semantische Modelle ohne Referenzimplementierung. // Sind auf verschiedene Logische
Modelle abbildbar. // Heißt deshalb auch abstrakte Datenmodellierung
( ) Richtig
( X ) Falsch
9. Instead-of-Trigger dienen der Datenmanipulation über Views. Sie können für Insert, Udate,
Delete und Select definiert werden, aber nicht für Alter Table.
Grund: Trigger sind nur für DML-Operationen definierbar, also nicht für Select
( X ) Richtig
( ) Falsch
10. Eine prozedurale Erweiterung von SQL, wie sie für die Definition von Triggern verwendet
wird, muss im DBMS implementiert sein, d.h. dort kompilier- und ausführbar sein.
Grund: Es gibt in diesem Fall keine andere Laufzeitumgebung als das DBMS________________________________
( 0 5 10 15 20 25 30 35 40 45 50 )
_______________________________________________________________________________________________
Aufgabe 2: SQL-Befehle für mat_inf:
a)
Schreiben Sie eine SQL-Anweisung, die Auftragsnummer, Firmenname des Kunden und Lieferschein-Datum aller
Auftrage aus dem Jahr 2003 auflistet, die den Artikel "SCSI-Kabel" enthalten.
Select Distinct aufnr as Auftragsnummer, firma, ls_datum as Lieferscheindatum
I. Schmiedecke
Winterrsemester 06/07
Seite 1/3
DBS1 für Medieninformatiker
DB22
Musterlösung zur Hauptklausur
From aufkopf Inner Join aufpos On aufnr Inner Join kdst On kdnr
Where ls_datum like '%2003%' and artnr IN
(Select artnr From artst Where artbez = 'SCSI-Kabel');
b) Schreiben Sie eine SQL-Anweisung, die für alle Auftragspositionen der Aufträge ab Nr. 10 als Termin das aktuelle
Datum SYSDATE einträgt.
Update aufpos Set termin = SYSDATE Where aufnr >9;
c)
Schreiben Sie eine SQL-Anweisung, die eine Lieferschein-View erstellt. Ein Lieferschein ist eine nach
Auftragsnummern geordnete Liste von Auftragsnummer, Lieferdatum, Name und Anschrift des Kunden und zu
lieferndem Artikel mit Artikelnummer und Artikelbezeichnung (ohne Preis).
Create View Lieferscheinview As
Select aufnr as Auftragsnummer, ls_datum as Lieferdatum, Firma, PLZ, Ort, Strasse,
artnr as Artikelnummer, artbez as Bezeichnung
From aufkopf Inner Join kdst On kdnr InnerJoin aufpos On aufnr
Order By aufnr;
d) Schreiben Sie einen Trigger, der bei INSERT in die Tabelle aufkopf automatisch SYSDATE als LS_Datum setzt.
Create Or Replace Trigger Lieferschein_Trigger
Before Insert On aufkopf
For Each Row
Begin
Select Sysdate into :New.ls_datum from dual;
End;
Lösung auf dem Extrablatt Nr. _________
( 0 5 10 15 20 25 30 35 40 45 50 )
_______________________________________________________________________________________________
Aufgabe 3: Ebay-Modellierung und -Implementierung:
a)
(10 Punkte) Markieren Sie alle Existenzabhängigkeiten im unten stehenden vereinfachte Ebay-Modell, und geben
Sie an, ob und wie sie im Relationalen Schema implementiert werden können.
Alle roten durch eine NOT NULL-Bedingung am Fremdschlüssel, grün (Artikel) nur mit Kunstgriffen
b) Verändern Sie das unten stehende vereinfachte Ebay-Modell (zeichnerisch) so, dass ein Mitglied beliebig viele
Mitgliedsnamen ("Nicknames") haben darf. Beachten Sie dabei, dass die Identifizierung des Käufers/Verkäufers
dann über den Mitgliedsnamen erfolgen muss, nicht über das Mitglied. (rot)
c)
Verändern Sie das Ebay-Modell (zeichnerisch) so, dass derselbe Artikel in mehreren Auktionen angeboten werden
darf (z.B. nach erfolgloser Auktion). Fügen Sie dem Artikel ein Attribut "verkauft" hinzu. (grün)
I. Schmiedecke
Winterrsemester 06/07
Seite 2/3
DBS1 für Medieninformatiker
DB22
Musterlösung zur Hauptklausur
d) Im RDM ist die Tabelle Artikel bisher so definiert:
CREATE TABLE Artikel (Artikelnr NUMBER(10) PRIMARY KEY,
Auktionsnr NUMBER(10) ,
……<weitere Spalten>,
CONSTRAINT art_1 FOREIGN KEY
Auktionsnummer references Auktion NOT NULL );
Schreiben Sie die ALTER TABLE-Anweisungen zur Umsetzung von c).
Alter Table artikel Drop Constraint art_1;
Alter Table artikel Add verkauft Integer check Not Null;
Alter Table Auktion Add Fore ign Key aukt_1 artikelnummer references artikel;
e)
( 5 Extrapunkte) Schreiben Sie eine View, die Liste aller Auktionen einstellbaren Artikel darstellt, d.h. Artikel, die
noch nicht verkauft sind und zur Zeit nicht angeboten werden: Verbinden sie dazu zwei Select-Anweisungen mit
MINUS (die erste Liste OHNE die Elemente der 2. Liste)
Create View Einstellbar As
(Select artikelnr From Artikel where verkauft =0
MINUS
Select distinct artikel.artikelnr from artikel Inner Join auktion on artikelnr
And endedatum > SYSDATE);
I. Schmiedecke
Winterrsemester 06/07
Seite 3/3
Herunterladen