• Keine Ergebnisse gefunden

Vorlesung Datenbanken SS 2005 Prof. Dr. Schicker Übung 6 Thema

N/A
N/A
Protected

Academic year: 2021

Aktie "Vorlesung Datenbanken SS 2005 Prof. Dr. Schicker Übung 6 Thema"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Datenbanken SS 2005 Prof. Dr. Schicker

Übung 6

Thema: HTML, PHP, objektrelationale Datenbanken

Übung: Internet-Programmierung mit Zugriff auf Datenbanken (PHP, SQL), Einführung in ORDB Aufgaben:

1) Säumige Kunden werden mit einem Sperrfeld in der Datenbank markiert. Schreiben Sie ein Programm, das alle Kunden (Kundennummer, Name) zeilenweise ausgibt. Zu jedem Kunde wird eine Checkbox mit ange- geben. Ist bei einem Kunden das Attribut Sperre auf 1 gesetzt, so wird in der Checkbox das Häkchen auto- matisch gesetzt. Diese Sperren sollen jetzt interaktiv durch Klick auf die Checkboxen geändert werden können. Die Daten werden in die Datenbank übernommen, wenn der entsprechende Submit-Button geklickt wird. Schreiben Sie dieses Programm.

2) Das Programm auswahlfeld.php aus der Vorlesung ist verwirrend. Werden aus den Combo-Boxen Kunde und Artikel ausgewählt, so werden die gewünschten Angaben zwar angezeigt, in den Combo-Boxen werden aber sofort wieder die alten Werte eingesetzt. Wünschenswert wäre, dass die zuletzt ausgewählten Werte weiter angezeigt werden. Ergänzen Sie dieses Programm entsprechend.

3) Erstellen Sie das Programm select.php für das datenbankunabhängige Programmieren. Ergänzen Sie hierzu auch die Klasse DB in der Datei db_modul.inc durch die hier benötigten Datenbankzugriffsfunktionen, und zwar für Oracle, ODBC und MySQL.

4) Schreiben Sie zwei Internet-Anwendungen: Die 1. Anwendung setzt das Sperrfeld von Kunde 1 und 2 der Relation Kunde auf den Wert 0, und zwar in dieser Reihenfolge. Die 2. Anwendung setzt bei Kunde 2 und dann bei Kunde 1 (!) das Sperrfeld auf den Wert 1! Bei fast gleichzeitigem Start dieser beiden Anwendungen können Deadlocks auftreten.

Überprüfen Sie auf Deadlocks. Lösen Sie gegebenenfalls Deadlocks auf (Rollback und Neustart). Überprü- fen Sie bei allen (!!!) Zugriffen auf die Datenbank auf Fehlermeldungen ohne Verwendung der Funktion die.

5) In der Radl-Datenbank existiert die Relation Kunde, in der Kundendaten aufgelistet sind. Es fehlen jedoch Einträge zum Speichern von Telefonnummer und Email-Adressen. Da Kunden häufig mehrere Telefon- nummern und Email-Adressen besitzen, sollen ab sofort bis zu 5 Nummern und Adressen abgelegt werden können. Wenn schon die Relation Kunde geändert werden soll, so wird auch die Adresse des Kunden in dem aus der Vorlesung bekannten Objekttyp TAdresse abgelegt. Schreiben Sie die Befehle zum Erzeugen der Relation KundeNeu mit den neuen Objekttypen TAdresse, TTelnr und TEmail und den obigen Bedingungen.

Der Objekttyp TAdresse darf als gegeben vorausgesetzt werden. KundeNeu enthält ansonsten alle bisherigen Attribute der Relation Kunde. Schreiben Sie einen SQL3-Befehl, der alle Daten der Relation Kunde in die neue Relation KundeNeu übernimmt. Schreiben Sie weiter einen SQL3-Befehl, der zum Kunden mit der Kundennummer 3 die Telefonnummern 93333, 93334 und 93335 einfügt, ebenso die Emailadressen info@ich.de und email@ich.de.

6) Stellen wir uns die Radl-Datenbank als die Datenbank einer großen Import-/Export-Firma vor mit Groß- abnehmern als Kunden. Jeder einzelne Auftrag wird hier in der Regel von mehreren Mitarbeitern (z.B.

Angebot, Kauf, Versand) betreut. Die m zu 1 Beziehung zwischen den Relationen Auftrag und Personal wird dann zu einer m zu n Beziehung. Wir bilden diese m zu n Beziehung nach, indem wir die Relation Personal in die Relation Auftrag geeignet einbetten. Schreiben Sie alle erforderlichen SQL3-Befehle zum Erzeugen dieser eingebetteten Relation AuftragNeu. Schreiben Sie einen Select-Befehl, der die Mitarbeiter- namen ausgibt, die den Auftrag 4 betreuen.

Hinweise:

zu Aufgabe 1: Die Anzahl der Kunden kann sich im Laufe der Zeit ändern. Die Checkboxen müssen also variabel, sprich als Feld angelegt werden! Wir müssen daher einen Feldnamen im Input-Tag übergeben (z.B. name="sperre[]"). Da man im Namen keinen Index setzen darf, muss zwecks Unterscheidung der vielen Checkboxen das Attribut value verwendet werden! Bei der Auswertung ist zu beachten, dass in das Feld nur die Werte der angeklickten Checkboxen weitergereicht werden.

zu Aufgabe 2: Diese Aufgabe ist nicht so wichtig, da nur PHP. Doch interessant ist sie trotzdem.

zu Aufgabe 3: Als Basis dient natürlich die Datei select.php aus der Vorlesung.

zu Aufgabe 4: Deadlocks lassen sich mit PHP nur mit Tricks provozieren. Bauen Sie daher zwischen den beiden Schreib- zugriffen auf die Datenbank eine Pause ein (z.B. flush; sleep(10); ). Geben Sie Deadlock-Meldungen auf Bildschirm aus!

Try-Catch-Blöcke können das Programmieren übersichtlich machen!

zu Aufgabe 6: Aus der Relation Personal übernehmen wir in der Einbettung nur die Attribute Name, Ort, Gehalt. Diese Einbettung erzeugt viel Redundanz, da Mitarbeiter mit ihren Eigenschaften in mehreren Einbettungen vorkommen können. Doch dies soll bei dieser Aufgabe nicht stören.

Referenzen

ÄHNLICHE DOKUMENTE

Hier kann man sich nicht nur jede Menge an Ideen für eine schöne Win- terdekoration holen, hier gibt es jede Menge zum Mitnehmen und sich zuhause darüber zu freuen. Dazu gehört

Die Politik ist offensichtlich nicht bereit, dieses Engagement anzuerkennen. Das ist sehr scha- de. Ein Testgesetz würde nicht mehr Schutz, sondern mehr Bü- rokratie, mehr

Gefahren für Kinder und Personen mit verringerten physischen, sensorischen oder mentalen Fähigkeiten (beispielsweise teilweise Behinderte, ältere Perso- nen mit

Dieses Verfahren wäre nicht nötig, wenn das Jobcenter dem Leistungsberechtigten bei Ar- beitsaufnahme mitteilen würde, dass der für den ersten Monat erhaltene Lohn auf das

Ihr Kunde wird das Mitgeben einer Tubenentleerungshilfe oder von Fingerlingen bei Re- zepturen für den Analbereich genauso wertschätzen wie einen Hinweis auf mögliche Verfär-

Und Fehlanzeige gilt im wahrsten Sinne des Wortes auch für an- dere Möglichkeiten heraus- zufinden, wo denn das Res- taurant zu finden ist – keine Telefonnummer, keine Inter-

Auch die konsequente Zugabe von Produktproben, kleinen Abgabeartikeln oder einer Kun- denzeitschrift zu grundsätzlich jedem Kauf wird zu einem Kun- denbindungsprogramm, wenn es

Am Ministerium für Arbeit und Soziales wird ein Fonds eingerichtet, mit dem Maßnah- men gefördert werden sollen, welche “die Anerkennung des sozialen und wirtschaftli- chen