Datenbanken unter Linux #
Wer unter Linux Daten verwalten will, hat dazu sehr viele Möglichkeiten. Diese Seite soll als Hilfe dienen, welche Software aus dem Riesen-Wust der Möglichkeiten für ein bestimmtes Problem sinnvoll ist. Ich bitte darum, daß diese Aufstellung erweitert wird, falls jemand Erfahrung mit anderer Software hat.
Zuerst einmal wird oft ein Unterschied zwischen dem Datenbankserver und der Applikation gemacht. Der Server verwaltet die eigentlichen Daten, auf die man dann mit unterschiedlichsten Client-Applikationen zugreifen kann. In einer idealen Lösung kann man dann mit verschiedenen Werkzeugen unterschiedliche Aufgaben mit denselben Daten erledigen. Es gibt natürlich auch "integrierte" Datenbanken. Diese sind bei kleinen Datenmengen angenehm, weil man keinen Server installieren und einrichten muss, dafür sind sie nicht mehrbenutzerfähig und oft auch in der Datenbankfunktionalität eingeschränkt sowie nicht für wirklich große Datenmengen vorgesehen.
Datenbankserver #
- MySQL - die wohl beliebteste Datenbank der Welt
- PostgreSQL - Für komplexe Aufgaben die bessere Wahl, beherrscht z.B. auch eingebettete Methoden in verschiedenen Programmiersprachen, etc.
- SQLite - begann eher als eine C-Bibliothek denn als ausgewachsene Datenbank, "integriert" wie Thomas treffend oben formuliert hat.
- HSQLDB - integrierte Datenbank in Java, einfach aber sehr schlank, erlaubt auch reine Memory-Datenbanken, damit sehr gut für Unittests aber z.B. auch für JavaWebStart-Anwendungen geeignet
- JavaDB bzw. Apache Derby - in Java, sieht recht umfangreich aus, kann auch integriert werden
Datenbank-Applikationen #
Grundlegende Verwaltung der Datenbank #
- SQL-Grundlagen, z.B. für eine Tonträger-Datenbank-Migration aus DBase, hallo anderer Thomas;-) externer Link zu einer Einführung von James Hoffmann
- Mittlerweile gibt es eine Rezension zu einer netten SQL-Einführung in Manga-Form bei Slashdot (engl.). (05.05.2009)
- Eine Einführung von Mike Hillyer in die Datenbank-Normalisierung und INNER/OUTER-JOINS: Link in die Mysql-Bücherei (engl.)
- Database eLearning von Dr. Gordon Russell
- Regeln von E. F. Codd von Paul Litwin
- mysql-admin -Sehr gutes Tool, um wirklich alle Administrationsaufgaben an einer MySQL-Datenbank durchführen zu können. Leider fehlen Funktionen, um die eigentlichen Daten zu bearbeiten, völlig.
- PHPMyAdmin - Webapplikation für MySQL, weitverbreitet und ausgereift
- Wer nicht fies vor Java ist, kann mit Squirrel-SQL passable Datenbankzugriffe zu den berüchtigsten Datenbankservern bewerkstelligen und bleibt Plugin-fähig: http://squirrel-sql.sourceforge.net/.
Mir sind Bindungen zu JDBC-ODBC, MSSQL, MySQL, PostGreSQL, Hibernate3, DB2 bekannt -- MarkusMonderkamp - http://www.maatkit.org/ - Analyse und Performancesteigerungen mit Profiler für MySQL, PostgreSQL, Memcached und einer wachsenden Anzahl neuerer Datenbanken, vorgestellt im Admin Magazin 06/2010 (01.02.2011)
- http://dbeaver.jkiss.org/ - Ein sehr gutes SQL-Tool, das auf der Eclipse-Plattform basiert. Wer viel mit Eclipse arbeitet, fühlt sich sofort zu Hause. Leider kein visueller Designer.
- http://www.squirrelsql.org/ - War wohl lange Jahre stand der Technik und wird deshlab noch in allen Listen genannt. Ich persönlich finde die Swing-Oberfläche etwas veraltet und nicht so gewöhnt wie das SWT/Eclipse-Feeling von DBeaver. Der Query-Designer ist gruselig und eigentlich nur für ganz einfache Dinge zu gebrauchen.
- http://sqleo.sourceforge.net/ - Ein ordentliches Programm für die Grundfunktionen. Was den visuellen Query-Editor anbetrifft, allerdings das leistungsfähigste Tool im Open Source Bereich. Das einzige, das wirklich auch nicht-triviales SQL wieder zurück in einen Graphen übersetzen kann.
- https://www.heidisql.com/screenshots.php - Sieht, ohne es installiert zu haben, ganz gut aus. Hat keinen visuellen Query Designer
- Nicht frei, aber in einer kostenlosen Version verfügbar (der zwar wichtige Funktionen fehlen, aber man kann den Query ja dafür auch mal umkopieren in ein anderes Tool).
- http://www.activedbsoft.com/overview-querytool.html - Enthält einen visuellen Query-Designer, den ich aber nicnt ausprobiert habe. Erlaubt in der freien Version keinen Export der Daten z.B. in CSV
- DBVisualizer - Sieht auch gut aus, enthält einen Query Designer. Wichtige Funktionen wie der Export gibts aber nur gegen Geld und Sourcecode schon mal gar nicht
Integrierte Bearbeitung von Daten #
Dies sind Programme, die in Ihrer Funktion Vorbildern wie "MS Access" nachempfunden sind. Man kann Verknüpfungen zwischen Tabellen definieren und dann ein Formular erzeugen, mit dem man die Daten editieren kann sowie Reporte ausdrucken. Durch Skripting z.B. innerhalb von Formularen etc. können sogar einfache Applikationen mit eigener Geschäftslogik erstellt werden.
- KEXI - Teil des KOffice-Projekts, ich habe jedoch keinen richtigen Report-Generator gefunden.
- KNODA - KDE-Applikation, sehr ansprechend, mit Reportgenerator
- Openoffice Base
- Rekall (habe ich noch nicht getestet)
- iReport von Thomas Bayen und Markus Monderkamp im November 2008 getestetes grafisches Datenbank-Report Werkzeug, das alle Reportmöglichkeiten von Jasper-Reports u.ä. Jasper-Produkte unterstützt.
Mit Openoffice Base habe ich mich vor einiger Zeit mal beschäftigt. Es leidet stark darunter, daß man vor einigen Jahren die Datenbank aus Openoffice herausgerissen hat und das Thema seitdem nur stiefmütterlich behandelte. Inzwischen (seit OO 2.1, glaube ich) ist wieder eine Datenbank integriert. Der Reportgenerator ist jedoch immer noch ein Graus und auch der Formulareditor hat mich zum Wahnsinn getrieben. Intuitiv gehts nicht und an Doku mangelt es hochgradig. :-(
Mit Knoda habe ich innerhalb von einer Stunde alles hinbekommen, was ich mir vorgestellt hatte. Ich erkläre es daher zur Empfehlung der Redaktion. -- ThomasBayen
Daten-Integration und ETL #
Es gibt spezielle Tools, um Daten zwischen verschiedenen Formaten, Quellen und Datenbanken zu integrieren. Wenn man Daten aus verschiedenen Quellen sammelt (extraction), anpasst (transformation) und dann in eine Datenbank lädt (load), spricht man von einem ETL-Tool. Weitere Aufgaben von Tools zur Data-Integration können aber auch sein, Daten zwischen verschiedenen Formaten oder Datenbanken zu wandeln. Moderne Tools bieten dabei vielfältige Möglichkeiten, einen solchen Prozeß graphisch darzustellen, per Drag & Drop zu erzeugen, zu debuggen und ihn schließlich auch als eigenständiges Programm zur Automatisierung zur Verfügung zu stellen.
Ein gutes Open Source Programm zu diesem Thema, mit dem ich ein wenig Erfahrung habe, ist Talend Open Studio.
Ausgabe von Daten #
Für die reine Ausgabe von Daten aus Datenbanken kann man obengenannte integrierte Programme versuchen. Hier im Wiki gibt es aber auch einige Seiten über Reportgeneratoren und Template-Engines. Hierzu mehr auf der Seite Templates.
Tips hier im Wiki #
Wiki-Seiten über Datenbanken und Datenbank-Programmierung in diesem Wiki:
BTrieveDatenbank
Datenbank
EclipsePlugin.BIRT
EclipsePlugin.Datatools
JDBC
JDBM2
JNDI
JPApi
JasperReports
JasperServer
JavaContentRepository
JavaHibernate
LAMP
LiquiBase
MySQL
NoSQLDatenbanken
OpenJPA
OpenOffice
PHPMyAdmin
Pg_catalog
PostgreSQL
PostgresVolltext
RebolMysqlExample1
SQLiteDB
Talend Open Studio
TomcatJNDI