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)

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.
Bei Kexi fehlte völlig der Reportgenerator. Den scheinbar dazugehörigen Generator "Kugar" konnte ich nicht zur Zusammenarbeit mit einer Datenbank überreden. Überhaupt halte ich von einer integrierten Lösung hier mehr, weil man seine Reporte ja auch auf vorhandene Views und Querys anwenden will. Vielleicht ist das Ganze innerhalb von "KOffice" besser integriert, das habe ich für den Test nicht komplett installieren wollen.

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

Gute Übersicht, meinen Glückwunsch! -- MarkusMonderkamp

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:

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-17) was last changed on 27-Oct-2012 11:50 by ThomasBayen