1. Dateiorganisation Gegeben sind folgende Datensätze: Buch (BNr

Werbung
Übungen Datenbanken
IM-B
1
-----------------------------------------------------------------------------------------------------------------------------------------------
1. Dateiorganisation
Gegeben sind folgende Datensätze: Buch (BNr, Titel, Autor, Gebiet, Verlag, Preis)
BNr
Titel
Autor
Gebiet
Verlag
Preis
b15
Oracle8i
Eickler
DB
b17
Java
Welter
Programmierung
M+T
34.90
b25
Projektmanagem Hansen
ent
SW-Engineering
Springer
52.50
b18
C++
Beck
Programmierung
Wiley
19.90
b20
Access
Beck
DB
M+T
35.50
b16
WLAN
Heller
Netze
Springer
49.90
……
……
……
……
……
……
……
……
……
……
……
……
59.90
Annahmen:
Von einem Buch sei jeweils nur 1 Exemplar vorhanden
Zu jedem Buch wird nur jeweils 1 Autor gespeichert
Primärschlüssel: BNr (eindeutig);
Umfang: etwa 5000 Datensätze
Auf eine Seite (Block) soll 1 Datensatz bzw. 50 Indextabelleneinträge passen
1.1 Skizzieren Sie den Dateiaufbau plus Indexdatei für die angegebenen 6 Sätze:
a) serielle Datei mit unsortierter Indextabelle für den Primärschlüssel
b) serielle Datei mit sortierter Indextabelle für den Primärschlüssel
c) Nehmen Sie an, „Autor“ wäre als 2.Schlüsselfeld vereinbart (i.a. kann man bei einer Dateiorganisation
nur 1 Schlüsseleld vereinbaren). Wie würde die (zusätzliche) Indextabelle hierfür aussehen?
1.2 Die mögliche Dateiverarbeitung umfasst: fortlaufendes Lesen, sortiertes fortlaufendes Lesen, wahlfreies
Lesen, aufnehmen neuer Sätze, ändern e. bestimmten Satzes, löschen e. best. Satzes.
Vergleichen Sie dafür qualitativ (++ , + , 0, - , --) die Eignung der folgenden Dateiorganisationen
fortlaufendes fortlaufendes wahlfreies aufnehmen ändern e.
löschen e.
lesen
lesen, sortiert lesen
neuer Sätze best. Satzes
best. Satzes
serielle Datei
serielle Datei mit
unsortierter
Indextabelle
Serielle Datei mit
sortierter
Indextabelle
1.3 Erklären Sie anhand dieses Beispiels, weshalb eine zusätzliche Indextabelle i.a. zu einer geringeren
Anzahl von Plattenzugriffen beim wahlfreien Zugriff führt.
1.4 Ein Programm soll Kunden und ihre Aufträge bearbeiten. Dazu werden je eine Kundendatei und eine
Auftragsdatei angelegt.
a) Legen Sie den Satzaufbau für die Kundendatei und für die Auftragsdatei fest (je 5-6 Felder).
b) Tragen Sie in „Kunde“ 3 Kundendatensätze und in „Auftrag“ 7 Auftragsdatensätze ein.
c) Wie könnte der prinzipielle Programmablauf aussehen, um alle Kunden und zu jedem Kunden seine
Auftragssätze zu bearbeiten (z.B. ausgeben einer entsprechenden Liste)?
Wie könnte man die Daten organisieren, damit die Bearbeitung möglichst schnell abläuft?
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Übungen Datenbanken
IM-B
2
-----------------------------------------------------------------------------------------------------------------------------------------------
2. Datenbanken / SQL (DML) Rechnerübung
Gegeben sind folgende Relationen
Buch
Entleiher
ENr Name Ort
Inhalte:
R1: BUCH
BNr Titel
b15
Oracle8i
b17
Java
b25
Projektmanagement
b18
C++
b20
Access
b16
WLAN
…… ……
BNr Titel Autor Gebiet Verlag Preis
Autor
Eickler
Welter
Hansen
Beck
Beck
Heller
……
Gebiet
DB
Programmierung
SW-Engineering
Programmierung
DB
Netze
……
Verlag
M+T
Springer
Wiley
M+T
Springer
……
Preis
59.90
34.90
52.50
19.90
35.50
49.90
……
R2: ENTLEIHER
ENR
NAME
ORT
e1
Zendt
Karlsruhe
e2
Bauer
Karlsruhe
e3
Becker
Karlsruhe
e4
Schmidt
Stuttgart
e5
Knauer
Karlsruhe
2.1 Datenwiedergewinnung: Formulieren Sie die folgenden Aufgaben in SQL:
a) Lassen Sie sich den vollständigen Inhalt der beiden Tabellen anzeigen
b) Gesucht ist jeweils die Information über alle Entleiher, die in Karlsruhe wohnen.
c) Gesucht sind die Namen und Wohnorte aller Entleiher, aufsteigend sortiert nach dem Wohnort
d) Hat der Verlag „M+T“ im Gebiet „DB“ Bücher mit einem Preis unter 40 (€) ?
Gesucht: Titel, Verlag, Preis.
e) Lassen Sie Titel und Preis aller Bücher zum Gebiet „DB“ anzeigen, absteigend nach dem Preis sortiert
f) Lassen Sie Autor und Titel für alle Bücher anzeigen, bei denen der Autor mit „H“ beginnt
g) Wieviele Bücher des Autors „Hansen“ sind in der Buchtabelle vorhanden?
Ausgabe: Autor, Anzahl Bücher
h) Wie hoch ist der Durchschnittspreis aller Bücher? Ausgabe: Durchschnittspreis
i) Wie hoch ist der Durchschnittspreis aller Bücher der verschiedenen Verlage?
Ausgabe: Verlag, Durchschnittspreis
2.2 Datenänderung
Kopieren Sie die Relationen BUCH und ENTLEIHER in entsprechende Tabellen unter Ihrer Kennung.
a) Nehmen Sie einen neuen „passenden“ Datensatz in die Tabelle Buch auf.
b) Erhöhen Sie die Preise aller Bücher um 10%.
Lassen Sie den Inhalt der Tabelle Buch anzeigen
c) Entfernen Sie das Buch „C++“ des Autors „Beck“ aus der Datenbank.
d) Wenn Sie den Anfangszustand der Tabelle Buch wieder herstellen wollen, geben Sie folgenden SQLBefehl:
ROLLBACK;
Dies funktioniert aber NUR in der laufenden Sitzung!
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Übungen Datenbanken
IM-B
3
-----------------------------------------------------------------------------------------------------------------------------------------------
3. SQL: Rechnerübung
Benutzer entleihen Bücher (jedes Buch sei nur in 1 Exemplar vorhanden). Dies lässt sich folgendermaßen
darstellen (s.Vorlesung)
Entleiher
Buch
Ausleihe
1
n
1
1
Erstellen Sie die Tabelle AUSLEIHE (Ausnr, ENr, BNr, Rueckdat)
Vereinbaren Sie das Feld Ausnr als Primärschlüssel. Verwenden Sie die References Klausel NICHT.
Beachten Sie: Datensätze für zurückgegebene Bücher werden in AUSLEIHE gelöscht.
3.1
Füllen Sie die Tabelle AUSLEIHE mit mindestens 10 Zeilen (auch mit bereits überschrittenem
Rückgabedatum). Lassen Sie den Inhalt der Tabelle anzeigen
Um die neuen Inhalte festzuschreiben geben Sie den Befehl
Commit;
3.2
Welche Ergebnistabelle liefert
a) ein „kartesisches Produkt“ der beiden Tabellen Entleiher und Ausleihe
b) ein (inner) Join der beiden Tabellen Entleiher und Ausleihe mit der Verbundbedingung:
Entleiher.Enr=Ausleihe.Enr
3.3
Geben Sie die Entleiherinformationen zu allen Entleihern aus, welche Bücher ausgeliehen haben,
deren Rückgabedatum überschritten ist (Ausgabe: Enr, Name, Ort; keine Duplikate in der Ausgabe).
3.4
Stellen Sie fest, wieviele Bücher jeder Benutzer jeweils ausgeliehen hat.
Anzeige: Enr, Name, Anzahl_entliehene_Bücher (verwenden Sie COUNT und GROUP BY).
3.5 Löschen Sie jetzt einen (irgendeinen!) Entleiher aus der Tabelle Entleiher, welcher auch in der
Tabelle Ausleihe eingetragen ist. Lassen Sie den Inhalt der Tabelle Entleiher anzeigen.
3.6 Geben Sie folgenden SQL-Befehl: ROLLBACK;
Lassen Sie den Inhalt der Tabelle Entleiher anzeigen.
3.7 Vereinbaren Sie mit Hilfe des ALTER TABLE Befehls
a) ENr als Promärschlüssel in der Tabelle Entleiher
b) ENr als Fremdschlüsssel in der Tabelle Ausleihe, bezogen auf die Tabelle Entleiher
3.8 Versuchen Sie jetzt irgendeinen Entleiher aus der Tabelle Entleiher zu löschen, welcher auch in der
Tabelle Ausleihe eingetragen ist. Was passiert?
3.9 Verändern Sie die Struktur der Tabelle AUSLEIHE.
Es soll nun auch festgehalten werden, ob ein Entleiher gemahnt worden ist.
Fügen Sie ein Attribut Mahnkennz hinzu: numerisch, erlaubte Werte: 0, 1, 2; Voreinstellung 0,
3.10 Setzen Sie für alle Ausleihdatensätze, bei denen das Rückgabedatum um mehr als 6 Tage überschritten
is,t das Mahnkennz auf 1.
3.11 Erstellen Sie eine View MAHNUNG die folgende Informationen anzeigt:
Entleihernummer, Name, Ort, Buchnummer, Titel und Rückgabedatum
für alle Bücher, deren Mahnkennzeichen auf 1 steht
3.12 Bei Fristüberschreitung der Ausleihe sollen Gebühren berechnet werden. Derzeit betragen die
Gebühren 50 cent pro Buch und Überschreitungstag plus 2 € für die Mahnung.
Lassen Sie die fällige Gebühr für alle Bücher anzeigen (BenNr, BuchNr, Gebühr), deren Ausleihdatum
überschritten ist
3.13 Allgemeine Fragen:
Wäre es sinnvoll, bestimmte Felder in den Tabellen als NOT NULL zu vereinbaren? Welche?
Wurde vom System für Tabellen automatisch eine Indextabelle als Zugriffshilfe angelegt? Wäre es
sinnvoll, für bestimmte Felder zusätzlich Indextabellen als Zugriffhilfen zu vereinbaren?
Für welche Felder und warum?
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Übungen Datenbanken
IM-B
4
-----------------------------------------------------------------------------------------------------------------------------------------------
4. DB-Entwurf
4.1 Auftragsbearbeitung
Ausgehend vom Ausdruck einer Auftragsbestätigung soll eine Datenbank entworfen werden, die die für
diese Auftragsbestätigung (und darüber hinaus für die Auftragsbearbeitung generell) benötigten Daten
bereitstellt.
4.2 Diplomarbeits-DB
Eine Professorin betreut Diplomarbeiten verschiedener Studenten bei unterschiedlichen Firmen. Sie möchte
sich eine Datenbank anlegen, um einen besseren Überblick über aktuelle und abgeschlossene Arbeiten zu
erhalten. Gespeichert werden sollen Informationen über
- die Arbeiten: Titel, Autor, wer betreut die Arbeit in der.Firma
- die Firmen: Name, Adresse
- die Diplomanden: Name, Adresse
- und über die mit den Diplomanden geführten Gespräche: Datum, Dauer, Thema,...
In einer Firma können mehrere Diplomanden arbeiten, doch kann eine Diplomarbeit immer nur in einer
Firma durchgeführt werden. Ein Firmenbetreuer kann bis zu 3 Arbeiten betreuen, aber einem Diplomanden
ist stets nur ein Betreuer zugeordnet..
In der Datenbank sollen z.B. folgende Auswertungen möglich sein:
- Wann muß die Arbeit des Studenten „X“ abgegeben werden
- Hat Student „Y“ eine Verlängerung beantragt und wie lange
- Wann war das letzte Gespräch mit Studentin „Z“
- Welche Note erhielt Studentin „A“ für ihre Arbeit
- Wie heißt der Firmenbetreuer für die Arbeit „C" und wie ist seine Telefonnummer
Entwerfen Sie zu dieser Aufgabenstellung ein entity-relationship Diagramm.
4.3 Bibliotheks-Datenbank
Der auf Seite 3 verwendete Mini-Entwurf für eine Bibliotheks-DB soll erweitert werden.
Folgende Aufgaben sind zu erledigen:
a) Es soll festgehalten werden, dass Bücher in mehreren Exemplaren vorhanden sein können und dass
unterschiedliche Exemplare zu unterschiedlichen Auflagen gehören können. Die Ausleihe bezieht sich dann
natürlich auf die Exemplare.
b) Ein Buch kann mehrere Autoren, ein Autor mehrere Bücher geschrieben haben. Entsprechende Abfragen
sollen möglich sein, also z.B.: „von welchen Autoren ist das Buch X“ oder „welche Bücher hat Autor Y
geschrieben“
c) Es soll eine Verlängerung der Ausleihzeit möglich sein (max.2x)
Verändern Sie den Datenbankenentwurf so, dass obige Zusatzanforderungen erfüllt sind.
4.4 Überlegen Sie sich einen Entwurf für eine „Vorlesungsdatenbank“ aus der hervorgeht:
Inhalt der einzalnen Vorlesungen. Wer hält welche Vorleung in welchem Semester , in welchem Hörsaal, um
welche Zeit. Wieviele Plätze hat der Hörsaal. Welche Studierenden nehmen teil. Wer könnte diese Vorlesung
noch halten. Wann und wo findet die zugehörige Prüfung statt. Was sind die Ergebnisse.
(Welche weiteren Fragen fallen Ihnen ein?)
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Übungen Datenbanken
IM-B
5
-----------------------------------------------------------------------------------------------------------------------------------------------
Normalisierung
5.1 Auftragsverwaltung
Gegeben ist folgende Tabelle:
AUFTRAG (Auf-Nr,K-Nr,Dat,Ges-Betr,Art-Nr,Art-Bez,Anzahl,Einzelpreis,Preis)
Inhalt:
AufNr KNr
Dat
GesBetrag ArtNr
ArtBez
Anzahl
Einzelpreis
027
2789
020901
155
0039
Schraube
500
.15
027
2789
020901
155
0415
Dübel
300
.10
027
2789
020901
155
0027
Winkel
100
.20
027
2789
020901
155
0123
Nagel
250
.12
028
1413
020901
xx
0217
Bohrer
20
1.60
028
1413
020901
xx
0039
Schraube
1500
.15
.......... .......... ..........
............
............
.........
.............
..........
Preis
75.00
30.00
20.00
30.00
32.00
.........
........
•
In welcher Normalform befindet sich diese Tabelle?
Gibt es Attribute, die man auch weglassen könnte?
• Erstellen Sie aus obigerTabelle Tabellen in 3.Normalform (lassen Sie keine Attribute weg).
5.2 Rechnungsüberwachung
In einer DB sollen die verschickten Rechnungen gespeichert und der Zahlungseingang überwacht werden.
Für Werbezwecke wird außerdem festgehalten, welcher Kunde wann von welchem Vertreter besucht
(Kontakt=B) oder angerufen (Kontakt=Tel) wurde.
Es wurden folgende 2 Tabellen angelegt:
VERKAUF (KdNr, KdName, KdAdresse, RNr, RDat, RBetrag, ZahlDat, Mahnkennz)
KONTAKTE (KdNr, KdName, VertrNr, Datum, Kontakt, VertrNr, Datum, Kontakt,...)
•
•
In welcher Normalform befindet sich diese Tabellen?
Erstellen Sie daraus Tabellen in 3.Normalform.
5.3 Mitarbeiter-DB
In einer Mitarbeiter-Tabelle wird festgehalten, welche Sprachen und welche Programmiersprachen ein
Mitarbeiter wie gut beherrscht und an welchen Projekten er mit welchem Prozentsatz seiner Arbeitszeit
beteiligt ist:
Mitarbeitertabelle ( MANr, Name, Sprache, wiegut, Sprache, wiegut, Sprache, wiegut, ...,
Programmiersprache, wiegut, Programmiersprache, wiegut,..., Projektbezeichnung, AnteilArbeitszeit,
Projektbezeichnung, AnteilArbeitszeit,.....)
•
Erstellen Sie daraus Tabellen in 3.Normalform.
Kommerzielle Systeme
5.4 Nutzwertanalyse
Sie möchten das Datenbanksystem Access besser kennen lernen.
Es gibt nun verschiedene Arten, wie Sie diese Kenntnisse erwerben können und für diese verschiedenen
Vorgehensweisen sollen sie eine Nutzwertanalyse durchführen.
Die Alternativen sind:
1. Access wird in 4 Vorlesungsstunden überblicksweise gelehrt, dafür entfällt anderer Stoff.
2. Sie lernen Access parallel zur Vorlesung selbst anhand eines Buchs/CD/ Internet-Anleitungen
3. An der Hochschule wird ausserhalb der Vorlesungen (z.B. an 3 Samstagen) ein ausführlicher Kurs zu
Access angeboten
4. Sie lernen Access dann selbst, wenn Sie es beruflich brauchen
Führen Sie hierfür für sich eine Nutzwertanalyse durch.
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Übungen Datenbanken
IM-B
6
-----------------------------------------------------------------------------------------------------------------------------------------------
Noch: Kommerzielle Systeme
6.1 File-Server und Datenbank-Server
Sie haben einen PC und arbeiten im Mehrbenutzerbetrieb über ein Netz mit 2 verschiedenen Datenbanken (I)
und (II), die jeweils auf einem Serverrechner installiert sind.
(I) Access auf dem PC, Access zur Datenhaltung auf einem File-Server
(II) Access auf dem PC, SQL-Server zur Datenhaltung (Datenbankserver)
Jede Serverdatenbank enthält eine Tabelle KUNDE (KdNr, Name, Ort, BetreuerNr,...)
a) zeichnen Sie schematisch den Aufbau der beiden Varianten
b) Sie lassen sich in beiden Fällen aus KUNDE alle Kunden mit Ort=Stuttgart anzeigen:
welche Daten werden jeweils übers Netz übertragen?
c) Sie ändern in beiden Fällen in der Tabelle KUNDE die BetreuerNr von 1234 auf 1352:
- welche Daten werden jeweils übers Netz übertragen?
- auf welchem Rechner wird die Änderung des Tabelleninhalts jeweils durchgeführt?
6.2 Anwendungsarchitekturen
In einer Firma gege es folgende Rechnerstruktur
Arbeitsplatzrechner
stärker ausgebauter Rechner, kann als Server dienen
Netz
Skizzieren Sie jeweils in einer eigenen Zeichnung, auf welchen Rechnern welche Software installiert ist
(DBMS, Daten, Anwendungsprogramm, Oberfläche, evt. web-Server, web-Browser) für folgende Fälle:
a) Unterschiedliche Benutzer arbeiten mit gleichen oder unterschiedlichen Anwendungen jeweils mit einem
desktop-Datenbanksystem
b) Unterschiedliche Benutzer arbeiten mit gleichen oder unterschiedlichen Anwendungen mit einer
zentralen Datenbank im File-Server-Betrieb
c) Unterschiedliche Benutzer arbeiten mit gleichen oder unterschiedlichen Anwendungen mit einer
zentralen Datenbank im client-Server-Betrieb
d) Unterschiedliche Benutzer greifen mit derselben Anwendung über einen web-Browser auf eine zentrale
Datenbank zu
6.3 ACCESS
a) Skizzieren Sie, wie die grafische Darstellung der Tabellen Benutzer, Ausleihe, Buch und ihrer
Beziehungen in ACCESS aussieht.
b) Skizzieren Sie die Bildschirmoberfläche, wenn Sie in der Entwurfsansicht eine Abfrage mit dem
Namen „Mahnabfrage“ erzeugen wollen, die folgende Informationen liefert:
Benutzernummer, Name, Ort, Buchnummer und Rückgabedatum für alle Bücher,deren
Rückgabedatum vor dem 20.12.07 liegt
c) Was wäre das entsprechende Vorgehen in SQL, um dieselbe Abfrage zu formulieren und mit
einem Namen zu versehen, so dass man sie bei späterem Bedarf über diesen Namen aufrufen kann?
----------------------------------------------------------------------------------------------------------------------------------------------Prof.Dr.Kühn / Fak. W
2008
IMB-Ueb-SS08.doc
Herunterladen