Informationssysteme-Anhang

Aus Debacher-Wiki
Zur Navigation springenZur Suche springen

Der vorliegende Text gliedert sich in folgende Teile:

I. Datenschutz

II. Projektmanagement

III. Modellbildung

IV. PHP

V. MySQL

VI. Einbindung von MySQL in PHP

VII. Erweiterte Möglichkeiten in MySQL

VIII. Beispielaufgaben

IX. Anhang


IX. Anhang

Anhang A: Client-Programme für MySQL

Der folgende Text ist vor allem für Administratoren notwendig, die Datenbanken einrichten und die Zugriffsrechte der Benutzer regeln müssen. Der normale Anwender benötigt diese Tools nicht.

Die eigentliche MySQL-Datenbank ist ein Server-Programm, das ständig im Hintergrund läuft. Zur Nutzung der Datenbank benötigt man Client-Programme, entweder die mitgelieferten Program­me für die lokale Nutzung oder ein Programm wie phpMyAdmin.

1.Das Frontend mysql

Der Befehl kennt noch den Parameter -u, über den ein Benutzername übermittelt werden kann. Nach der Installation ist nur der Benutzer root eingetragen. Ist man unter Linux auch als root angemeldet, so wird der Benutzername automatisch übernommen, ansonsten muss man das Programm folgender­maßen aufrufen:

/usr/bin/mysql datenbankname -u root

Nach der Installation ist für den Benutzer root kein Passwort gesetzt, sollte man danach gefragt wer­den, so langt eine leere Eingabe. Mit diesem Programm kann man alle Funktionen der Datenbank nutzen, die im Abschnitt 3. beschrie­ben sind.

2.Das Administrationsprogramm mysqladmin

Dieses Programm dient dazu die Datenbanken zu steuern. Die meistbenutzten Funktionen hierbei sind die zum Anlegen und Löschen von Datenbanken.

Eine neue Datenbank wird angelegt mittels:

 /usr/bin/mysqladmin create datenbankname

Als normaler Benutzer hat man auf diesen Befehl keinen Zugriff, insofern wird man anfangs den Be­nutzernamen root mit angeben müssen:

 /usr/bin/mysqladmin create datenbankname -u root

Löschen kann man eine Datenbank mit:

 /usr/bin/mysqladmin drop datenbankname

bzw. der vollständigeren Version

 /usr/bin/mysqladmin create datenbankname -u root

Nach einer Sicherheitsabfrage wird dann die komplette Datenbank mit allen enthaltenen Tabellen ge­löscht.

In einem der nächsten Abschnitte wollen wir die Zugriffs-Rechte bearbeiten. Nach einer Änderung an den entsprechenden Tabellen (grant tables) muss man die Datenbank entweder neu starten mit:

  /sbin/init.d/mysql restart

oder über das Administrationsprogramm mit

 /usr/bin/mysqladmin reload -u root

die entsprechenden Tabellen neu laden.

3.Ausgaben mit mysqlshow

Dieses Programm verhält sich je nach Aufruf recht unterschiedlich. Ruft man es ohne weitere Para­meter auf:

 /usr/bin/mysqlshow

so zeigt es eine Liste aller angelegten Datenbanken.

+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+

Gibt man beim Aufruf einen Datenbanknamen mit an, so erhält man eine Liste aller Tabellen dieser Datenbank.

Database: mysql
+--------------+
|    Tables    |
+--------------+
| columns_priv |
| db           |
| func         |
| host         |
| tables_priv  |
| user         |
+--------------+

Sollte der Zugriff abgelehnt werden, nach der Installation darf diese Abfrage nur root stellen, so muss wieder der Parameter -u angegeben werden

 /usr/bin/mysqlshow mysql -u root

Gibt man zusätzlich zum Datenbanknamen auch eine Tabelle mit an

 /usr/bin/mysqlshow mysql db -u root

so erhält man die Definition dieser Tabelle als Ausgabe.

Database: mysql  Table: db  Rows: 7
+-----------------+---------------+------+-----+---------+-------+
| Field           | Type          | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------+
| Host            | char(60)      |      | PRI |         |       |
| Db              | char(32)      |      | PRI |         |       |
| User            | char(16)      |      | PRI |         |       |
| Select_priv     | enum('N','Y') |      |     | N       |       |
| Insert_priv     | enum('N','Y') |      |     | N       |       |
| Update_priv     | enum('N','Y') |      |     | N       |       |
| Delete_priv     | enum('N','Y') |      |     | N       |       |
| Create_priv     | enum('N','Y') |      |     | N       |       |
| Drop_priv       | enum('N','Y') |      |     | N       |       |
| Grant_priv      | enum('N','Y') |      |     | N       |       |
| References_priv | enum('N','Y') |      |     | N       |       |
| Index_priv      | enum('N','Y') |      |     | N       |       |
| Alter_priv      | enum('N','Y') |      |     | N       |       |
+-----------------+---------------+------+-----+---------+-------+

4.Ausgabe von Tabelleninhalten mit mysqldump

Mit dem zuletzt angesprochenen Befehl kann man abfragen, welche Tabellen in einer Datenbank vor­handen sind und wie sie definiert sind. Will man auch die Inhalte der Tabellen sehen, so greift man zu

 /usr/bin/mysqldump mysql db -u root

und erhält als Ausgabe die Definition der Tabelle und die Inhalte. Gibt man keine Tabelle an, so er­hält man die Ausgabe für alle Tabellen.

# MySQL dump 5.13
#
# Host: localhost    Database: mysql
#--------------------------------------------------------
# Server version        3.22.21

#
# Table structure for table 'db'
#
CREATE TABLE db (
 Host char(60) DEFAULT  NOT NULL,
 Db char(32) DEFAULT  NOT NULL,
 User char(16) DEFAULT  NOT NULL,
 Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 References_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 PRIMARY KEY (Host,Db,User),
 KEY User (User)
);

#
# Dumping data for table 'db'
#

INSERT INTO db VALUES ('%','test',,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO db VALUES ('%','test\\_%',,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Leitet man die Ausgabe in eine Datei um, so kann man diese als Sicherungskopie verwenden oder da­mit die Datenbank auf einen anderen Rechner kopieren, da alle Zeilen wie bei der Eingabe aufge­baut sind.

5.Die Rechteverwaltung in mySQL

Die Datenbank mySQL verfügt über ein recht ausgefeiltes Berechtigungssystem, das am Anfang oft Probleme bereitet. Seine Benutzerverwaltung ist nahezu unabhängig von der des Linux-Systems. Nach der Installation hat nur der Benutzer „root“ Zugriff auf die Datenbank, ein Passwort ist nicht ge­setzt. Diese Rechteverwaltung arbeitet mit der Datenbank mysql, die bei der Installation angelegt wird. In­nerhalb dieser Datenbank sind vor allem die Tabellen wichtig:

db		die Datenbanken im System
host		die Rechner mit Rechten
user		die Benutzer

Für eine genaue Beschreibung dieser Tabellen sollte man in die mitgelieferte Dokumentation schau­en. Für den normalen Betrieb dürfte es langen die Rechte mit dem Tool mysql_setpermissions einzu­richten.

 /usr/bin/mysql_setpermission  -u root

Zunächst fragt das Programm nach dem Passwort, danach erscheint ein kleines Textmenü:

Password for user root to connect to MySQL: 
#####################################################################
## Welcome to the permission setter 1.2 for MySQL.
## made by Luuk de Boer
#####################################################################
What would you like to do:
 1. Set password for a user.
 2. Add a database + user privilege for that database.
    - user can do all except all admin functions
 3. Add user privilege for an existing database.
    - user can do all except all admin functions
 4. Add user privilege for an existing database.
    - user can do all except all admin functions + no create/drop
 5. Add user privilege for an existing database.
    - user can do only selects (no update/delete/insert etc.)
 0. exit this program
Make your choice [1,2,3,4,5,0]: 

Für das Anlegen einer neuen Datenbank mit entsprechenden Privilegien bietet sich der Menüpunkt 2 an. In dem Dialog sind Benutzereingaben fett hervorgehoben.

Which database would you like to add: kurs
The new database kurs will be created

What username is to be created: wwwrun
Username = wwwrun
Would you like to set a password for wwwrun [y/n]: n
We won't set a password so the user doesn't have to use it
We now need to know from what host(s) the user will connect.
Keep in mind that % means 'from any host' ...
The host please: localhost
Would you like to add another host [yes/no]: yes
Okay, give us the host please: %
Would you like to add another host [yes/no]: no
Okay we keep it with this ...
The following host(s) will be used: localhost,%.
#####################################################################
That was it ... here is an overview of what you gave to me:
The database name       : kurs
The username            : wwwrun
The host(s)             : localhost,%
#####################################################################

Are you pretty sure you would like to implement this [yes/no]: yes
Okay ... let's go then ..

WARNING WARNING SKIPPING CREATE FOR USER 'wwwrun' AND HOST localhost
Reason: entry already exists in the user table.
WARNING WARNING SKIPPING CREATE FOR USER 'wwwrun' AND HOST %
Reason: entry already exists in the user table.
Everything is inserted and mysql privileges have been reloaded.

Falls eine Fehlermeldungen wie im unteren Teil auftaucht, kann man sie getrost ignorieren. Sie tau­chen nur dann auch, wenn der Benutzer schon mit Rechten für eine andere Datenbank eingetragen ist.

Als erlaubter Host sollte immer localhost angegeben werden, sonst kann man nicht über den Webser­ver zugreifen. Soll auch ein Zugriff über einzelne Klienten möglich sein, eventuell über einen ODBC-Treiber und Access, so müssen alle Rechner angegeben werden, im einfachsten Fall über das Joker­zeichen %. Falls der Rechner eine ständige Internetverbindung besitzt, ist das Jokerzeichen ris­kant, dann sollte man die Rechner konkret angeben.

6.Bedienung über das Web mit GUI-Werkzeugen

Die Nutzung der mitgelieferten Client-Programme ist nicht ganz einfach. Der Hersteller von MySQL ist daher inzwischen auch dabei grafische Client-Programme zu entwickeln. Momentan gibt es zwei entsprechende Programme.

MySQLCC ist ein Tool das sowohl die Verwaltung der Datenbanken, als auch der Benutzer erlaubt.

Informationssysteme-mysqlcc1.png

Noch in der Entwicklungsphase ist das Programm MySQL-Administrator. Es sieht auf den ersten Blick sehr übersichtlich aus und wird wohl auf Dauer das Administrationstool für MySQL werden.

Informationssysteme-mysqlcc2.png

Da diese grafischen Client-Programme relativ neu sind, kann man sie bisher noch nicht bei vielen We­banbietern finden.


7.phpMyAdmin

Ein relativ universelles und weit verbreitetes Tool zur Administration von MySQL-Datenbanken ist das Programmpaket phpMyAdmin, das aus einer Sammlung von php-Scripten besteht.

Informationssysteme-myadmin1.png

Die Startseite des Programms warnt, dass für den Benutzer root kein Passwort gesetzt wurde, was ein Sicherheitsrisiko darstellt, da die Datenbank-Administration so frei zugänglich ist.

Der Funktionsumfang ist sehr hoch, daher wird hier hier nur eine Auswahl der verfügbaren Funktio­nen vorgestellt.

7.1. Datenbanken

Im linken Rahmen existiert eine Auswahlliste, über die man eine der vorhandenen Datenbanken aus­wählen kann. Im Hauptfenster sieht man dann die innerhalb dieser Datenbank vorhandenen Tabellen.

Informationssysteme-myadmin2.png

Klickt man im linken Rah­men auf eine der Tabell­en, so wer­den im Hauptfenster weitere In­formationen angezeigt. Klickt man dann auf den Rei­ter Anzeigen, so be­kommt man den Inhalt der Tabelle ange­zeigt.


Informationssysteme-myadmin3.png

Am Anfang eines jeden Datensatzes befindet sich dann auch ein Link zum Bearbeiten, so dass sogar einzelne Datensätze bequem editiert werden können.

7.2. Rechte

Über den Menüpunkt Rechte auf der Startseite von phpMyAdmin kommt man zu einer Seite, auf der alle ange­legten Benutzer aufge­führt sind. Man kann hier entwe­der neue Benutzer anlegen, Benut­zer löschen oder über den Link Bearbeiten ei­nen der vor­handenen Benutzer edi­tieren.

Informationssysteme-myadmin4.png

Im Formular zum Bearbeiten kann man dem jeweiligen Benutzer gene­relle Rechte erteilen und spe­zielle Rechte für einzelne Daten­banken.


Anhang B: Konfiguration von ODBC/JDBC-Datenquellen mit MySQL

Open DataBase Connectivity (kurz ODBC) ist eine Standard Datenbank-Zugriffs Methode, die von der Firma Mircosoft entwickelt wurde. Das Ziel ist es jeder Anwendung den Zugriff auf alle Daten zu ermöglichen, unabhängig davon, mit welchem Datenbanksystem die Daten verwaltet werden.

Dazu benötigt man einerseits die generelle ODBC-Unterstützung im Betriebssystem und andererseits einen speziellen ODBC-Treiber für das konkrete Datenbanksystem.

Die Datenbankkomponente von OpenOffice/StarOffice kann mit derartigen Datenquellen umgehen und daher auf nahezu beliebige Datenbanksysteme zugreifen.

Eine Alternative zu ODBC wäre übrigens das JDBC-System von SUN, welches auf Java aufsetzt. Speziell unter Windows ist aber ODBC stärker verbreitet.

1. Windows

Die aktuellen Windows-Varianten bringen alle die grundsätzliche Unterstützung für ODBC mit. Die zugehörigen Einstellungen finden sich in der Systemsteuerung bzw. deren Unterpunkt Verwaltung.

Informationssysteme-odbcw1.png

Damit steht allen Anwendungen, die auf Datenbanken zugreifen wollen, Grundsätzl­ich diese Funktion zur Verfü­gung. Für ein konkretes Datenbanksystem, im vorliegenden Zusammenhang MySQL, wird dann noch der spezifische Treiber be­nötigt, idealerweise vom Hersteller des Datenbanksystems. Für MySQL be­kommt man die entsprechende Datei z.B. unter http://www.mysql.de/downlo­ads/api-my­odbc.html. Es handelt sich um eine ausführbare .exe Datei, die nur gestartet werden muss.


Es folgen ein paar der üblichen Installati­ons-Dialoge, wichtige Entscheidungen sind aber bei der Installation nicht zu tref­fen.

Informationssysteme-odbcw2.png

Zur Konfiguration startet man dann die ODBC-Funktion in der Systemsteuerung, oder eventuell auch aus der Anwendung heraus, mit der man die Datenquelle nutzen möchte.

Bei der Installation des MySQL-Treiber hat das Installations-Programm bereits eine Datenquelle eingerichtet, diese erlaubt den Zugriff auf die Standard-Datenbank test.

Informationssysteme-odbcw3.png

Weitere Datenquellen sind üblicherweise nur vorhanden, wenn weitere Treiber oder entspre­chende Anwendungen installiert wurden.

Will man eine neue Datenquelle einrichten, so muss man auf Hinzufügen klicken, worauf eine Liste mit den zur Verfügung stehenden Treibern angeb­oten wird. Der soeben installierte MySQL-Treiber findet sich ziemlich am Ende dieser recht langen Liste.

Informationssysteme-odbcw4.png

Nach der Auswahl des Treiber klickt man auf Fertig stellen, worauf die eigentliche Konfigurat­ion des Treibers erfolgt.

Informationssysteme-odbcw5.png

Die Bezeichnung für die Quelle (Data Sour­ce Name) ist frei wählbar, sollte aber möglichst deut­lich sein.

Wichtig ist der Bereich Host/Servername (or IP), hier muss man den Rechner angeben, auf dem die Datenbank liegt. Falls es der gleiche Rechner ist, so kann man hier einfach local­host eintragen. Sollte es Probleme mit der Na­mensauflösung ge­ben, was bei Windows-Rechnern immer mal vor­kommt, so kann man hier auch IP-Adressen ange­ben. Für localh­ost wäre das z.B. 127.0.0.1. Bevor man die Konfiguration mittels OK beendet sollte man mit Test Data Source überprüfen, ob man wirklich Zugriff auf die angegebene Datenbank bekommt. Eine Meldung wie die ne­benstehende weist üblicher­weise auf ein Passwortpro­blem hin, die Datenbank hat auf alle Fälle reagiert


Informationssysteme-odbcw6.png

Wenn der Zugriff erfolgreich ist, dann be­kommt man ebenfalls eine entspre­chende Meldung.


Informationssysteme-odbcw7.png

Nach Abschluss der Konfiguration taucht die neue Datenquelle auch im Datenbankadministrator auf und steht damit zur Verfügung.


Informationssysteme-odbcw8.png


2.Linux

Aufgrund der weiten Verbreitung von ODBC im Windowsbereich haben sich Gruppen gebildet, die ODBC auch für Unix und damit auch für Linux zur Verfügung stellen.

Da die ODBC-Unterstützung nicht direkt zum Betriebssystem gehört muss man erst ein entsprechen­des Paket installieren, hier unixODBC. Anschließend benötigt man dann noch den passenden Treiber für das Datenbanksystem, wie unter Windows auch.

auf dem Rechner müssen folgende Pakete vorhanden sein:

unixODBC		(ODBC unter Linux)
MyODBC-unixODBC	(MySQL-Treiber für ODBC)
unixODBC-gui-qt	(Oberflächenprogramme für ODBC)

mysql			Die Datenbank
mysql-shared		
mysql-client		

bei den aktuellen SuSE-Versionen sind die Pakete alle vorhanden.

Dann eine Datei odbcinst.ini anlegen. Entweder unter /etc/odbcinst.ini oder unter /etc/unixODBC/odbcinst.ini, es muss an der jeweiligen Stelle bereits eine eventuell leere Datei ge­ben. Die Datei bekommt folgenden Inhalt:

[MySQL]
Description     = ODBC Treiber fuer MySQL
Driver          = /usr/lib/unixODBC/libmyodbc3.so
Setup           = /usr/lib/unixODBC/libodbcmyS.so.1
FileUsage       = 1
CPTimeout       =
CPReuse         =

Die Dateinamen können leicht abweichen, bei einigen Versionen liegen die Bibliotheken z.B. direkt im Verzeichnis /usr/lib und es gibt kein Unterverzeichnis unixODBC, auf 64-Bit Systemen muss man eventuell auch in /usr/lib64 suchen. Teilweise heißt die zweite Da­tei auch einfach libodbcmyS.so .

Damit ist der ODBC-Treiber systemweit vorhanden, das entspricht etwa der Installation des ODBC-Treiber unter Windows. Im zweiten Schritt geht es nun um die Konfiguration der Datenbankzugriffe. Die kann man zentral für alle Benutzer über die Datei odbci.ini erledigen. Auch diese Datei kann wieder direkt unter /etc liegen oder unter /etc/unixODBC.

[MySQL-test]
Description     = MySQL Datenbank test
Driver          = MySQL
Server          = localhost
Port            = 3306
Socket          =
Database        = test
Option          =
Stmt            =

Auf diese Art entsteht eine System-Datenquelle. Die gleichen Einstellungen kann jeder Benutzer auch individuell vornehmen, wenn er die entsprechenden Inhalte in der Datei .odbc.ini in seinem Homever­zeichnis ablegt, es entsteht dann eine User-Datenquelle. Zum Erstellen der Datei gibt es auch ein grafisches Werkzeug, nämlich ODBCConfig.

Informationssysteme-odbcl1.png

Informationssysteme-odbcl2.png

Im Startfenster von ODBCConfig kann man entweder eine vorhandene Datenquelle konfigurieren, oder eine neue Datenquelle hinzufügen. Auch die Systemdatenquellen kann man hier konfigurieren, braucht dann aber Schreibrechte für die globale Konfigurationsdatei.

Auch die Treiber kann man im Prinzip mit diesem Tool konfigurieren, sofern man Schreibrechte für die Datei odbcinst.ini besitzt.

Informationssysteme-odbcl3.png

Informationssysteme-odbcl4.png

Sehr nett gemacht ist der Menüpunkt About:

Informationssysteme-odbcl5.png

Hier findet sich eine recht ausführliche Be­schreibung des ODBC-Systems, erst ein­mal als Strukturdiagramm. Klick man auf einen der Knöpfe, so erhält man wei­tere Informationen.


Ein weiteres Grafisches Tool ist der Da­taManager.

Er zeigt alle vorhandenen Treiber und Daten­quellen in einer übersichtlichen Struktur an.

Informationssysteme-odbcl6.png

Für jeder der vorhandenen Datenquellen kann man sich die zugehörigen Tabellen anzeigen lassen, ggf. erst nach einer Anmeldung mit Be­nutzernamen und Passwort.

Für jede der Tabellen kann man sich dann auch noch die Struktur einblenden lassen.

Informationssysteme-odbcl7.png

Es ist durchaus sinnvoll den Zugriff auf eine Datenbank erst einmal mit diesem Tool zu testen, bevor man mit Anwendungsprogrammen, wie z.B. OpenOffice versucht auf die Daten zuzugreifen.

Wer grafische Werkzeuge verschmäht und lieber schnell mit der Textkonsole arbeitet, der findet in dem Programm isql ein geeignetes Testwerkzeug.

debacher@server:~> isql Terra-GyLoh user pass
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> quit

Wenn die Meldung Connected auftaucht, dann war der Verbindungsaufbau erfolgreich und es könn­ten SQL-Befehle an die Datenbank gerichtet werden.


3.Zugriff auf Datenquellen mit OpenOffice/StarOffice

Wenn man mit OpenOffice/StarOffice (im folgenden Text ist zur Vereinfachung immer nur von StarOffice die Rede) auf Datenquellen zugreifen möchte, dann spielt es dabei nahezu keine Rolle, ob man unter Linux arbeitet oder unter Windows. Wichtig ist immer nur, dass die entsprechende Daten­quelle verfügbar ist.

Man startet StarOffice mit einem neuen Text- oder Tabellendokument und öffnet dann über Ansicht -> Datenquellen oder kurz F4 die Datenquellen-An­sicht.

Informationssysteme-soff1.png

Falls noch nicht mit Daten­banken gearbeitet wurde, gibt es in dieser Ansicht nur eine einzige Datenquelle na­mens Biblio (in der Wind­ows-Ver­sion heisst die übri­gens Bi­bliography). Um weitere Datenquellen hinzufügen zu können klickt man mit der rechten Maus­taste in das Fenster, in dem die Datenquelle Biblio zu finden ist.

Es erscheint ein kleines Menü mit zwei Menüpunkten, hier wählt man Datenquellen verwalten... aus, worauf sich der entsprechende Editor öffnet.

Informationssysteme-soff2.png

Hier klickt man auf Neue Da­tenquelle und hat dann die Möglichkeit den Zugriff auf die vorher eingerichtete Datenq­uelle zu konfigurie­ren.

Zuerst muss man einen Namen für die Datenquelle festlegen, wobei die Angabe beliebig ist und nicht mit dem Namen der Datenbank oder der ODBC-Datenquelle übereinstimmen muss. Unter Datentyp wählt man ein­fach ODBC aus, wobei auch MySQL zur Verfügung steht, was aber keinen weite­ren Un­terschied macht.

Informationssysteme-soff3.png

Ein Klick auf Datenquellen-URL führt nun zu einem Fens­ter, in dem man die vorhanden­en ODBC-Datenquel­len findet und nur noch die richtige Quel­le auswäh­len muss.

Informationssysteme-soff4.png

Im Reiter ODBC kann man dann noch einen Benutzernamen eingeben und deutlich machen, dass ein Passwort abgefragt werden soll. Das Passwort selber kann man hier glücklicherweise nicht mit able­gen.

Nach einen Klick auf Anwendung und OK steht die Datenquelle in StarOffice zur Verfügung.

Beim ersten Zugriff auf die Liste der Ta­bellen fragt StarOffice dann auch das Pass­wort ab, wobei man ihm erlauben sollte sich dieses bis zum Ende der An­wendung zu merken.

Informationssysteme-soff5.png

Damit stehen die Daten innerhalb von StarOffice zur Verfügung.


4.JDBC-Datenquellen für StarOffice

Java Database Connectivity (JDBC) ist eine Datenbankschnittstelle, die auf Java aufsetzt und eine gewisse Ähnlichkeit mit ODBC besitzt. Für die Arbeit mit OpenOffice besteht der Vorteil darin, dass Java-Komponenten in OpenOffice gut unterstützt werden. JDBC-Treiber lassen sich nutzen, ohne dass administrative Rechte benötigt werden. ODBC dagegen erfordert für die Installation des Datenbank-Treibers immer administrative Rechte.

Das einrichten einer JDBC-Datenquelle in OpenOffice bzw. StarOffice ist nicht besonders aufwändig. Im ersten Schritt besorgt man auf den MySQL-Seiten die aktuelle Datei Connector/J. Momentan findet sich die Downlaod-Seite unter: http://dev.mysql.com/downloads/connector/j/5.1.html

Hier hat man noch die Auswahl zwischen einem ZIP-Archiv (für Windows) und einem tar.gz-Archiv (andere Betriebssysteme). Das Archiv hat eine Größe von etwa 8 Mbyte. Aus dem Archiv wird lediglich eine einzige Datei benötigt, nämlich mysql-connector-java-5.1.6-bin.jar (die Versionsnummern können sich ggf. ändern). Diese Datei entpackt man ins Home-Verzeichnis oder unter Windows z.B. ins Verzeichnis „Eigene Dateien“. Hat man administrative Rechte, so kann man die Datei auch in den Ordner lib/ext der installierten Java-Version kopieren, also z.B c:\Programme\Java\jre1.6.0_05/lib/ext oder /usr/java/jre1.6.0_05/lib/ext/, dann kann man sich den nächsten Schritt sparen.

Der Treiber muss nun noch in OpenOffice eingebunden werden. Das erfolgt automatisch, sofern er im lib/ext Verzeichnis liegt, ansonsten muss man OpenOffice starten und im Menü Extras den Menüpunkt Optionen aufrufen. Es erschein der folgende Dialog, in dem man Java auswählt.

Informationssysteme-jdbc1.png

OpenOffice sucht nun nach installierten Java-Versionen und bietet diese zur Auswahl an. Sofern nicht einen Version ausgewählt ist sollte man das jetzt nachholen. Anschließend klickt man auf Class Path... um den Pfad zur Treiberdatei auswählen zu können und dort dann auf Archive hinzufügen.

Informationssysteme-jdbc2.png

Hier wählt man die Datei aus, die man aus dem Archiv extrahiert hat. Dabei spielt keine Rolle, wo im Dateisystem die Datei liegt, der Benutzer muss nur darauf zugreifen können. Nach dem Beenden der Dialoge mittels Ok muss man OpenOffice vollständig beenden.


Nach dem Neustart von OpenOffice öffnet man eine neue Datenbank, worauf der Datenbank-Assistent erscheint.

Hier wählt man Verbindung zu einer bestehenden Datenbank herstellen und als Treiber JDBC.

Informationssysteme-jdbc3.png

Ein Klick auf Weiter führt zum nächsten Dialog.

Informationssysteme-jdbc4.png

In der Zeile Datenquellen-URL steht hier jdbc:mysql://lern-server.de/terra?useHostInPrivileges=false und in der Zeile JDBC-Treiberklasse der Eintrag com.mysql.jdbc.Driver

Auch muss man zum Abschluss auf Weiter klicken, um an den nächsten Dialog zu kommen.

Informationssysteme-jdbc5.png

Hier gibt man den Benutzernamen für die Datenbank ein und falls ein Passwort gesetzt ist sollte man hier auch die Checkbox vor Kennwort erforderlich aktivieren.

Informationssysteme-jdbc6.png

Das Kennwort wird erst bei Bedarf abgefragt, also entweder wenn man Verbindungstest anwählt oder ersten Zugriff auf die Datenbank. Den nächsten Dialog kann man übergehen und gleich auf Fertig stellen klicken. OpenOffice fordert nun zum Speichern der Datenbank-Datei auf und stellt anschließend die Verbindung zur Datenbank her. Nach einem Klick auf Tabellen sollte sich die folgende Ansicht ergeben.

Informationssysteme-jdbc7.png

5.Datenbankabfragen mit StarOffice

Den folgenden Aufgabenstellungen liegt die Terra-Datenbank zugrunde, die zusammen mit Unter­richtsmaterialien auf dem Sächsischen Landesbildungsserver zu finden ist http://marvin.sn.schule.de/~reimegym/terra/.

Die folgenden Beispiele und Aufgaben sollen dazu dienen von dieser Datenbank Informationen zu be­kommen.

Will man z.B. wissen, welche Städte in Deutschland weniger als 10.000 Einwohner haben, so klickt man mit der rechten Maustaste im Datenquellenfenster auf das Wort Abfragen. Aus dem Kontextme­nü wählt man dann Abfrage in der Entwurfsansicht erstellen....

Zuerst muss man die Tabel­len auswählen, die man für die Be­antwortung der Frage be­nötigt. Im Vorliegenden Fall also die Tabellen Land und Stadt.

Informationssysteme-terra1.png

Die beiden Tabellen sind über das Feld L_ID logisch miteinander verbunden, was StarOffice nicht von sich aus wissen kann. Von daher muss man hier die Verbin­dung einfach durch Ziehen ei­ner Linie deutlich machen.

Anschließend noch ein paar Angaben im unteren Be­reich um die Abfrage zu spezifi­zieren.

Informationssysteme-terra2.png

Ein paar weitere Fragen von der Terra-Website.

0.Geben Sie den Namen, den Länderidentifikator und die Einwohnerzahl aller Länder an.

1.Gesucht ist die Langform des Landes mit L_ID = 'D' und die entsprechende Einwohnerzahl.

2.Gesucht sind alle Inseln (Name) der Inselgruppe der Philippinen.

3.Ermitteln Sie die Namen aller Kontinente.

4.Gesucht ist die Einwohnerzahl der deutschsprachigen Länder (D, A, CH).

5.Gesucht ist die Summe der Stadteinwohner je Land.

6.Gesucht sind alle Berge der Alpen (Beachten Sie, dass die Alpen in Teilgebirge aufgegliedert sind).

7.Gesucht sind alle Hochgebirge (Gebirge mit Bergen über 3000 m Höhe).

8.Gesucht sind alle Flüsse (Name), die in die Ostsee oder Nordsee münden und über 1000 km lang sind.

9.Gesucht sind alle Wüsten (Name) der Art "Sandwueste" mit einer Fläche größer als 25000 km².

10.Geben Sie von jedem Land in Afrika den Namen, die Anzahl der Einwohner, die Fläche an.

11.Geben Sie von jedem Land in Afrika den Namen, die Anzahl der Einwohner, die Fläche sowie den prozentualen Flächenanteil am Kontinent an.

12.Geben Sie für alle Millionenstädte, die in den Tropen liegen, die Namen und ihre Koordinaten an (Die Tropen liegen zwischen 23,27 Grad nördlicher und 23,27 Grad südlicher Breite).

13.Gesucht sind Namen und Hauptstädte aller Länder, die nicht Mitglied der UNO sind.

14.Ermitteln Sie die Namen aller Flüsse, die sowohl durch Deutschland als auch durch Österreich flie­ßen. Es kann davon ausgegangen werden, dass die Landesidentifikatoren für Deutschland (D) und für Österreich (A) bekannt sind.

15.Welche Flüsse fließen durch mehr als ein Land?

16.Geben Sie die Namen, die jeweilige Länderkennung und die Zahl der Einwohner für alle Länder an, die mehr als 45 Millionen Einwohner haben. Ordnen Sie dabei die Länder in absteigender Rei­henfolge nach der Einwohnerzahl.

17.Gesucht ist der Anteil der Meere an der Erdoberfläche (Angabe in Prozent). Hinweise: Oberflächenformel: O = 4pr², Erdradius gleich 6370 km, Flaeche in Tabelle Kontinent liegt normiert vor (Faktor 1 Mill.), damit 6.37 * 6.37 anstelle 6370 * 6370.

18.Gesucht sind alle Inselgruppen sowie die Anzahl der zugehörigen Inseln.

19.Gesucht sind alle Flüsse mit mehr als zwei an ihnen liegenden Städten, sortiert nach dieser An­zahl.

20.Gesucht sind alle Städte, in denen mehrere Organisationen ihren Sitz haben.

21.Ermitteln Sie die Namen aller Flüsse, die sowohl durch Deutschland als auch durch Österreich flie­ßen.

22.Gesucht ist die größte Insel der Welt (Name und Fläche der Insel).

23.Geben Sie von jedem Land in Afrika den Namen, die Anzahl der Einwohner, die Fläche, das Brut­tosozialprodukt sowie den prozentualen Flächenanteil auf dem Kontinent (1. Teilaufgabe) bzw. am Kontinent (2. Teilaufgabe) an.


Anhang C: Diagramme mit Dia

Dia ist ein Programm zum Zeichnen von Programmen, das unter http://www.gnome.org/projects/dia/ als freie Software sowohl für Linux, als auch für Windows zur Verfügung steht.

Seine Entwicklung orientiert sich an dem Wind-Programm Visio, welches inzwischen von Microsoft übernommen wurde. Für den schulischen Einsatz, speziell im Zusammenhang mit Datenbanken reicht dieses Programm vollkommen aus.

Die Bedienung von Dia ist, speziell für Nutzer von Wind-Versionen, etwas gewöhnungsbedürftig. Beim Start von Dia bekommt man nur ein Fenster Diagrammeditor mit den Menüfunktionen zu se­hen.


Informationssysteme-dia1.png


Wählt man hier unter Datei den Menüpunkt Diagramm anlegen, so erscheint ein weiteres Fenster (Diagramm1.dia) mit der Zeichenfläche. Beide Fenster sind unabhängig voneinander verschiebbar. Die Zeichenfläche ist beliebig groß, sie lässt sich in jede Richtung verschieben. Auf der Zeichenflä­che sind neben dem Raster stärkere blaue Linien zu sehen, diese markieren jeweils eine DIN A4 Sei­te.

Das Menüfenster benötigt man relativ selten eigentlich nur in der Funktion einer Werkzeugleiste. Die meisten anderen Funktionen bekommt man im Zei­chenfeld mit der rechten Maustaste im Kontextmenü.

Informationssysteme-dia2.png

Wer die rechte Maustaste nicht mag, der kann für den gleichen Zweck auch das kleine schwarze Dreieck in der linken oberen Ecke des Fensters anklicken.

Im unteren Bereich des Zeichenfensters finden sich zwei weitere Bedien-Elemente von Dia. Zuerst ein Zoomfeld, über das man die Ansichtsgröße der Zeichnung bzw. den Zeichnungsausschnitt festlegen kann. Daneben findet sich dann noch ein Knopf über den man festlegen kann, ob Elemente am Gitter aus­gerichtet werden sollen oder nicht.

Zum Zeichen eines Entity-Relationship (ER) Modells muss man zuerst in dem Werkzeugfenster die Rubrik ER auswählen. Dazu klickt man auf das Auswahl-Element in der Mitte des ersten Fensters. Es öffnet sich eine lange Liste mit allen zur Verfügung stehenden Vorlagen-Rubriken und wählt hier ER aus.

Unterhalb des Auswahlelementes erscheinen nun wie in der ersten Abbildung dargestellt die einzel­nen Elemente einer ER-Diagramms. Zur Auswahl ei­nes Elementes klickt man diese, z.B. Entität an und klickt dann in die Zeichenfläche. Mit der Maus kann man in der Zeichenfläche relativ wenig anfangen, man kann gerade Elemente markieren und verschieben. Alle weiteren Bearbeitungsschritte erfolgen über das Kontextmenü des markierten Ele­mentes.

Wichtig ist meist der Menüpunkt Objekte --> Eigen­schaften, den man auch mit einem Doppelklick auf das Objekt erreichen kann.

Informationssysteme-dia3.png

In dem so geöffneten Eigenschafts-Fenster gibt man vor allem den den Text und die Schriftgestaltung (Schriftart und -größe) an. Für ein schulbezogenes ER-Model würde man hier das Wort Entität z.B. durch Schüler oder Kurs ersetzen.

Informationssysteme-dia4.png

Ähnlich wie die Entitäten kann man auch die Relationen in das Diagramm einfügen. Gewöhnungsbe­dürftig ist dabei, dass die Größe der einzelnen Käs­ten nicht veränderbar ist, sondern nur von dem Platzbedarf der Schrift festgelegt wird. Falls einem in der Zeichnung also der Kasten Kurs zu klein ist, dann muss man das Wort mit Leerzeichen umgeben, wodurch der Kasten größer wird.

Informationssysteme-dia5.png

Deutlich einfacher ist die Anordnung der Objekte zu beeinflussen. Dazu markiert man alle drei Objekte, indem man z.B. mit der Maus eine Rechteck um sie herum aufzieht. Dann wählt man aus dem Kontext­menü Objekte --> Vertikal anordnen --> Mitte und schon richten sie sich auf einer Linie aus. Mit Ob­jekte --> Horizontal anordnen --> Gleicher Abstand kann man auch die Abstände anpassen. Sollte hier­bei ein Fehler auftreten, so kann man den Bearbeitungsschritt übrigens mit Bearbeiten --> Rückgän­gig wieder zurücknehmen.

Nun geht es darum die einzelnen Kästen noch miteinander zu verbinden. Dazu dient das Icon mit der Linie im Werkzeugfenster. Klickt man dieses Icon an, so kann man im Zeichenfenster mit der Maus eine Linie ziehen. Die Endpunkte dieser Linie sind üblicherweise grün markiert. Bringt man einen der Endpunkte an eines der kleinen Kreuze von einem der Kästen, so rastet er ein, wobei sich die Farbe zu Rot verändert. Eine eingerastete Linie ist ein Verbinder, der auch beim Verschieben des Kastens mit folgt.

Benutzt man auch noch die Vorlage für Attribute, so lässt sich ein Diagramm wie das folgende zeichnen.

Informationssysteme-dia6.png

Speichern kann man ein derartiges Diagramm in verschiedenen Dateiformation. Besonders wichtig ist natürlich Dias eigenes Vektor-Format, in dem man eine Zeichnung immer dann abspeichern sollte, wenn man sie noch einmal bearbeiten möchte. Unter Datei --> Exportieren bietet Dia eine Viel­zahl von Grafikformaten zur Auswahl an.

Informationssysteme-dia7.png

Beim Export in Pixelformate, wie z.B. PNG fragt Dia noch nach den gewünschten Abmessungen für das Bild und erstellt dann die entsprechende Datei in entsprechender Qualität.

Mit Dia kann man übrigens nicht nur ER-Diagramme erstellen, sondern auch UML-Diagramme für Java und auch komplexere Darstellungen wie Netzwerkdiagramme sind möglich. Sollten die mitge­lieferten Objekte dazu nicht ausreichen, so kann man die Liste auch selber erweitern, wozu die Ele­mente im Vektorformat (SVG) vorliegen müssen.