Datenbanken-Frontends Holger Jakobs – [email protected], [email protected] 2011-10-19 Inhaltsverzeichnis 1 TOra 1.1 Start von TOra . . . . . . 1.2 SQL und Schema Browser 1.3 Speichern und Laden . . . 1.4 Der Schema Browser . . . 1.5 Transaktionen in TOra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 5 5 6 2 SQL Developer 7 3 psql 8 4 pgAdmin III 8 Für unsere Datenbanksysteme Oracle und PostgreSQL gibt es diverse Frontends – d. h. Programme zum interaktiven Arbeiten und Entwickeln. Das Datenbanksystem stellt hierzu jeweils das Backend dar – also das Programm, welches auf einem zentralen Rechner läuft, die eigentliche Datenverwaltung durchführt und vom Frontend über das Netz angesprochen wird. Einige der Frontends werden in diesem Dokument vorgestellt, so dass Sie eine Auswahl treffen können und die wichtigsten Handgriffe im Umgang mit dem Programm erfahren. Bei uns sind die Programme unter Windows zu finden unter Start/Programme/ProgrammEntwicklung/Datenbanken/..., unter Linux unter K-Menü/b.i.b./Datenbanken. Die meisten Tools kann man aber auch ganz einfach aus einem Terminal heraus starten, indem man den Namen eingibt. Die bevorzugten Tools sind TOra für Oracle und PostgreSQL, SQL Developer für Oracle und psql und pgadmin3 für PostgreSQL. Zum universellen Tool SquirrelSQL gibt es einen separaten Einführungstext. 1 1 TORA Name psql DB-Systeme PostgreSQL Beschreibung Linux sqlplus Oracle Linux TOra Oracle, PostgreSQL u. a. Linux, Windows SQL Developer Oracle, MySQL, SQL Server, unter Windows auch .mdb-Files alle JDBCDatenbanken PostgreSQL Linux, Windows Squirrel SQL pgAdmin Kommandozeilentool – einfach, aber sehr praktisch, auch in Scripts verwendbar Aufruf mit psql Kommandozeilentool – sehr einfach, nicht sehr praktisch, Aufruf mit sqlplus username/password @ora10.bg.bib.de Unter Windows Version 1.3.21 (nur für Oracle geeignet), unter Linux Version 1.3.18 (für mehrere DB-Systeme geeignet). Recht praktisches, grafisches Tool, die Entwicklung scheint stehen geblieben zu sein, nicht fehlerfrei. Java-Tool, daher ein wenig träge, ansonsten praktisch und hilfreich. Linux, Windows Java-Tool, etwas träge. Linux, Windows praktisches, grafisches Tool, flink, auch über pgadmin3 aufrufbar. Tabelle 1: Übersicht über die Frontends 1 TOra TOra steht für „Toolkit für Oracle“, unterstützt aber mittlerweile auch weitere Datenbanksysteme. Es ist ein Open-Source-Produkt. 1.1 Start von TOra Bei uns kann TOra aufgerufen werden über das K-Menü, b.i.b., Datenbanken. Wahlweise kann man auch das Kommando tora auf der Kommandozeile eingeben, am besten mit einem & dahinter. Es erscheint die TOra-Oberfläche mit dem Anmeldedialog. Hier sind Benutzername und Passwort einzugeben. Die übrigen Einträge bleiben mit ihren hier gezeigten default-Einträgen gefüllt. Die Checkbox „Use SQL*Net“ muss ausgewählt sein, als „Database“ ist „ORA10.BG.BIB.DE“ einzugeben oder auszuwählen, bei Options muss „SQL*Net“ ausgewählt sein. Falls bereits Benutzername und Passwort in den Feldern eingetragen sind, muss das Passwort trotzdem erneut eingegeben werden, da das alte Passwort nicht gespeichert wurde. Die angezeigten Sternchen sind hier irreführend. Leider ist Oracle 2 1 TORA 1.2 SQL und Schema Browser Abbildung 1: Herstellen einer Verbindung mit TOra nicht in der Lage, einen bereits bei Windows bzw. Linux angemeldeten Benutzer als solchen zu erkennen und daher einen Zugriff ohne erneute Eingabe eines Passworts zu gestatten. Im b.i.b. gibt es derzeit nur eine einzige Oracle-Datenbank, aber jede(r) Benutzer(in) hat einen eigenen Bereich mit eigenen Tabellen (ein sogenanntes Schema). Das Oracle-Passwort ist üblicherweise nicht mit dem Login-Password von Windows und Linux identisch, aber Sie können es natürlich so ändern, dass die Passwörter übereinstimmen. 1.2 SQL und Schema Browser TOra verwendet ein MDI (multiple document interface), d. h. es gibt mehrere „Dokumentfenster“ innerhalb des Anwendungsfensters. Zunächst gibt es nur ein einziges, zweigeteiltes Dokumentfenster, das in der oberen Hälfte die Eingabe eines SQL-Kommandos erwartet; siehe Abbildung 2 auf Seite 5. In der unteren Hälfte wird bei Absenden eines SQL-Kommandos dessen Ergebnis angezeigt. Dies ist ein sogenanntes „Worksheet“. Neue, zusätzliche Worksheets werden durch Auswählen von „Worksheet“ aus dem „Tools“-Menü oder durch Anklicken des weißen Blatts in der Toolbar-Leiste geöffnet. Daneben verwenden wir den Schema Browser, den man über das Tool-Menü auswählt. Der Schema Browser zeigt an, welche Tabellen, Attribute, Indexe usw. in der Datenbank vorhanden sind. Das ist praktisch, wenn einem die Schreibweise von Objekten in der Datenbank gerade entfallen ist oder man nachprüfen möchte, ob ein bestimmtes Objekt noch oder schon existiert, d. h. ob ein Kommando wirklich den gewünschten Effekt gezeigt hat. Hier kann man sich über eine fremde Datenbank schnell einen Überblick verschaffen. 3 1.2 SQL und Schema Browser 1 Pfeil 2 Pfeile Pfeil ... 1 TORA Das Kommando, in dem der Cursor steht, soll ausgeführt werden. Auf diese Weise können Sie im oberen Fenster mehrere Kommandos stehen haben und genau bestimmen, welches ausgeführt werden soll. Alle Kommandos im oberen Fenster sollen direkt hintereinander ausgeführt werden. Alle Kommandos im oberen Fenster sollen ausgeführt werden, aber Schritt für Schritt, d. h. nach jedem Kommando wird angehalten und es muss erneut auf die Schaltfläche geklickt werden. So sehen Sie auch Zwischenergebnis. Tabelle 2: Erläuterung der grünen Pfeile Zwischen Worksheet und Schema Browser wird über das Windows-Menü umgeschaltet oder durch Drücken der Strg-Taste und einer Ziffer, wobei Strg+1 das zuerst geöffnete Fenster, Strg+2 das als zweites geöffnete Fenster usw. anspricht. Wahlweise kann man auch die einzelnen Dokumentfenster kleiner als „Vollbild“ machen. Auf diese Weise kann man evtl. Schema Browser und Worksheet gleichzeitig nebeneinander sehen. Die Bedeutung der hier gezeigten drei Schaltflächen mit grünen Pfeilen finden Sie in der Tabelle 2. Ausführliche Information darüber, was bei den Kommandos evtl. schief gegangen ist, finden Sie, wenn Sie statt des Karteireiters „Result“ den Karteireiter „Logging“ wählen. Dort stehen auch Meldungen zu früheren Kommandos, die Sie ggf. durch Zurückscrollen sichtbar machen können. Leider kann man nicht sehen, an welcher Stelle eines vielleicht sehr langen Kommandos ein (Syntax-)Fehler aufgetreten ist. Sie können Ihr Oracle-Passwort jederzeit ändern. Geben Sie hierzu ins obere Feld des Worksheet ein: alter user eigeneBenutzerkennung identified by neuesPasswort; Anschließend klicken Sie auf den grünen Pfeil, um das Kommando auszuführen. Erscheint daraufhin in der Fußzeile (Statuszeile) der Hinweis Query executed, so wurde das neue Passwort eingetragen. Dieses neue Passwort kann dasselbe sein wie Ihr Login-Passwort, kann aber auch anders lauten. Das neue Passwort wird ohne Anführungszeichen eingegeben. 4 1 TORA 1.3 Speichern und Laden Abbildung 2: Hauptbildschirm von TOra 1.3 Speichern und Laden Jederzeit kann man den Inhalt des Eingabefeldes speichern oder auch den Inhalt einer .sql-Datei in das Eingabefeld laden. Beim Verlassen von TOra wird man auch für jedes offene Worksheet gefragt, ob man den im Eingabefeld befindlichen Text speichern möchte. Auf diese Weise können Sie Kommandos in aller Ruhe ausprobieren und die funktionierende Fassung anschließend speichern. 1.4 Der Schema Browser Der Schema Browser zeigt Ihnen auf der linken Seite Ihre Tabellen an. Diese sind alphabetisch sortiert. Daher ist es sinnvoll, wenn Sie logisch zusammengehörenden Tabellen ein einheitliches Präfix geben, beispielsweise kh_ für alle Tabellen der Krankenhaus-Datenbank und sp_ für alle Tabellen der Spieler-Datenbank. Über die oberen Karteireiter kann man neben Tabellen auch Views, Indexe und anderes anzeigen lassen. Dies wird in diesem Dokument aber nicht weiter erläutert. Zunächst ist im rechten Teil der Karteireiter Columns ausgewählt. Wenn Sie im linken Teil eine Tabelle auswählen, sehen Sie daher die zu der Tabelle gehörenden Attribute (Spalten, Columns) mit laufender Nummer, Namen, Datentyp und der Angabe, ob Nullwerte zulässig sind oder nicht. 5 1.5 Transaktionen in TOra 1 TORA Hierüber gibt der Schema Browser Auskunft bei Anwahl des zugehörigen Karteireiters (Auswahl): • Columns Spalten mit laufender Nummer, Namen, Datentyp und der Angabe, ob Nullwerte zulässig sind oder nicht • Indexes Indexe, d. h. explizit angelegte Indexe, aber auch Primärschlüssel, für die nämlich automatisch ein eindeutiger Index angelegt wird. • Constraints Constraints, d. h. Beschränkungen für die Daten, die eingegeben werden können. Dies können sein: – check constraints, diese werden mit Hilfe einer check-Klausel eingegeben. – primary key constraints, diese werden durch die Klausel primary key bestimmt. – foreign key constraints, diese werden durch die references-Klausel bestimmt. not null-Klauseln sind zwar eigentlich auch Constraints, aber hier nicht aufgeführt, weil sie bei den Spalten stehen. • References Anzeige der Tabellen, die die aktuelle Tabelle referenzieren, d. h. einen Fremdschlüssel haben, der auf die aktuelle Tabelle zeigt. Dies sind die komplementären Einträge zu den Fremdschlüsseln, die unter Constraints auftauchen. • Data Anzeige der in der Tabelle enthaltenen Daten. Wenn ein Eintrag null lautet, so ist in dem Attribut kein Wert eingetragen (sogenannter Nullwert). Sollten Sie Änderungen an der Datenbankstruktur mittels Worksheet durchgeführt haben, so ist evtl. die Anzeige des Schema Browsers nicht mehr aktuell. Durch Anklicken des refresh-Icons können Sie sie aktualisieren. 1.5 Transaktionen in TOra Da es sich bei Oracle um eine „richtige“ Datenbank handelt, werden alle Zugriffe auf sie über Transaktionen gesteuert. Das bedeutet, dass Änderungen nicht unmittelbar in der Datenbank landen, sondern zunächst in einem Schwebezustand sind, in dem die Sitzung, in der sie eingegeben wurden, sie sehen kann, alle anderen Sitzungen aber nicht. Erst nach Bestätigen der Transaktion (Abschluss mit commit work) werden die Änderungen endgültig in die Datenbank geschrieben, oder sie werden mittels Zurückfahren (Abschluss mit rollback work) endgültig rückgängig gemacht. 6 2 SQL DEVELOPER Abbildung 3: Hauptbildschirm des SQL Developer In TOra kann man die Kommandos commit work und rollback work im Worksheet eingeben und ausführen. Alternativ dazu kann man auf eines der Icons ganz rechts in der Toolbar-Leiste klicken. Das rot durchgestrichene Icon führt ein Rollback durch, das andere ein Commit. 2 SQL Developer Beim Start des SQL Developer werden Sie gefragt, ob sie bestimmte Dateitypen assoziieren wollen. Sie können diesen Dialog einfach abbrechen. Der Bildschirm anschließend ist sehr übersichtlich, siehe Abbildung 3. Bei den „Connections“ sind noch keine Einträge vorhanden, so dass Sie zunächst einmal eine neue Verbindung herstellen müssen. Klicken Sie hierzu auf das grüne Pluszeichen. Im folgenden Dialog geben Sie der Verbindung einen beliebigen Namen; Username und Password sind wohl klar. Wenn Sie das Password speichern möchten, um es nicht bei jedem Start erneut eingeben zu müssen, wählen Sie die Checkbox „Save Password“ aus. Als Datenbanksystem wählen Sie Oracle, Role bleibt default, „Connection Type“ müssen Sie auf TNS umstellen. Dann können Sie bei „Network Alias“ unsere Datenbank ORA10.BG.BIB.DE auswählen. Klicken Sie dann erst auf Save, dann auf Connect, um die Verbindung herzustellen. 7 4 PGADMIN III Der rechte Teil des Fensters – bisher leer – ist nur dreigeteilt in „Enter SQL Statement“, „Results“ und „Logging Page“. Hier können Sie SQL Statements eingeben und ausführen. Wie bei TOra können Sie auch Textdateien mit SQL Statements öffnen, ausführen und für späteren Gebrauch auch speichern, d. h. es ist Editorfunktionalität vorhanden. Im linken Teil ist Ihre neue Verbindung hinzugekommen, die Sie am kleinen Pluszeichen öffnen können – dies entspricht dann dem Schema Browser von Tora, wo Sie die Tabellen, Views usw. anzeigen können. 3 psql Für das einfache, schnelle Arbeiten zwischendurch bietet sich für PostgreSQL das mitgelieferte Tool psql an. Starten Sie es in einem Linux-Terminalfenster. Wenn Sie eine Datei namens .pgpass mit folgendem Inhalt in Ihrem Homedirectory speichern, benötigen Sie das Password nicht bei jedem Programmstart – achten Sie aber auf die Rechteeinstellungen, so dass niemand das Password dort lesen kann! dbserver2:5432:datenbankname:username:pg-password Verwenden Sie reichlich die Command History – so wie Sie sie von der Shell (bash) schon kennen. Sie können auch Dateien mit SQL-Kommandos ausführen, indem Sie \i gefolgt vom Dateinamen eingeben. Hilfe zu den Spezialkommandos von psql erhalten Sie mit \?, zu SQL-Kommandos mit \h, verlassen können Sie das Programm mit \q. Sehr hilfreich ist auch das Tool zum Exportieren von Datenbankinhalten, d. h. Objektbeschreibungen (für Tabellen, Index, Sequenzen, Sichten usw.) und auch Tabelleninhalten: pg_dump – über die vielfältigen Optionen informiert die Online-Hilfe, die Sie mit pg_dump --help aufrufen können. 4 pgAdmin III Wer den Komfort einer grafischen Oberfläche nicht missen möchte, kann – sowohl unter Windows als auch unter Linux – pgAdmin III verwenden. Es ist allerdings nur für PostgreSQL-Datenbanken geeignet. Die Bedienung ist weitestgehend intuitiv. Die Datenbanken und ihre Inhalte werden in einer übersichtlichen Baumstruktur angezeigt. Beim Auswählen eines Objekts wird direkt angezeigt, mit welchen Kommandos man es löschen und neu erzeugen kann. So sind die Eigenschaften immer unmittelbar ersichtlich. Über die Schaltfläche SQL in der Symbolleiste haben Sie Zugriff auf einen SQL-Editor. Einen komforablen Start von pgAdmin III erreichen Sie, indem Sie das Programm nicht direkt aufrufen, sondern statt dessen das Script pgadmin-regset.tcl aus dem Verzeichnis sysdaten/tcl/scripts des FORALL-Laufwerks, Dann ist der Daten- 8 4 PGADMIN III Abbildung 4: Herstellen einer Verbindung mit pgAdmin III bankserver mit Ihrer Kennung schon eingetragen, so dass Sie nur noch Ihr DatenbankKennwort selbst eingeben müssen. Nach einem direkten Start des Programms hingegen sind noch keine Einträge vorhanden. Um sich mit unserem Datenbank-Server zu verbinden, klicken Sie auf das Steckersymbol und geben im Dialog Ihre Zugangsdaten ein. Bitte achten Sie darauf, als „Wartungs-DB“ template1 auszuwählen und nicht postgres. Unser Server heißt – wie bei allen Datenbanksystemen hier im Haus – dbserver2, die Portnummer bei PostgreSQL ist immer 5432, SSL benötigen wir nicht. Es kann sein, dass Sie das Programm noch einmal schließen und neu starten müssen, bevor die Verbindung mit dem Server klappt. Damit Sie nicht immer die Liste der bei uns ca. 1000 Datenbanken sehen, können Sie beim Dialog für die Verbindung eine Einschränkung auf die anzuzeigenden Datenbanken machen, siehe Abbildung 4. In der Abbildung 5 auf der nächsten Seite ist zu erkennen, dass durch eine Einschränkung nur die Datenbank bbyf5aja sichtbar ist. Diese hat viele Schemata, das Schema bibliothek ist geöffnet, darin die Liste der Tabellen. Die Tabelle b_benutzer ist ausgewählt, weshalb im rechten Teil unter Eigenschaften die Tabelle beschrieben wird, im unteren Bereich steht automatisch das komplette create-Statement. %$Id: frontends.tex,v efcb5b401798 2009/03/23 14:15:07 bibjah $ 9 4 PGADMIN III Abbildung 5: Hauptbildschirm von pgAdmin III 10