Lehrstuhl für Praktische Informatik III - Database Management Systems

::  Zurück zur Vorlesungsseite ::

 

Datenbanksysteme I, SS 2004

7. Übungsblatt

Abgabe bis 09.06.2004, 15:30

Matrikelnummer:
Passwort:

Aufgabe 2: Updates auf Sichten

(elektronische Abgabe: je 2 Punkte)

Gegeben seien folgende Definitionen von Sichten auf dem Datenbankschema von Terra2.

CREATE VIEW GebirgeBerg (Gebirge, HoechsterBerg) AS
(
  SELECT   b1.gebirge, b1.name
  FROM     berg b1,
           (SELECT   b2.gebirge, MAX(b2.hoehe) as hoechsterberg
            FROM     berg b2
            GROUP BY b2.gebirge) b3
  WHERE    b1.gebirge = b3.gebirge
    AND    b1.hoehe = b3.hoechsterberg
)

CREATE VIEW LandHauptstadt (Land, Hauptstadt) AS
(
  SELECT   l.name, s.Name
  FROM     land l, Stadt s
  WHERE    l.hauptstadt = s.s_id
)

CREATE VIEW Monarchien AS
(
  SELECT *
  FROM Land
  WHERE Staatsform LIKE '%Monarchie%'
)

Wählen Sie aus den folgenden SQL-Anweisungen diejenigen aus, die von der Datenbank ohne Fehlermeldung ausgeführt werden (ja = ausführbar, nein = nicht ausführbar).

  1. Ja Nein
    SELECT *
    FROM LandHauptstadt l, Monarchien m
    WHERE l.Name = m.Name
    

  2. Ja Nein
    DELETE FROM GebirgeBerg
    WHERE Gebirge = 'Pamir'
    

  3. Ja Nein
    DELETE FROM Land
    WHERE Name = 'Korea'
    

  4. Ja Nein
    INSERT INTO LandHauptstadt
    VALUES ('Zamonien', 'Atlantis')
    

  5. Ja Nein
    UPDATE Monarchien
    WHERE Name='Zamonien'
    SET Name='Elbonien'
    

Aufgabe 4: Integritätsbedingungen

(elektronische Abgabe: je 2 Punkte)

Die Ticketverwaltung einer Vorverkaufsstelle wird mit Hilfe eines Datenbanksystems realisiert. Das SQL-Schema der Datenbank sieht folgendermaßen aus:

create table Veranstaltung (
Veranstaltung varchar(100) not null primary key,
Datum         date,
Ort           varchar(100));


create table Tickets (
TicketNr           integer not null primary key,
Preis              decimal(10,2),
Veranstaltungsname varchar(100),
constraint vname
  foreign key(Veranstaltungsname)
  references Veranstaltung
  on update cascade);


create table Verkauft (
TicketNr integer not null primary key,
KundenNr integer,
constraint ticket
  foreign key(TicketNr)
  references Tickets,
constraint kunde
  foreign key(KundenNr)
  references Kunde
  on delete cascade);


create table Kunde (
KundenNr integer not null primary key,
Name     varchar(100),
Wohnort  varchar(100));

Gehen Sie bei den folgenden Änderungsoperationen jedes Mal vom ursprünglichen Zustand der Relationen aus, d.h. von den ursprünglichen 22 Tupeln.


(a) Welche Tupel werden bei Ausführung des folgenden SQL-Befehls geändert?

update Veranstaltung
set Veranstaltung = 'Int. Filmfestspiele'
where Veranstaltung = 'Filmfestspiele';


Veranstaltung
1 WM:Arg-Eng 07.06.2002 Sapporo
2 WM:Jap-Rus 09.06.2002 Yokohama
3 Filmfestspiele 15.05.2002 Cannes
4 HannoverMesse 07.04.2003 Hannover


Tickets
5 2345 50.00 WM:Arg-Eng
6 2346 50.00 WM:Arg-Eng
7 2350 60.00 WM:Jap-Rus
8 2351 60.00 WM:Jap-Rus
9 122 120.00 Filmfestspiele
10 123 120.00 Filmfestspiele
11 007 160.00 Filmfestspiele
12 3240157 69.00 HannoverMesse
13 3240158 69.00 HannoverMesse


Verkauft
14 2345 0815
15 2346 0815
16 2350 3333
17 007 007
18 3240157 4711


Kunde
19 007 Sean Connery Edinburgh
20 3333 Junichiro Koizumi Tokio
21 0815 John Doe London
22 4711 Verona Feldbusch Köln

oder:
23 Keine Tupel werden gelöscht!


(b) Welche Tupel werden bei Ausführung des folgenden SQL-Befehls gelöscht?

delete from Tickets where TicketNr = 007;


Veranstaltung
1 WM:Arg-Eng 07.06.2002 Sapporo
2 WM:Jap-Rus 09.06.2002 Yokohama
3 Filmfestspiele 15.05.2002 Cannes
4 HannoverMesse 07.04.2003 Hannover


Tickets
5 2345 50.00 WM:Arg-Eng
6 2346 50.00 WM:Arg-Eng
7 2350 60.00 WM:Jap-Rus
8 2351 60.00 WM:Jap-Rus
9 122 120.00 Filmfestspiele
10 123 120.00 Filmfestspiele
11 007 160.00 Filmfestspiele
12 3240157 69.00 HannoverMesse
13 3240158 69.00 HannoverMesse


Verkauft
14 2345 0815
15 2346 0815
16 2350 3333
17 007 007
18 3240157 4711


Kunde
19 007 Sean Connery Edinburgh
20 3333 Junichiro Koizumi Tokio
21 0815 John Doe London
22 4711 Verona Feldbusch Köln

oder:
23 Keine Tupel werden geändert!


(c) Welche Tupel werden bei Ausführung des folgenden SQL-Befehls gelöscht?

delete from Verkauft where TicketNr < 200;


Veranstaltung
1 WM:Arg-Eng 07.06.2002 Sapporo
2 WM:Jap-Rus 09.06.2002 Yokohama
3 Filmfestspiele 15.05.2002 Cannes
4 HannoverMesse 07.04.2003 Hannover


Tickets
5 2345 50.00 WM:Arg-Eng
6 2346 50.00 WM:Arg-Eng
7 2350 60.00 WM:Jap-Rus
8 2351 60.00 WM:Jap-Rus
9 122 120.00 Filmfestspiele
10 123 120.00 Filmfestspiele
11 007 160.00 Filmfestspiele
12 3240157 69.00 HannoverMesse
13 3240158 69.00 HannoverMesse


Verkauft
14 2345 0815
15 2346 0815
16 2350 3333
17 007 007
18 3240157 4711


Kunde
19 007 Sean Connery Edinburgh
20 3333 Junichiro Koizumi Tokio
21 0815 John Doe London
22 4711 Verona Feldbusch Köln

oder:
23 Keine Tupel werden gelöscht!


(d) Welche Tupel werden bei Ausführung des folgenden SQL-Befehls gelöscht?

delete from Kunde where Name = 'Verona Feldbusch';


Veranstaltung
1 WM:Arg-Eng 07.06.2002 Sapporo
2 WM:Jap-Rus 09.06.2002 Yokohama
3 Filmfestspiele 15.05.2002 Cannes
4 HannoverMesse 07.04.2003 Hannover


Tickets
5 2345 50.00 WM:Arg-Eng
6 2346 50.00 WM:Arg-Eng
7 2350 60.00 WM:Jap-Rus
8 2351 60.00 WM:Jap-Rus
9 122 120.00 Filmfestspiele
10 123 120.00 Filmfestspiele
11 007 160.00 Filmfestspiele
12 3240157 69.00 HannoverMesse
13 3240158 69.00 HannoverMesse


Verkauft
14 2345 0815
15 2346 0815
16 2350 3333
17 007 007
18 3240157 4711


Kunde
19 007 Sean Connery Edinburgh
20 3333 Junichiro Koizumi Tokio
21 0815 John Doe London
22 4711 Verona Feldbusch Köln

oder:
23 Keine Tupel werden gelöscht!