Teil 1: Datenbanken - TU Bergakademie Freiberg

Werbung
TU Bergakademie Freiberg
Institut für Informatik
Modul „Einführung in die Informatik“
Poolübung
7. Pool-Übung zum Modul „Einführung in die Informatik“
- Aufgaben Thema:
Datenbankentwurf, SQL; HTML
Teil 1: Datenbanken
Grundlagen für die Aufgaben 1 und 2 bilden die Vorlesungsskripte 16 und 17 sowie die 6. Großübung.
1)
Datenbanksysteme:
ERM (Entity-Relationship-Modell)
(Aufgabe aus der Klausur zur LV „Grundlagen der Informatik“ vom 12.09.05)
Gegeben sei eine Datenbank E-Bookshop mit den folgenden Tabellen Kunde, bestellt und Buch:
Kunde (KNr, Name, Vorname, Adresse, TelNr)
KNr: Kundennummer (Primärschlüssel), TelNr: Telefonnummer
Buch (ISBN, Titel, Autor, Verlagsbezeichnung, Preis, Anzahl)
ISBN: Internationale Standardbuchnummer (Primärschlüssel),
Anzahl: Anzahl der vorrätigen Bücher zur jeweiligen ISBN im Lagerbestand
bestellt (KNr, ISBN, Bestelldatum, Lieferdatum, Stueck)
KNr, ISBN: Primärschlüssel und gleichzeitig Fremdschlüssel - siehe oben,
Stueck: Anzahl je Bestellung
Aufgabe: Zeichnen Sie für die oben aufgeführte Datenbank für einen E-Bookshop ein ERMDiagramm (einschließlich der Attribute); ERM … Entity-Relationship-Modell.
Benutzen Sie dazu die Methodik und die Symbole aus der Vorlesung. Fremdschlüssel sollen in
Relationshipsets nicht aufgeführt werden.
(Hinweis: Vergessen Sie nicht die Zuordnungscharakteristika.)
--------------------------------------------------------------------------------------------------------------------------
2)
Datenbanksysteme:
Arbeit mit SQL ( Structured Query Language )
- Hinweise zur Installation von MySQL auf dem privaten PC/Laptop
Die MySQL-Datenbank ist Freeware. Allerdings ist die MySQL-Software viel umfangreicher als die
Python-Software. Entscheiden Sie selbst, ob Sie die Software auf Ihren PC/Laptop installieren.
Sie benötigen dazu die MySQL-Server-Software, die einen ASCII-Client enthält. Zu empfehlen ist
außerdem der komfortablere graphische Client MySQL Query Browser 1.2, der auch in der Übung benutzt wird.
Die erforderlichen Installationsfiles sind unter folgenden WWW-Adressen zu finden:
- MySQL Community Server 5.1: http://dev.mysql.com/downloads/mysql/5.1.html
- MySQL GUI Tools:
http://dev.mysql.com/downloads/gui-tools/5.0.html
Die MySQL GUI Tools enthalten:
-- MySQL Query Browser 1.2
(Graphischer MySQL-Client)
-- MySQL Administrator 1.2
-- MySQL Migration Toolkit 1.1
- Einführung zur Aufgabe: Die drei Relationen (Tabellen) der Datenbank personal
Gegeben sei die (aus der 6. Großübung bekannte) Datenbank personal, deren Entity-RelationshipDiagramm (ERD) im Poolübungsverzeichnis im File DB_personal_ERD.doc dargestellt wird.
1
0109
Nach der Überführung des ERD ins Relationale Datenmodell (RDM) besteht die Datenbank personal
aus den drei Relationen (Tabellen) besch, abt und gehstufe. Diese drei Relationen werden im Folgenden
in der Form Relationsname(Attributname_1, Attributname_2, ...) erläutert (Primärschlüssel sind dabei
unterstrichen):
besch(bnr, name, taet, ltr, e_datum, geh, zuschl, abtnr)
- Erläuterung der Relations- bzw. Attributnamen:
besch ...
Beschäftigte;
bnr ...
Beschäftigtennummer;
name ...
Name;
taet ...
Tätigkeit;
ltr ...
Beschäftigtennummer des Leiters; e_datum ... Einstellungsdatum;
geh ...
Gehalt;
zuschl ...
Zuschlag zum Gehalt;
abtnr ...
Abteilungsnummer der Abteilung, zu der der Beschäftigte gehört;
abt(abtnr, abtname, ort)
- Erläuterung der Relations- bzw. Attributnamen:
abt ...
Abteilungen;
abtnr ...
abtname ...
Abteilungsname;
ort ...
Abteilungsnummer;
Ort;
gehstufe(stufe, von, bis)
- Erläuterung der Relations- bzw. Attributnamen:
gehstufe ...
Gehaltsstufen;
stufe ...
Gehaltsstufe;
von ...
Die Gehaltsstufe beginnt bei diesem Gehaltsbetrag;
bis ...
Die Gehaltsstufe endet bei diesem Gehaltsbetrag;
---------------------------------------------------------------------------------------------------------------------
Vorbereitung der Arbeit mit der Datenbank personal
Ehe Sie die Arbeit mit MySQL im Pool beginnen, sollten Sie stets die (für den Pool geschriebene)
Kommandoprozedur Start/All Programs/MySQL/Daten zu MySQL einrichten ausführen. Dadurch
wird der MySQL-Server neu gestartet und in den originären Zustand gebracht.
Vor der Bearbeitung der Aufgabe sollten Sie das aus der 6. Großübung bekannte MySQL-Skript
(MySQL-Kommandoprozedur) personal.sql aus dem Verzeichnis der 7. Poolübung in Ihr Arbeitsverzeichnis kopieren.
a)
Starten des grafischen MySQL-Clients MySQL Query Browser
- Hinweis: Der MySQL-Server wurde im Pool auf dem lokalen PC installiert („localhost“).
Es gibt verschiedene Clients für MySQL, z.B. den mit dem Server mitgelieferten einfachen
MySQL Command Line Client (ASCII-Oberfläche). Wir wollen in der Übung aber mit dem oben erwähnten komfortableren grafischen MySQL Query Browser arbeiten.
Starten Sie nun den MySQL Query Browser über Start/All Programs/MySQL/MySQL Query Browser.
Geben Sie in das sich öffnende Fenster ein:
---------------------------------------------------------------------------------------------------------Gesp. Verbindungen: <hier nichts eintragen>
Server Host:
localhost
Port:
3306
Nutzername:
student
<wird in der Übung bekanntgegeben>
Passwort:
Standardschema:
personal
---------------------------------------------------------------------------------------------------------Dann:
OK
(Hinweis: Falls man für Server Host statt localhost z.B. lab12 eintragen würde, könnte man den (entfernten)
MySQL-Server auf diesem PC nutzen. Dazu muss natürlich der Server auf diesem PC laufen.)
2
0109
Die Gestalt der Oberfläche des MySQL Query Browser kann, wie bei Windows-Programmen allgemein üblich, über das Menü Ansicht modifiziert werden. Über Ansicht/Abfrageeditor maximieren kann
das entsprechende Feld vergrößert bzw. (bei nochmaligem Anklicken) verkleinert werden. Die rechts
befindliche Sidebar sollte über Ansicht/Sidebar zugeschaltet sein.
b)
Aufbau der Tabellen der Datenbank personal
Bauen Sie dann die für die Übung benötigten drei Tabellen der Datenbank personal durch Ausführung
der bereits genannten SQL-Kommandoprozedur personal.sql in folgender Weise auf:
(1) Skript personal.sql im Fenster des MySQL Query Browser öffnen:
:
Datei/Skript öffnen ...
- personal.sql aus dem Arbeitsverzeichnis auswählen
Dann:
Open
unter dem Tabulator Script 1 wird jetzt die Kommandoprozedur angezeigt
Bemerkung: Da die Zeit in der Poolübung nicht ausreicht, um die Tabellen von personal selbst durch
Einzelkommandos aufzubauen (siehe Vorlesung), führen wir unter (2) die eben geöffnete Kommandoprozedur aus. Studieren Sie vorher unbedingt den Inhalt von personal.sql, vor allem die Kommandos
CREATE DATABASE ..., CREATE TABLE ... und INSERT INTO ... (siehe dazu auch 6. Großübung).
(2) Script ausführen:
Skript/Ausführen
rechts ist jetzt unter dem Tabulator Schemata die Datenbank (Schema) personal zu sehen
Achtung: Wenn Sie nach Veränderungen an der Datenbank personal (z.B. Löschen von Tabellen) wieder den originären Zustand der Datenbank herstellen wollen, ist erneut das Skript
personal.sql auszuführen (wie oben beschrieben).
(Durch Klicken auf den Tabulator Script 1 kann man zur Kommandoprozedur personal.sql zurückkehren.)
c)
Hinweise zur Auswahl einer Datenbank und zur Eingabe der SQL-Kommandos
Zuerst muss man stets die konkrete Datenbank (Standardschema bzw. default schema) spezifizieren, mit
der man arbeiten will. Wir haben dies bereits beim Aufruf des MySQL Query Browser getan (siehe a) ).
Das entsprechende SQL-Kommando lautet:
use <database name>
z.B.: use personal
Um nun SQL-Kommandos eingeben zu können, aktiviert man im Fenster des MySQL Query Browser
den Tabulator Ergebnismenge 1. Die SQL-Kommandos werden in den SQLAbfragebereich eingegeben.
Groß- und Kleinschreibung ist nicht signifikant. Zeichenkettenkonstanten sind in einfache oder doppelte
Anführungszeichen zu setzen: 'Freiberg' oder "Freiberg". Überall, wo ein Leerzeichen
steht, kann auch ein Zeilenwechsel eingefügt werden. Das SQL-Kommando ist mit einem Semikolon
„;“ abzuschließen.
Zur Ausführung des Kommandos muss der Kursor irgendwo im Kommandotext oder auch hinter dem
abschließenden Semikolon stehen (aber nicht in einer Leerzeile nach dem Kommando).
Ein Kommando wird ausgeführt durch:
Strg-ENTER
oder
auf Schalter „Abfrage ausführen“ (Blitz) klicken
oder
Abfrage/Ausführen
Der Client sendet das Kommando zur Ausführung an den Server und zeigt danach das vom Server erhaltene Resultat an.
Jedes vorher eingegeben Kommando kann auf diese Weise wiederholt ausgeführt werden.
In der unteren Leiste des MySQL Query Browser-Fensters sind Kommentierungen der Kommandoausführung bzw. Fehlermeldungen zu sehen.
3
0109
Aus Übungsgründen wollen wir die SQL-Kommandos nicht durch Klicken von Schaltern zusammenstellen, sondern selbst mit der Tastatur in den Abfragebereich eingeben.
-----------------------------------
Aufgaben zu SQL:
- Lassen Sie sich zunächst
vollständig ausgeben:
SELECT * FROM
SELECT * FROM
SELECT * FROM
die drei Tabellen von PERSONAL mit den folgenden SQL-Anweisungen
besch;
abt;
gehstufe;
- Lassen Sie sich dann die Beschreibungen (description) der Tabellen ausgeben:
DESC besch;
DESC abt;
DESC gehstufe;
Lösen Sie die folgenden Aufgaben jeweils mit nur einer SQL-Anweisung
(alle Aufgaben beziehen sich auf die oben erläuterte Datenbank PERSONAL):
a)
Geben Sie für alle Beschäftigten Abteilungsnummer, Name und Gehalt aus, und zwar die
Spalten in der soeben aufgeführten Reihenfolge.
b)
Geben Sie für alle Beschäftigten all ihre Daten absteigend sortiert nach den
Abteilungsnummern und innerhalb der Abteilungen aufsteigend sortiert nach den Namen der
Beschäftigten aus.
c)
Geben Sie Namen, Gehalt und Tätigkeit aller Beschäftigten aus, die mehr als 5000,- verdienen.
d)
Wie heißt der Ort der Abteilung, in der Blasche arbeitet?
Lösen Sie diese Aufgabe in zwei Varianten:
d1)
mit einem Join (Equi-Join)
d2)
mit einer geschachtelten Anfrage
e)
Geben Sie alle Tätigkeiten aus, aber jede Tätigkeit nur einmal.
f)
Geben Sie die Namen aller Beschäftigten aus, die die Gehaltsstufe 5 haben.
g)
Ermitteln Sie die Anzahl aller Beschäftigten. Es soll nur eine Zahl ausgegeben werden.
h)
Geben Sie für jede
Durchschnittsgehalt aus.
i)
Es wird eine neue Abteilung in Paris mit dem Namen Entwurf eingerichtet, die die
Abteilungsnummer 50 erhält. Tragen Sie dies in die Datenbank ein.
j)
Erhöhen Sie für alle Beschäftigten, die weniger als 3000,- verdienen, das Gehalt um 20%.
k)
Löschen Sie die Abteilung mit der Abteilungsnummer 50.
l)
Löschen Sie die Tabelle abt einschließlich der Tabellenbeschreibung.
Abteilungsnummer
das
maximale,
das
minimale
und
das
Achtung: Wie man den originären Zustand der Datenbank wieder herstellen kann, wurde oben
beschrieben.
-------------------------------------------4
0109
Teil 2: HTML
3)
Vollständiger HTML-Quelltext
(falls Zeit nicht reicht: Hausaufgabe)
Grundlage dieser Aufgabe ist das Vorlesungsskript Informatik18-Internet.pdf.
Das bekannteste HTML-Tutorium (SelfHTML) findet man unter http://de.selfhtml.org/ (Kurzreferenz
zu HTML: http://de.selfhtml.org/navigation/html.htm ). Eine sehr einfache und kurze Einführung bringt
Kurze Hinweise zur Syntax von HTML.pdf im bekannten Verzeichnis der 7. Poolübung.
Vorbereitung:
- Kopieren Sie zunächst die beiden Grafiken cat_anim.gif und everest.jpg aus dem Verzeichnis der
7.Poolübung in Ihr Arbeitsverzeichnis, in das Sie später auch den HTML-Quelltext speichern wollen
(„aktuelles Verzeichnis“).
Öffnen
Sie
dann
den
bekannten
Windows-ASCII-Editor
Notepad
über
Start/All Programs/Accessories/Notepad.
Geben Sie nun Ihren HTML-Quelltext mit diesem Editor ein, und speichern Sie den HTML-Quelltext
im oben genannten aktuellen Verzeichnis unter einem beliebigen Namen und unbedingt mit dem Typ
html (bzw. htm), d.h. zum Beispiel unter der Bezeichnung beispiel.html .
- Öffnen Sie dann dieses html-File von einem beliebigen WWW-Browser aus (über File/Open…) oder
klicken Sie im Windows-Explorer doppelt auf die html-Filebezeichnung (in diesem Fall wird das
HTML-Dokument mit dem Standard-WWW-Browser geöffnet).
(Bemerkung: Wie wollen hier nicht mit speziellen HTML-Entwicklungs-Werkzeugen arbeiten.)
---------------------Aufgabe: Schreiben Sie einen vollständigen HTML-Quelltext, den ein WWW-Browser in folgender
Weise interpretiert (siehe dazu Vorlesung):
Hinweise:
Text in Titelleiste
Überschrift (Header) der Größe 1
fetter Text
HTML-Liste
Horizontale Trennlinie (Ruler)
Hyperlink auf Homepage der TU BAF
Einbinden des Bildes cat_anim.gif
aus dem aktuellen Verzeichnis
in das Browser-Fenster
kursiver Text
Hyperlink auf das Bild everest.jpg
im aktuellen Verzeichnis
Beachten Sie generell Zeilenumbrüche und speziell, dass vor dem Bild zusätzlich eine Leerzeile eingefügt wurde. Fügen Sie mindestens einen Kommentar in den Quelltext ein.
5
0109
Herunterladen