Teil 1: Datenbanken

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 14 und 15 sowie die 6. Großübung.
1)
Datenbanksysteme: ERM (Entity-Relationship-Modell)
(Aufgabe aus der Klausur zur LV „Grundlagen der Informatik“ vom 12.09.05, 2/2 SWS)
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 deshalb selbst, ob Sie die MySQL auf Ihrem PC/Laptop installieren.
Sie benötigen dazu die MySQL-Server-Software, die bereits einen einfachen ASCII-Client enthält. Zu
empfehlen ist allerdings ein komfortablerer graphischer Client wie die kostenlose MySQL Workbench,
die auch in der Übung benutzt wird.
Über den Link http://www.mysql.de/downloads kann man die kostenlosen Installationsfiles laden.
Zur Zeit handelt es sich um folgende Versionen:
- MySQL Community Server, V. 5.5.19
(Name des Installationsfiles: mysql-5.5.19-win32.msi)
- MySQL-Client:
MySQL Workbench, V. 5.2.37
(mysql-workbench-gpl-5.2.37-win32.msi)
(Die Workbench benötigt die Software Microsoft .Net Framework 4 Client Profile. Sollte diese auf
dem PC fehlen, so kann man sie kostenlos bei Microsoft herunterladen.)
1
0112
- Einführung zur Aufgabe: Die drei Relationen (Tabellen) der Datenbank personal
Gegeben sei die (auch in der 6. Großübung behandelte) Datenbank personal, deren Entity-RelationshipDiagramm (ERD) im Poolübungsverzeichnis im File DB_personal_ERD.doc dargestellt wird.
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;
---------------------------------------------------------------------------------------------------------------------
- Arbeit mit dem MySQL-Client MySQL Workbench
/ Vorbereitung der Arbeit mit der Datenbank personal
Vor der Bearbeitung der Aufgaben 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.
Um Anfragen (Queries) an SQL-Datenbanken zu richten, müssen im PC-Pool folgende
Schritte abgearbeitet werden:
1)
2)
3)
Der MySQL-Server muss laufen.
MySQL-Client MySQL Workbench starten
SQL-Anweisungen in den SQL-Editor der MySQL Workbench eingeben und abarbeiten
Im Folgenden werden diese Schritte erklärt.
zu 1)
Hinweis zum MySQL-Server
Der MySQL-Server wurde in den PC-Pools auf allen lokalen PC’s (localhost oder 127.0.0.1) installiert.
Der MySQL-Server wird automatisch beim Start des Betriebssystems gestartet.
(Sollte der MySQL-Server doch einmal abstürzen, ist der PC neu zu starten.)
zu 2)
Starten des grafischen Clients MySQL Workbench
Die MySQL Workbench wird in den Pools gestartet über:
Start/All Programs/MySQL/MySQL Workbench 5.2 CE
2
0112
Es öffnet sich ein Fenster mit drei Teilen. In der Poolübung wird nur mit dem linken Fensterteil
„SQL Development“ gearbeitet.
Zunächst ist das Kommando Open Connection to Start Querying unter „SQL Development“
auszulösen.
In das sich öffnende Fenster ist Folgendes einzutragen:
Dann (zunächst ohne Passwort-Eingabe):
OK
In einem weiteren Fenster wird nun die Eingabe des Passworts (stud45) verlangt.
Es öffnet sich der SQL Editor.
Etwas einfacher kann auch (statt des Kommandos Open Connection to Start Querying) die vordefinierte
Local Instance MySQL (für: User student; Host: 127.0.0.1.; Port: 3306; Schema: personal) ausgelöst
werden. Im sich öffnenden Fenster ist hier nur noch das Passwort (stud45) einzugeben.
(Hinweis: Wird unter Hostname 127.0.0.1 (oder auch localhost) eingetragen, so wendet sich der Client
MySQL Workbench an den MySQL Server auf dem lokalen Rechner. Wenn man stattdessen im RAM2119 z.B. r12 bzw. im KKB-2097 z.B. k12 eintragen würde, könnte man den (entfernten) MySQLServer auf dem PC r12 bzw. k12 nutzen. Dazu muss natürlich auf diesem PC der Server laufen.)
In der Icon-Toolbar des SQL-Editors sollte im Icon mit einem Ausrufungszeichen in einem roten
Dreieck ein grüner Pfeil nach unten zu sehen sein. (Klicken Sie auf dieses Icon, bis der grüne Pfeil
nach unten erscheint.)
3
0112
Zum Beginn der Arbeit mit der Datenbank personal ist das SQL-Script personal.sql zu öffnen
und abzuarbeiten, um die Datenbank personal in den Ausgangszustand zu bringen. Dazu ist im
SQL Editor das Kommando File/Open SQL Script ... auszuführen. Im sich öffnenden Fenster ist
das SQL-Script personal.sql aus dem Übungsverzeichnis auszuwählen (OK).
Anschließend ist dieses SQL-Script durch Klicken auf den linken gelben Pfeil in der Icon-Toolbar
(Execute SQL Script in Connected Server) abzuarbeiten.
Bemerkung: Da die Zeit in der Poolübung nicht ausreicht, um die Tabellen von personal selbst durch
Einzelkommandos aufzubauen (siehe Vorlesung), führen wir das eben geöffnete SQKL-Script 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).
Wenn man die Datenbank personal verändert hat und zum Ausgangszustand zurückkehren
möchte, ist dieses Vorgehen zu wiederholen.
Nun können SQL-Anweisungen in das SQL Query Panel Query1 (unter dem Script) eingegeben
werden. Man kann auch ein neues SQL Query Panel Query2 öffnen durch Anklicken des ersten (linken)
Icons in der Icon-Toolbar (Create a new Scratch Area for executing queries).
zu 3)
Zur Auswahl einer Datenbank und zur Eingabe von SQL-Anweisungen
In der Regel werden mehrere Datenbanken auf einem Server verwaltet. Deshalb muss zuerst stets die
konkrete Datenbank (Standardschema bzw. default schema) spezifiziert werden, mit der man arbeiten
will. Wir haben dies bereits beim Aufruf der MySQL Workbench getan (siehe „zu 2)“).
Das entsprechende SQL-Kommando lautet:
use <database name>;
z.B.:
use personal;
Die SQL-Anweisungen werden in ein SQL Query Panel Query<Nr.> eingegeben.
4
0112
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. Jedes SQLKommando ist mit einem Semikolon „;“ abzuschließen.
Zur Ausführung einer SQL-Anweisung muss der Kursor irgendwo im SQL-Anweisungstext oder auch
hinter dem abschließenden Semikolon stehen (aber nicht in einer Leerzeile nach der Anweisung).
Eine SQL-Anweisung wird ausgeführt durch:
Strg-ENTER
oder Schalter „Execute Current SQL Statement in Connected Server“anklicken
(mittlerer gelber Blitz mit „I“ in der Toolbar)
oder Query/Execute Current Statement
Jedes vorher eingegeben Kommando kann auf diese Weise wiederholt ausgeführt werden.
Der Client sendet das Kommando zur Ausführung an den Server und zeigt danach das vom
Server erhaltene Resultat im Query<Nr.>Result-Fenster (unteres rechtes Fenster des
SQL-Editors) an (Client-Server-System).
Im Output-Fenster werden die ausgeführten Aktionen aufgelistet und unter „Messages“ auch Fehlermeldungen ausgegeben. Durch Klicken mit der rechten Maustaste in den Fensterteil Object Browser
und Auslösen des Menü-Kommandos „Refresh all“ kann der Inhalt das Object Browsers aktualisiert
werden.
Aus Übungsgründen sollen in der Poolübung die SQL-Kommandos nicht durch Klicken von
Schaltern zusammengestellt, sondern selbst mit der Tastatur in den SQL Query Panel eingegeben
werden. Das ist auch die beste Vorbereitung für die Klausur.
-----------------------------------
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.
5
0112
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, deren Gehalt in die Gehaltsstufe 5 fällt.
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)
Für alle Beschäftigten mit weniger als 3000,- Gehalt soll das Gehalt um 20% erhöht werden.
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.
--------------------------------------------
Teil 2:
HTML
3)
Vollständiger HTML-Quelltext (Klausuraufgabe)
Grundlage dieser Aufgabe ist das Vorlesungsskript Informatik17-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
Start/All Programs/Accessories/Notepad.
Windows-ASCII-Editor
Notepad
über
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 (bei Firefox über
New Tab/Open File…) oder klicken Sie im Windows-Explorer doppelt auf die html-Filezeichnung (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.)
6
0112
Aufgabe zu HTML:
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.
7
0112
Herunterladen