Informationssysteme-Anhang
Der vorliegende Text gliedert sich in folgende Teile:
VI. Einbindung von MySQL in PHP
VII. Erweiterte Möglichkeiten in MySQL
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 Programme 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 folgendermaßen aufrufen:
/usr/bin/mysql datenbankname -u root
Nach der Installation ist für den Benutzer root kein Passwort gesetzt, sollte man danach gefragt werden, so langt eine leere Eingabe. Mit diesem Programm kann man alle Funktionen der Datenbank nutzen, die im Abschnitt 3. beschrieben 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 Benutzernamen 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 gelö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 Parameter 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 vorhanden 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 erhä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 damit die Datenbank auf einen anderen Rechner kopieren, da alle Zeilen wie bei der Eingabe aufgebaut 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 gesetzt. Diese Rechteverwaltung arbeitet mit der Datenbank mysql, die bei der Installation angelegt wird. Innerhalb 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 schauen. Für den normalen Betrieb dürfte es langen die Rechte mit dem Tool mysql_setpermissions einzurichten.
/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 tauchen 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 Webserver 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 Jokerzeichen %. Falls der Rechner eine ständige Internetverbindung besitzt, ist das Jokerzeichen riskant, 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.
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.
Da diese grafischen Client-Programme relativ neu sind, kann man sie bisher noch nicht bei vielen Webanbietern 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.
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 Funktionen vorgestellt.
7.1. Datenbanken
Im linken Rahmen existiert eine Auswahlliste, über die man eine der vorhandenen Datenbanken auswählen kann. Im Hauptfenster sieht man dann die innerhalb dieser Datenbank vorhandenen Tabellen.
Klickt man im linken Rahmen auf eine der Tabellen, so werden im Hauptfenster weitere Informationen angezeigt. Klickt man dann auf den Reiter Anzeigen, so bekommt man den Inhalt der Tabelle angezeigt.
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 angelegten Benutzer aufgeführt sind. Man kann hier entweder neue Benutzer anlegen, Benutzer löschen oder über den Link Bearbeiten einen der vorhandenen Benutzer editieren.
Im Formular zum Bearbeiten kann man dem jeweiligen Benutzer generelle Rechte erteilen und spezielle Rechte für einzelne Datenbanken.
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.
Damit steht allen Anwendungen, die auf Datenbanken zugreifen wollen, Grundsätzlich diese Funktion zur Verfügung. Für ein konkretes Datenbanksystem, im vorliegenden Zusammenhang MySQL, wird dann noch der spezifische Treiber benötigt, idealerweise vom Hersteller des Datenbanksystems. Für MySQL bekommt man die entsprechende Datei z.B. unter http://www.mysql.de/downloads/api-myodbc.html. Es handelt sich um eine ausführbare .exe Datei, die nur gestartet werden muss.
Es folgen ein paar der üblichen Installations-Dialoge, wichtige Entscheidungen sind aber bei der Installation nicht zu treffen.
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.
Weitere Datenquellen sind üblicherweise nur vorhanden, wenn weitere Treiber oder entsprechende 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 angeboten wird. Der soeben installierte MySQL-Treiber findet sich ziemlich am Ende dieser recht langen Liste.
Nach der Auswahl des Treiber klickt man auf Fertig stellen, worauf die eigentliche Konfiguration des Treibers erfolgt.
Die Bezeichnung für die Quelle (Data Source Name) ist frei wählbar, sollte aber möglichst deutlich 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 localhost eintragen. Sollte es Probleme mit der Namensauflösung geben, was bei Windows-Rechnern immer mal vorkommt, so kann man hier auch IP-Adressen angeben. Für localhost 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 nebenstehende weist üblicherweise auf ein Passwortproblem hin, die Datenbank hat auf alle Fälle reagiert
Wenn der Zugriff erfolgreich ist, dann bekommt man ebenfalls eine entsprechende Meldung.
Nach Abschluss der Konfiguration taucht die neue Datenquelle auch im Datenbankadministrator auf und steht damit zur Verfügung.
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 entsprechendes 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 geben. 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 Datei 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 Homeverzeichnis ablegt, es entsteht dann eine User-Datenquelle. Zum Erstellen der Datei gibt es auch ein grafisches Werkzeug, nämlich ODBCConfig.
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.
Sehr nett gemacht ist der Menüpunkt About:
Hier findet sich eine recht ausführliche Beschreibung des ODBC-Systems, erst einmal als Strukturdiagramm. Klick man auf einen der Knöpfe, so erhält man weitere Informationen.
Ein weiteres Grafisches Tool ist der DataManager.
Er zeigt alle vorhandenen Treiber und Datenquellen in einer übersichtlichen Struktur an.
Für jeder der vorhandenen Datenquellen kann man sich die zugehörigen Tabellen anzeigen lassen, ggf. erst nach einer Anmeldung mit Benutzernamen und Passwort.
Für jede der Tabellen kann man sich dann auch noch die Struktur einblenden lassen.
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önnten 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 Datenquelle verfügbar ist.
Man startet StarOffice mit einem neuen Text- oder Tabellendokument und öffnet dann über Ansicht -> Datenquellen oder kurz F4 die Datenquellen-Ansicht.
Falls noch nicht mit Datenbanken gearbeitet wurde, gibt es in dieser Ansicht nur eine einzige Datenquelle namens Biblio (in der Windows-Version heisst die übrigens Bibliography). Um weitere Datenquellen hinzufügen zu können klickt man mit der rechten Maustaste 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.
Hier klickt man auf Neue Datenquelle und hat dann die Möglichkeit den Zugriff auf die vorher eingerichtete Datenquelle zu konfigurieren.
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 einfach ODBC aus, wobei auch MySQL zur Verfügung steht, was aber keinen weiteren Unterschied macht.
Ein Klick auf Datenquellen-URL führt nun zu einem Fenster, in dem man die vorhandenen ODBC-Datenquellen findet und nur noch die richtige Quelle auswählen muss.
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 ablegen.
Nach einen Klick auf Anwendung und OK steht die Datenquelle in StarOffice zur Verfügung.
Beim ersten Zugriff auf die Liste der Tabellen fragt StarOffice dann auch das Passwort ab, wobei man ihm erlauben sollte sich dieses bis zum Ende der Anwendung zu merken.
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.
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.
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.
Ein Klick auf Weiter führt zum nächsten Dialog.
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.
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.
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.
5.Datenbankabfragen mit StarOffice
Den folgenden Aufgabenstellungen liegt die Terra-Datenbank zugrunde, die zusammen mit Unterrichtsmaterialien 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 bekommen.
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 Kontextmenü wählt man dann Abfrage in der Entwurfsansicht erstellen....
Zuerst muss man die Tabellen auswählen, die man für die Beantwortung der Frage benötigt. Im Vorliegenden Fall also die Tabellen Land und Stadt.
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 Verbindung einfach durch Ziehen einer Linie deutlich machen.
Anschließend noch ein paar Angaben im unteren Bereich um die Abfrage zu spezifizieren.
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 Reihenfolge 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 Anzahl.
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 Bruttosozialprodukt 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 sehen.
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 Seite.
Das Menüfenster benötigt man relativ selten eigentlich nur in der Funktion einer Werkzeugleiste. Die meisten anderen Funktionen bekommt man im Zeichenfeld mit der rechten Maustaste im Kontextmenü.
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 ausgerichtet 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 einzelnen Elemente einer ER-Diagramms. Zur Auswahl eines 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 Elementes.
Wichtig ist meist der Menüpunkt Objekte --> Eigenschaften, den man auch mit einem Doppelklick auf das Objekt erreichen kann.
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.
Ähnlich wie die Entitäten kann man auch die Relationen in das Diagramm einfügen. Gewöhnungsbedürftig ist dabei, dass die Größe der einzelnen Kästen 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.
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 Kontextmenü Objekte --> Vertikal anordnen --> Mitte und schon richten sie sich auf einer Linie aus. Mit Objekte --> Horizontal anordnen --> Gleicher Abstand kann man auch die Abstände anpassen. Sollte hierbei ein Fehler auftreten, so kann man den Bearbeitungsschritt übrigens mit Bearbeiten --> Rückgängig 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.
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 Vielzahl von Grafikformaten zur Auswahl an.
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 mitgelieferten Objekte dazu nicht ausreichen, so kann man die Liste auch selber erweitern, wozu die Elemente im Vektorformat (SVG) vorliegen müssen.