• Keine Ergebnisse gefunden

DVD-Bestand, Kunden und das Ausleihverfahren werden in einer Datenbank verwaltet

N/A
N/A
Protected

Academic year: 2021

Aktie "DVD-Bestand, Kunden und das Ausleihverfahren werden in einer Datenbank verwaltet"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

IM

Termin: 13. Juli 2004 Zeit: 120 min Hilfsmittel: alle

Name:

Vorname:

Studiengruppe: Matrikelnr.:

Aufgabe 1 2 3 4 Punkte Note 1. Prüfer 2. Prüfer

Punkte max. 42 15 27 16 100

Punkte

Die Aufgabenstellung besteht aus 4 Aufgaben. Überprüfen Sie die Angabe (8 Seiten) sofort auf Vollständigkeit!

Lösungen müssen auf dem Aufgabenblatt eingetragen werden. Sie können auch die Rückseite der Angabe benutzen.

Bei Programmieraufgaben sind PHP und DB-Zugriffe auf Oracledatenbanken vorgeschrieben.

Aufgabe 1

Eine Videothek verleiht ausschließlich DVDs an registrierte Kunden. DVD-Bestand, Kunden und das

Ausleihverfahren werden in einer Datenbank verwaltet. Es gibt dabei folgende Entitäten mit ihren Eigenschaften:

Entität Eigenschaften Beschreibung

Kunde Name, Adresse, Ausweisnummer enthält die Daten der registrierten Kunden DVD Titel, Regisseur, Hauptdarsteller,

Herausgeber, Erscheinungsjahr

enthält alle derzeit in Deutschland lieferbaren DVDs DVD_Bestan

d

Titel, Regal, Einkaufspreis, Kaufdatum enthält alle in der Videothek vorrätigen DVDs, die Eigenschaft Regal gibt an, in welchem Regal diese DVD steht

Ausleihe Kunde, DVD, ausgeliehen am, zurückgebracht am, Ausleihkosten

enthält alle Daten für den Ausleihvorgang. Leiht ein Kunde mehr als eine DVD aus, so ist je DVD ein eigener Einträge erforderlich!!!

Erstellen Sie eine entsprechende Datenbank unter folgenden Bedingungen:

- Die Datenbank besteht aus den obigen 4 Relationen.

- Alle Primärschlüssel sind Ganzzahlen. Sie sind den obigen Eigenschaften gegebenenfalls hinzuzufügen.

- Noch nicht aufgeführte Fremdschlüssel sind den obigen Eigenschaften hinzuzufügen.

- Einige der oben aufgezählten Eigenschaften können durch Fremdschlüssel ersetzt werden. Dies ist erlaubt, aber kein Muss.

- Die Eigenschaft Adresse ist ein Objekt mit den Elementen PLZ, Ort, Strasse, Nr. Die Adresse des Kunden muss immer eingetragen sein.

- Ein Film hat oft mehrere Hauptdarsteller. Daher ist die Eigenschaft Hauptdarsteller ein Varrying Array mit bis zu 5 Elementen.

- Eine DVD ist durch Titel, Herausgeber und Erscheinungsjahr eindeutig identifiziert, nicht jedoch durch den Titel allein. Der Regisseur muss immer angegeben werden.

- Ein Kunde ist durch seine Ausweisnummer (z.B. 8697133345D) eindeutig identifiziert, nicht jedoch durch Namen und Adresse. Die Ausweisnummer ist zwingend erforderlich. Auch der Kundenname ist zwingend.

- Oft haben Videotheken von besonders nachgefragten DVDs mehrere im Sortiment. Diese können an

verschiedenen Tagen zu verschiedenen Preisen angeschafft worden sein. Auch müssen diese nicht im gleichen Regal stehen. Je real in der Videothek existierender DVD ist ein Eintrag in der Entität DVD-Bestand

vorhanden! Das Regal ist zwingend anzugeben.

- Die Ausleihe enthält pro Eintrag, welche DVD welcher Kunde an welchem Tag ausgeliehen hat. Leiht ein Kunde mehrere DVDs gleichzeitig aus, so gibt es entsprechend viele Einträge in der Entität. Das Ausleihdatum muss dabei immer zwingend mit angegeben werden. Bringt der Kunde die DVD zurück, so wird das

Rückbringdatum eingetragen, ebenso die Ausleihkosten. Letztere berechnen sich immer wie folgt: 1 Euro je Ausleihtag.

- Natürlich ist es möglich, dass ein Kunde exakt die gleiche DVD irgendwann später wieder einmal ausleiht.

(2)

A) Zeichnen Sie ein ERM dieser Datenbank. Dieses ERM enthält die vier definierten Entitäten. Die Eigenschaften der einzelnen Entitäten sind nicht anzugeben. Zeichnen Sie alle Beziehungen zwischen den Entitäten ein, und kenn- zeichnen Sie diese als m zu 1, 1 zu m oder 1 zu 1 Beziehungen. Das Modell verwendet die in der Vorlesung behan- delte Notation (Kennzeichnen von Beziehungsentitäten durch Rauten und schwache Entitäten durch Doppelrecht- ecke, Benennung der Beziehungen, Kreise für mögliche leere Einträge).

Hinweis: Beachten Sie, dass hinter jeder Beziehung ein Fremdschlüssel steckt. Die Anzahl der Beziehungen (und damit der Linien zwischen den Entitäten) in dieser Teilaufgabe sollte also mit der Anzahl der Fremdschlüssel über- einstimmen!

B) Geben Sie alle Determinanten aller vier Relationen an. Ist eine Determinante ein alternativer Schlüssel oder der Primärschlüssel der Relation, so ist sie in der entsprechenden Spalte einzutragen! Aus Einzelattributen zusammen- gesetzte Determinanten sind geeignet zusammenzufassen (z.B. in runde Klammern einklammern). Ist ein Primär- schlüssel oder alternativer Schlüssel keine Determinante, so ist er nicht einzutragen.

Geben Sie auch die höchste Normalform (bis zur 3. NF) der Relationen an.

Name der Relation

Determinante und Primärschlüssel

Determinante und alternativer Schlüssel

Sonstige Determinanten

Höchste Normalform Kunde

DVD

DVD_Bestand

Ausleihe

(3)

C) Schreiben Sie zu allen Entitäten die Create-Table-Befehle in der korrekten Reihenfolge. Diese Befehle enthalten alle notwendigen Spalten- und Tabellenbedingungen, so dass alle Schlüssel (Primär-, alternative, Fremd-) identifiziert sind. Die Fremdschlüssel enthalten dabei alle erforderlichen Angaben zur referentiellen Integrität.

Beachten Sie die Aufgabenstellung auf Seite 1 genau. Schreiben Sie auch die Befehle, um die Objekte zu definieren.

Weiter gilt: Der Einkaufspreis muss positiv sein, das Rückbringdatum muss nach dem Ausleihdatum liegen!

(4)

D) Zum Zugriff auf diese Datenbank wird eine Kennung Personal neu eingerichtet, ebenso eine Kennung je Kunde.

Betrachten wir hier beispielhaft Kunde17 mit der Kundennummer 17.

Der Kunde darf auf alle Daten in den Relationen DVD und DVD_Bestand zugreifen. Ebenso darf er sehen, welche DVDs er zur Zeit gerade ausgeliehen hat. Wie viele und welche DVDs er in der Vergangenheit bereits einmal ausgeliehen hatte, sieht er hingegen nicht.

Das Personal darf alle Daten lesen. Es darf neue Kunden hinzufügen, und von bestehenden Kunden die Adressen ändern. Weiter muss das Personal den Ausleihvorgang und den Rückgabevorgang vollständig durchführen können, nicht mehr (!). Weitere Rechte hat das Personal nicht.

Vergeben Sie genau die erforderlichen Zugriffsrechte.

(5)

Aufgabe 2

a) Der Fahrradhändler benötigt einen Überblick zum Bestand seiner Teile, die in Aufträgen vorkommen. Schreiben Sie daher eine Sicht VTeilauftrag, die alle Teile enthält, die in Aufträgen vorkommen. Zu all diesen Teilen wird ausgegeben, wie oft sie in Aufträgen vorkommen, wie groß der Bestand ist, und wie viele derzeit beim

Lieferanten bestellt wurden.

Hinweis: Aus der Vorlesung sollten die Tabellen Auftrag, Auftragsposten und Teilestamm bekannt sein. In der Tabelle Lager finden Sie zusätzlich Bestand- und Bestellinformationen. Sie benötigen nicht alle vier Tabellen!

Orientieren Sie sich genau an folgender Ausgabe. Sie wurde durch den Befehl Select * from VTeilauftrag erzeugt. Insbesondere sollten die Spaltennamen übereinstimmen.

TEILBEZEICHNUNG ANZAHL BESTAND BESTELLT --- --- --- ---

Herren-City-Rad 2 3 0

Damen-City-Rad 3 6 0

He-Rahmen lack. 1 0 0

Da-Rahmen lack. 2 2 0

Rohr 25CrMo4 9mm 4 8050 0

Sattel 2 19 10

Lenker + Vorbau 1 39 0

Pedalsatz 1 27 0

Tretlager 1 20 0

(6)

Aufgabe 3

Regelmäßig gibt der Fahrradhändler seinen Kunden einen Bonus. Daher automatisiert er dieses Ver- fahren. In einer Eingabemaske wird die Höhe des Bonus in Prozent eingegeben.

Der Bonus wird nur für Aufträge vergeben, die ein gewisses Volumen übersteigen. Dieser Schwell- Auftragswert ist ebenfalls mit anzugeben.

Dieses HTML-Programm ruft jetzt ein PHP-Pro- gramm auf. Hier geschieht folgendes:

• Existieren keine passenden Aufträge, wird mit einer kurzen Meldung das Programm beendet.

• Andernfalls werden alle Aufträge, für die der Schwellwert überschritten ist, in einer einfachen

Tabelle (ohne Überschriften) aufgelistet. Dabei wird die Auftragsnummer, der Kunde, die Auftragssumme und der gewährte Nachlass ausgegeben.

• Nach der Ausgabe wird die Änderung in der Datenbank durchgeführt.

• Die Transaktion ist bei normaler Beendigung mit einer entsprechender Ausgabe korrekt abzuschließen. Bei Fehlern wird die Transaktion komplett abgebrochen und zurückgesetzt. Auch hier erfolgt eine kurze Fehler- meldung.

Es folgt ein Ausschnitt des Codes der Datei pruef_ss04.html, siehe hierzu auch obiges Browserfenster (die Tabellen-Tags wurden der Übersicht halber entfernt):

<form action="pruef_ss04.php" method="post">

<input type="Text" name="Kennung" size=20 maxlength=20>

<input type="Password" name="Passwort" size=20 maxlength=20>

<input type="Text" name="Rabatt" size="10" maxlength="10">

<input type="Text" name="Betrag" size="15" maxlength="15">

<input type="Submit" value="Bonus gew&auml;hren"></td>

<input type="Reset" value="Zurücksetzen"></td>

</form>

Schreiben Sie das Programm pruef_ss04.php, das wie folgt beginnt:

<html> <!-- Beginn des PHP-/HTML-Programms pruef_ss04.php -->

<head><title>Pr&uuml;fung DB SS2004</title></head>

<body>

<h1>PHP-Pr&uuml;fungsaufgabe</h1>

<?php

$conn = ociLogon($_POST['Kennung'],$_POST['Passwort'],"rfhs8012_ora9i") or die("Verbindung zur Oracle-DB gescheitert. Abbruch");

(7)

// Fortsetzen:

(8)

Aufgabe 4

a) Gegeben seien 2 Transaktionen TA1 und TA2. Die Transaktion TA1 hebt 500 Euro von Konto A ab und liest zur Kontrolle vorher und nachher den Kontostand. TA2 bucht parallel dazu 10 Euro für Kontoführungsgebühren ab. Der Ablauf soll dabei in zeitlicher Reihenfolge wie folgt geschehen, wobei zeitliche Verschiebungen wegen gegenseitiger Behinderungen auftreten können:

TA1 liest Kontostand von Konto A TA1 hebt 500 Euro von Konto A ab

TA2 bucht 10 Euro von Konto A ab

TA2 beendet die Transaktion (Commit Work) TA1 liest Kontostand von Konto A

TA1 beendet die Transaktion (Commit Work)

TA1 liest also zweimal den Kontostand. Geben Sie in folgender Tabelle in Abhängigkeit des Isolationslevels an, welche Werte gelesen werden, wenn vor den beiden Transaktionen der Kontostand 900 Euro betrug.

Isolationslevel der Datenbank: Erstes Lesen Zweites Lesen Read Uncommitted

Read Committed Repeatable Read

Serializable

b) Gegeben seien die beiden Transaktionen aus a). Beide Transaktionen laufen wieder parallel ab, nicht notwendigerweise aber in der Reihenfolge aus a). Kann es Situationen geben, wo zwischen diesen beiden Transaktionen ein Deadlock auftritt. Wenn ja, so geben Sie bitte an, bei welchen Isolationsleveln dieser Deadlock vorkommt. Wenn nein, dann begründen Sie dies.

c) Welche Vor- und Nachteile haben Checkpoints?

d) Würden Sie in einer großen kommerziellen Datenbank Checkpoints einsetzen (kurz begründen)?

e) In einer großen kommerziellen Datenbank werden plötzlich laufend Fehler beim Schreiben in die Logdatei gemeldet, so dass zahlreiche Transaktionen noch nicht beendet werden können. Wie reagieren Sie als

Systemverwalter? Wie behandeln Sie insbesondere die eigentlich fertigen Transaktionen, für die nur noch das Schreiben des Commit in die Logdatei aussteht?

Referenzen

ÄHNLICHE DOKUMENTE

Androgenisierung bei Frauen, z. Hirsutismus, androgenetische Alopezie oder Akne und Seborrhoe), die mit 10 mg dosiert wurden, sollte der folgende Wortlaut nach der Indikation nur

• Gehe in den Pfad: C:\Programme (x86)\Filius\ und nenne die Dateitypen aller im Ordner enthaltenen Dateien. Lasse dir dazu die Dateierweiterungen im

Im Streitfall kommt es darauf an, ob der von der Klägerin gezahlte Preis für die aus einem Drittland eingeführten Waren (Steuergeräte mit implementierter Software) als

VOLLWASCHMITTEL PULVER SODIUM ACRYLIC ACID/MA COPOLYMER POLYETHYLENE GLYCOL POLYESTER

Flur mit Gäste WC –- Technikraum - Wohnbereich mit offener Küche –Abstellraum- Nachtdiele - Hauswirtschaftsraum --1 Duschbad 3 Schlafzimmer. EIN WORT

Eine Verbindung zwischen den nun gespeicherten Texturen und den nunmehr gesetzten RGB-Werten muß noch (Schritt 3, s.o.) hergestellt werden; dafür ist ein Platz kurz vor dem Ende

Durch Experimente zum Thema Luft und die Bearbeitung dazu ausgewählter Inhalte Durch Experimente zum Thema Luft und die Bearbeitung dazu ausgewählter Inhalte erfahren die Teilnehmer

Hinweis zu §§ 60a, 60b UrhG: Das Werk oder Teile hiervon dürfen nicht ohne eine solche Einwilligung an Schulen oder in Unterrichts- und Lehrmedien (§ 60b Abs. 3 UrhG)