Eine Auswahl aus Klausuraufgaben früherer Klausuren

Werbung
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
Eine Auswahl aus Klausuraufgaben früherer Klausuren
Lösungen ( unvollständig)
19.5.2001
Aufgabe 1
Datenbank für Fahrzeugtypen
In einer Datenbank für Fahrzeugtypen sind folgende Informationen zu speichern :
??
??
??
??
Jeden PKW gibt es in verschiedenen Lackierungen und Stoffbezügen
Jede Lackierung und jeder Stoffbezug ist in der Regel für mehrere PKW - Typen verfügbar.
Für einen PKW - Typ sind nur bestimmte Lack - Stoff - Kombinationen erlaubt.
Legen Sie die Attribute der PKW - Typen, Lackierungen und Bezüge selbst fest.
a) Erstellen Sie ein ER - Diagramm ( in Krähenfußnotation) einschließlich der Attribute,
Primärschlüssel und Fremdschlüssel. Geben Sie auch die Kardinalität und Optionalität der
Beziehungen an !
b) Erzeugen Sie aus Ihren E - R - Modell ein relationales Datenbankschema !
Datenbankschema in der Form
Relation(Attribut1, Attribut2, ...) , Schlüsselattribute unterstreichen !
c) Führen Sie Ihr relationales Datenbankschema in SQL - Befehle zum Einspielen der Tabellen
über ! Primärschlüssel und Fremdschlüssel bitte durch CONSTRAINT’s darstellen !
1
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
Aufgabe 2 ( relationale Algebra)
Gegen sei die relationale Datenbank einer Bankfiliale, die Primärschlüssel sind
unterstrichen:
Bankfiliale(FilialNr, Name, Ort, Bankleitzahl)
Konto(KontoNr, FilialNr, Kontostand)
Kunde(Kundennr, Name, Adresse)
Gehoert_zu(KontoNr, KundenNr)
Ueberweisung(von_Blz, von_KontoNr, nach_BLZ, nach_KontoNr, Betrag)
Formulieren Sie die folgenden Fragen, falls möglich, in der relationalen Algebra ! Wenn eine
Abfrage nicht in der relationalen Algebra enthalten ist, geben Sie bitte eine Begründung an !
a) Geben Sie eine Liste aller Filialen mit ihren Bankleitzahlen aus ! Sortieren Sie die Liste nach
Bankleitzahlen und in zweiter Linie nach Namen !
nein , wegen ORDER by
b) Ermitteln Sie die Kontonummern und Namen aller Kunden, die ihr Konto überzogen haben !ja,
c) Hat Fritz Müller ein Konto bei einer Bank in Gummersbach ? Falls ja , soll die Bankfiliale und
die KontoNr. ausgegeben werden !
ja,
d) Geben Sie die Nummern, Namen und Gesamteinlagen( Summe über alle Kontostände) aller
Filialen in Gummersbach aus !
nein , wegen GROUP BY 2 P.
e) Ermitteln Sie die Nummer und Summe aller Abbuchungen aller Konten, von denen mehr als
10000 DM abgebucht wurden.
nein , wegen GROUP BY 2 P.
Aufgabe 3 ( Speicherstrukturen)
a) Erzeugen Sie einen B-Baum vom Typ 2, indem Sie nacheinander die Zahlen { 20, 19, 18, 17,
... 3,2,1 } in absteigender Reihenfolge einfügen !
b) Löschen Sie aus dem entstandenen Baum die Zahlen 12 und 20 !
Aufgabe 4 (Normalformen)
Gegeben sei eine wieder die relationale Datenbank aus Aufgabe 2 mit folgenden Relationen,
2
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
die Primärschlüssel sind unterstrichen:
Bankfiliale(FilialNr, Name, Ort, Bankleitzahl)
Konto(KontoNr, FilialNr, Kontostand)
Kunde(Kundennr, Name, Adresse)
Gehoert_zu(KontoNr, KundenNr)
Ueberweisung(von_Blz, von_KontoNr, nach_BLZ, nach_KontoNr, Betrag)
a)
b)
c)
d)
In welcher Normalform befindet sich die Datenbank ?
Welche Nachteile kann eine Überführung in die dritte Normalform haben ?
Verändern Sie das Datenbankschema so, dass es nicht mehr (3NF), aber noch (2NF) ist .
Verändern Sie das Datenbankschema so, dass es nicht mehr (2NF), aber noch (1NF) ist .
Aufgabe 5 (SQL)
Betrachten Sie die Tabellen Abteilungen und Mitarbeiter aus der Fahrrad- Datenbank, die
durch die folgenden SQL – Anweisungen erzeugt werden:
CREATE TABLE Abteilungen
(Abt_Nr
NUMBER(38) NOT NULL,
Leiter
NUMBER(38) NOT NULL,
Name
VARCHAR2(50) NOT NULL,
Ort
VARCHAR2(50));
CREATE TABLE Angestellte
(Ang_Nr
NUMBER(38) NOT NULL,
Abt_Nr
NUMBER(38) NOT NULL,
Aufgabenbeschreibung VARCHAR2(50) NOT NULL,
Beruf
VARCHAR2(50) NOT NULL,
Nachname
VARCHAR2(50) NOT NULL,
Vorname
VARCHAR2(50) NOT NULL,
Geschlecht
CHAR(1) NOT NULL,
Eintrittsdatum
DATE,
Gehalt
NUMBER(9,2) Default 0,
Abzuege
NUMBER(9,2) Default 0,
Ort
VARCHAR2(50),
Strasse
VARCHAR2(50),
Zeitstempel
DATE);
Bitte kreuzen Sie ein oder mehrere Antworten an!
1) Welche Abfrage erzeugt einen Fehler, wenn es keinen Angestellten mit Nachnamen ‘FaeskornWoyke‘ gibt ?
? ? SELECT * FROM Angestellte;
? ? SELECT Ang_Nr, Vorname, Nachname FROM Angestellte;
? ? SELECT Nachname;
2) Welches Ergebnis hat die folgende Abfrage SELECT * FROM Angestellte WHERE Nachname
!= 'Weber';
3
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
??
??
??
??
??
Alle Zeilen und Spalten der Angestellten - Tabelle
Die Anzahl der Angestellten, deren Nachname gleich Weber ist.
Die Anzahl der Angestellten, deren Nachname nicht gleich Weber ist.
Nachnamen der Angestellten, deren Nachname nicht gleich Weber ist.
Alle Zeilen und Spalten der Angestellten Tabelle, außer derjenigen Angestellten, die den
Nachname ‘Weber‘ haben.
3) Welches Ergebnis hat die folgende Abfrage SELECT * FROM Angestellte WHERE Nachname
LIKE ‘_e%‘;
? ? Die Nachnamen aller Angestellten, die als zweiten Buchstaben ein „e“ haben.
? ? Die Nachnamen aller Angestellten, die als zweiten Buchstaben von hinten ein „e“ haben.
? ? Die Nachnamen aller Angestellten, die höchsten ein „e“ haben.
? ? Die Nachnamen aller Angestellten, die als zweiten Buchstaben kein „e“ haben.
? ? Die Nachnamen aller Angestellten, die als zweiten Buchstaben von hinten kein „e“ haben.
4) Wenn Sie zwei Tabellen mit einem Natural-Join- Operator verknüpfen wollen, müssen Sie
? ? eine WHERE- Klausel benutzen
? ? die WHERE – Klausel weglassen
? ? eine Subquery benutzen
? ? beide Tabellen in der FROM – Klausel aufführen
? ? die FROM – Klausel weglassen
? ? die Tabellen über Gleichsetzung von Spalten in der WHERE – Klausel miteinander
verbinden.
5) Welcher Typ des Join- Operators wird mit der folgenden Abfrage in SQL abgebildet ? SELECT
Nachname, Ang_Nr, Abt_Nr, Name FROM Angestellte, Abteilungen;
? ? Ein Natural - Join
? ? ein Outer- Join
? ? ein kartesisches Produkt
? ? Diese Abfrage bildet keinen Join- Operator ab.
6) Welcher Typ des Join- Operators wird mit der folgenden Abfrage in SQL abgebildet ? SELECT
Nachname, Ang_Nr, Name FROM Angestellte, Abteilungen WHERE Angestellte.Abt_Nr =
Abteilungen.Abt_Nr AND Name LIKE ‘G%‘;
? ? Ein Natural – Join
? ? ein Outer- Join
? ? ein kartesisches Produkt
? ? Diese Abfrage bildet keinen Join- Operator ab.
7) Welcher Typ des Join- Operators wird mit der folgenden Abfrage in SQL abgebildet ? SELECT
Nachname, Ang_Nr, Name FROM Angestellte, Abteilungen WHERE Angestellte.Abt_Nr =
Abteilungen.Abt_Nr (+) AND Name LIKE ‘G%‘;
? ? Ein Natural – Join
? ? ein Outer- Join
? ? ein kartesisches Produkt
? ? Diese Abfrage bildet keinen Join- Operator ab.
8) Welche der folgenden SQL- Zeilen produziert einen Fehler ?
? ? SELECT Nachname , Vorname, Name as Abteilungsname
4
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
??
??
??
??
FROM Abteilungen, Angestellte
WHERE Ort = ‘Köln‘
AND Abt_Nr = Abt_Nr
Diese Abfrage produziert keinen Fehler.
9) In welcher Komponente kann eine Unterabfrage stehen ?
? ? SELECT - Komponente
? ? FROM – Komponente
? ? WHERE – Komponente
? ? ORDER BY- Komponente
? ? GROUP BY- Komponente
? ? HAVING - Komponente
10) Welche der folgenden SQL- Zeilen produziert einen Fehler ?
? ? SELECT Nachname , Vorname, Gehalt
? ? FROM Angestellte
? ? WHERE Ang_Nr = (SELECT Ang_Nr, Nachname
? ? FROM Angestellte
? ? WHERE Ort = ‘Köln‘);
? ? Diese Abfrage produziert keinen Fehler.
11) Welche der folgenden SQL- Zeilen produziert einen Fehler ?
? ? SELECT Nachname , Vorname, SUM(Gehalt)
? ? FROM Abteilungen a, Angestellte b
? ? WHERE a.Abt_Nr = b.Abt_Nr
? ? GROUP BY Nachname
? ? HAVING Sum(Gehalt) > 10000
? ? ORDER BY Nachname
? ? Diese Abfrage produziert keinen Fehler.
12) Welche der folgenden INSERT – Anweisungen erzeugt eine Zeile in der Abteilungs-Tabelle?
? ? INSERT INTO Abteilungen (Abt_Nr 10, Name ‘EDV‘);
? ? INSERT INTO Abteilungen (Abt_Nr, Name, Leiter) VALUES (10, ‘EDV‘, ‘Schmidt‘);
? ? INSERT INTO VALUES (10, ‘EDV‘, ‘Schmidt‘, ‘Wiehl‘);
13) Wenn in einer UPDATE- Anweisung die WHERE – Bedingung fehlt, werden alle Zeilen
verändert
? ? wahr
? ? falsch
14) Welche Anweisung löscht den Angestellten mit der Ang_Nr 17?
? ? DELETE Angestellte
? ? DELETE FROM Angestellte WHERE Ang_Nr = 17
? ? DELETE Angestellte WHERE Ang_Nr = 17
? ? DROP FROM Angestellte WHERE Ang_Nr = 17
15) Welche der folgenden Zeilen produziert einen Fehler ?
? ? CREATE TABLE Abteilungen
? ? (Abt_Nr NUMBER(38) NOT NULL,
? ? Leiter NUMBER(38) NOT NULL,
5
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
? ? Name VARCHAR2(50) NOT NULL,
? ? VARCHAR2(50));
16) Welche Anweisung legt eine Kopie der Angestellten – Tabelle an ?
? ? CREATE TABLE temp SELECT * FROM Angestellte;
? ? CREATE temp SELECT * FROM Angestellte;
? ? CREATE TABLE temp AS SELECT * FROM Angestellte;
? ? CREATE TABLE temp IS SELECT * FROM Angestellte;
17) Wie kann man der Abteilungstabelle ein Spalte ‘gegruendet_am‘ hinzufügen ?
? ? ALTER TABLE Abteilungen ADD COLUMN gegruendet_am Date;
? ? ALTER TABLE Abteilungen ADD gegruendet_am Date;
? ? ALTER Abteilungen ADD gegruendet_am Date;
? ? ADD COLUMN gegruendet_am Date to Abteilungen
? ? Eine Tabelle kann überhaupt nicht nachträglich verändert werden.
18) Welche Aussagen sind für einen PL/SQL – Block richtig ?
? ? Die DECLARE – Anweisung ist ein optionaler Bestandteil eines PL/SQL – Blockes, der am
Anfang eines Blockes steht.
? ? Zwischen BEGIN und END stehen die eigentlichen Anweisungen. Dieser Bestandteil ist
nicht optional.
? ? Mit EXCEPTION wird der letzte Teil eines PL/SQL – Blockes eingeleitet, der den
Fehlerbehandlungscode enthält. Dieser Bereich ist optional.
? ? Nach BEGIN muß immer ein END folgen, und zwar vor EXECEPTION, wenn eine
Fehlerbehandlung programmiert ist.
19) Welcher Cursor- Bestandteil kann in der DECLARE – Sektion eines PL/SQL- Blockes stehen ?
? ? %FOUND
? ? %NOTFOUND
? ? %ROWTYPE
? ? %TYPE
? ? %ISOPEN
20) Welcher Typ eines PL/SQL -Blockes liefert einen Wert zurück ?
? ? ein Prozedur
? ? ein Datenbanktrigger
? ? ein Package
? ? eine Funktion
? ? keine von allen
21) Welche Metadatentabelle enthält den Source-Code einer Prozedur ?
? ? USER_SOURCE
? ? USER_CODE
? ? USER_PROCEDURES
? ? USER_OBJECTS
22) Welche Anweisung erzeugt den Output ‘Hello Wold‘ am Bildschirm ?
? ? DBMS_OUTPUT.PUTLINE('Hello world.');
? ? DBMS_PRINT.PUTLINE('Hello world.');
? ? PRINT('Hello world.');
6
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
? ? DBMS_PRINT.OUTPUT('Hello world.');
? ? Das geht überhaupt nicht.
Aufgabe 6
SQL
Betrachten Sie die Beispieldatenbank des Fahrradherstellers Byce und Co. aus der Vorlesung.
Welche Ergebnisse liefern die folgenden fünf SELECT - Anweisungen ?
Erläutern Sie die Unterschiede !
I.
SELECT ang_nr , gehalt
FROM angestellte a
WHERE gehalt >
(SELECT avg(gehalt) FROM angestellte b
WHERE a.abt_abTNR = b.abt_abTNR);
II.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt >
(SELECT avg(gehalt) FROM angestellte b);
III.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt > all
(SELECT avg(gehalt) FROM angestellte Group by abt_abTNR);
IV.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt > any
(SELECT avg(gehalt) FROM angestellte Group by abt_abTNR);
V.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt >
(SELECT avg(avg(gehalt)) FROM angestellte Group by abt_abTNR);
7
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
Lösungen
Welche Ergebnisse liefern die folgenden beiden SELECT - Anweisungen ?
Erläutern Sie die Unterschiede !
I.
SELECT ang_nr , gehalt, ab.name
FROM angestellte a, abteilungen ab
WHERE gehalt >
(SELECT avg(gehalt) FROM angestellte b
WHERE a.abt_nr = b.abt_nr);
alle Angestellten, die mehr als der Durchschnitt ihrer eigenen Abteilung verdienen
II.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt >
(SELECT avg(gehalt) FROM angestellte );
alle Angestellten, die mehr als der Durchschnitt aller Gehälter verdienen
III.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt > all
(SELECT avg(gehalt) FROM angestellte Group by abt_nr);
alle Angestellten, die mehr als das durchschnittliche Gehalt aller Abteilungen verdienen
IV.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt > any
(SELECT avg(gehalt) FROM angestellte Group by abt_nr);
alle Angestellten, die mehr als das durchschnittliche Gehalt irgendeiner Abteilungen verdienen
V.
SELECT ang_nr , gehalt
FROM angestellte
WHERE gehalt >
(SELECT avg(avg(gehalt)) FROM angestellte Group by abt_nr);
alle Angestellten, die mehr als das durchschnittliche Gehalt aller Abteilungen verdienen,
VI. wenn man nochmal den Durchschnitt über die durchschnittlichen Gehälter der
Einzelabteilungen bildet
8
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
Aufgabe 7
SQL
Betrachten Sie die Beispieldatenbank des Fahrradherstellers Byce und Co. aus der Vorlesung.
Beantworten Sie in SQL:
a) Welche Teile haben eine Bezeichnung, die mit dem Buchstaben G anfängt?
b) Geben Sie eine Liste über alle Artikel aus, mit den Attributen TNr, Bezeichnung und
Verkaufspreis, wobei die Preise um 10 % erhöht werden ! Sortieren Sie die Liste
absteigend nach den Preisen und bei gleichem Preis noch mal alphabetisch aufsteigend
nach der Bezeichnung !
c) Von welchen Teilen sind mehr als 10 Einheiten im Bestand aller Lager? (Tabelle :
Lagerbestand). Geben Sie diese Teile mit den Attributen TNR, BEZEICHNUNG und der
Summe des Bestandes über alle Lager aus !
d) Welches Teil benötigt in der Stückliste (Struktur-Tabelle) die Silberfarbe mit der TNr = 3 ?
Listen Sie diejenigen Teile auf, die dieses Teil ( TNr = 3) direkt oder indirekt in der
zweiten Stufe verwenden ! Geben Sie die Attribute TNR und Bezeichnung aus der Teile Tabelle aus und benutzen Sie einen SELECT mit UNION - Statement !
e) Auf welchen Lagern liegt ein Bestand des Rades mit der TNr = 1 ?
f) Welche Teile haben, summiert über alle Lager, einen Bestand von mehr als 100 Einheiten
?
g) Gibt es Teile, deren Bestand, summiert über alle Lager, den aus der Tabelle Teile
unterschreitet ?
h) In welchem Lager werden die meisten Artikel ( Typ = 'Artikel') gelagert ?
i) Geben Sie den durchschnittlichen Bestand je Lager aus !
j) Geben Sie die Lagernummer und den durchschnittlichen Bestand derjenigen Lager aus,
deren Durchschnittsbestand höher als 1500 Einheiten ist !
k) Geben Sie eine Liste aus über alle Teile mit TNr, Bezeichnung und den Lagern, auf denen
die Teile gelagert sind !
a) Welche Teile haben eine Bezeichnung, die mit dem Buchstaben G anfängt?
SELECT Bezeichnung FROM Teile WHERE BEZEICHNUNG LIKE ‘G%’;
b) Geben Sie eine Liste über alle Artikel aus, mit den Attributen TNr, Bezeichnung und
Verkaufspreis, wobei die Preise um 10 % erhöht werden ! Sortieren Sie die Liste absteigend nach
den Preisen und bei gleichem Preis noch mal alphabetisch aufsteigend nach der Bezeichnung
!SELECT TNR, Bezeichnung, Verkaufspreis * 1.1 FROM artikel ORDER BY Verkaufspreis DESC,
Bezeichnung ASC;
c) Von welchen Teilen sind mehr als 10 Einheiten im Bestand aller Lager? (Tabelle :
Lagerbestand). Geben Sie diese Teile mit den Attributen TNR, BEZEICHNUNG und der
Summe des Bestandes über alle Lager aus !
SELECT Teile.TNR , BEZEICHNUNG, SUM(Lagerbestand.BESTAND)
FROM Teile, lagerbestand
WHERE Teile.TNR = Lagerbestand.TNR
group by Teile.TNR, Teile.Bezeichnung
having sum(Lagerbestand.bestand) >= 10;
9
10
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
d) Welches Teil benötigt in der Stückliste (Struktur-Tabelle) die Silberfarbe mit der TNr = 3 ?
Listen Sie diejenigen Teile auf, die dieses Teil ( TNr = 3) direkt oder indirekt in der zweiten
Stufe verwenden ! Geben Sie die Attribute TNR und Bezeichnung aus der Teile - Tabelle aus
und benutzen Sie einen SELECT mit UNION - Statement !
SELECT DISTINCT Teile.TNR, BEZEICHNUNG FROM Teile, STRUKTUR
WHERE Teile.TNR = struktur.OTEIL
AND
UTEIL = 3
UNION
SELECT DISTINCT s2.Oteil, Bezeichnung FROM Teile, STRUKTUR s1, Struktur s2
WHERE Teile.TNR = s1.OTEIL
AND s2. UTEIL = s1.Oteil
AND s1.UTeil = 3;
e) Auf welchen Lagern liegt ein Bestand des Rades mit der TNr = 1 ?
SELECT LANR FROM Lagerbestand
WHERE TNR = 1;
f)
Welche Teile haben, summiert über alle Lager, einen Bestand von mehr als 100 Einheiten ?
SELECT TNR FROM lagerbestand
group by TNR
having sum(Bestand) >= 100;
g) Gibt es Teile, deren Bestand, summiert über alle Lager, den aus der Tabelle Teile
unterschreitet ?
Punkte
SELECT Teile.TNR FROM lagerbestand, Teile
WHERE Teile.TNR = lagerbestand.TNR
group by Teile.TNR, Mindestbestand
having sum(Teile.Bestand) <= Mindestbestand;
h) In welchem Lager werden die meisten Artikel ( Typ = 'Artikel') gelagert ?
SELECT LANR FROM Teile, Lagerbestand
WHERE Teile.tNr = lagerbestand.TNR
AND Teile.Typ = 'Artikel'
group by LANR
having sum(Lagerbestand.bestand) >= ALL
(SELECT sum(Lagerbestand.Bestand) FROM Teile , lagerbestand
WHERE Teile.tNr = lagerbestand.TNR
AND Teile.Typ = 'Artikel'
group by LANR) ;
i)
Geben Sie den durchschnittlichen Bestand je Lager aus !
3
Prof. Dr. Heide Faeskorn - Woyke
Fachbereich Informatik , Fachhochschule Köln, Abteilung Gummersbach
Lehr- und Forschungsgebiet : Wirtschaftsinformatik, mit den Schwerpunkten Datenbank - und Informationssysteme
SELECT LANR, avg(bestand) FROM Lagerbestand group by LANR
j)
Geben Sie die Lagernummer und den durchschnittlichen Bestand derjenigen Lager aus, deren
Durchschnittsbestand höher als 1500 Einheiten ist !
SELECT LANR, avg(bestand) FROM Lagerbestand
group by LANR
having avg(bestand) >= 1500;
k) Geben Sie eine Liste aus, über alle Teile mit TNr, Bezeichnung und den Lagern, auf denen die
Teile gelagert sind !
SELECT Teile.TNR, Bezeichnung, LANR
FROM Teile, Lagerbestand
WHERE Teile.Tnr = Lagerbestand.Tnr;
l)
Geben Sie eine Liste aus, über alle Teile mit TNr, Bezeichnung und den Lagern, auf denen die
Teile gelagert sind sowie diejenigen Teile, für die kein Lagerbestand vorliegt mit dem Eintrag
„0“ bei der Lagernummer !
SELECT Teile. TNR, Bezeichnung, LANR
FROM Teile, Lagerbestand
WHERE Teile.Tnr = Lagerbestand.Tnr
UNION
SELECT TNR, Bezeichnung, 0
FROM Teile
WHERE TNR NOT IN
(SELECT DISTINCT TNr FROM Lagerbestand);
11
Herunterladen