In die passende Schublade
Kundenanschriften verteilen sich gleichmäßig auf EMails, Briefe und Faxe im gesamten Netzwerk, die digitalen Urlaubsfotos liegen verstreut in irgendwelchen Verzeichnissen - irgendwann muß eine Datenbank her, um Ordnung ins Infochaos zu bringen. Doch welcher Datenmanager paßt am besten?
`Wir brauchen eine Datenbank´, beschließt der Chef - und der Untergebene kommt ins Schwitzen. Denn wer sich auf dem Datenbankenmarkt nicht bereits auskennt, hat es schwer, sich angesichts der diffusen Verwendung des Begriffes `Datenbank´ überhaupt nur einen Überblick zu verschaffen. Einführende Bücher beschränken sich auf einzelne Produkte oder bestimmte Datenbanktypen; anspruchsvollere Literatur erschlägt den Einsteiger mit Attributen wie `relational´ oder `Volltext´, Spezialbegriffen wie `Integrität´ oder kryptischen Akronymen wie `ODBC´. Der verunsicherte Einsteiger kauft im Zweifelsfall Microsofts Office-Datenbank Access, auch wenn ein anderer Datenverwalter seinen Anforderungen oft besser entsprechen würde - ganz getreu dem Motto: `Das nimmt ja jeder, das kann so falsch nicht sein.
Wir grenzen in diesem Artikel die wichtigsten Datenbanktypen voneinander ab. Der Kasten zeigt einige Alternativen zu den weitverbreiteten relationalen Desktop-Datenbanken auf. Das Glossar erläutert die wichtigsten Schlagworte des Datenbankkauderwelschs. Der folgende Beitrag vergleicht die Produkte der Access-Klasse, und der Artikel in c't 4/99 auf Seite 142 zeigt anhand eines praktischen Beispiels, wie man eine relationale Datenbank maßschneidert.
Tabellenführer
Das wichtigste Kriterium für die Auswahl einer Datenbank ist das zugrundeliegende Datenmodell. Es beschreibt, wie die Info-Manager intern Daten organisieren. Am verbreitetsten sind relationale Datenbankmanagementsysteme wie Access oder der Oracle-SQL-Server. Sie speichern Daten in Tabellen, oder, mathematisch ausgedrückt, Relationen. Der Erfolg der relationalen Datenbanken hat viele Gründe: So sind Tabellen sehr anschaulich. Außerdem gibt es mit der Structured Query Language (SQL) eine einheitliche Abfragesprache, die es einem Benutzer leicht macht, sich mit anderen relationalen Datenverwaltern vertraut zu machen, wenn er bereits ein relationales System kennt (siehe auch den Kasten in c't 4/99 auf Seite 147).
Relationale Datenbanken eignen sich für alle Arten von Informationen, die sich mit Hilfe von Tabellen modellieren lassen, also Buchungen, Lagerbestände, Titel und Interpreten einer CD-Sammlung et cetera. Eine komplexe Welt, die sich nicht mit einer Tabelle darstellen läßt, modellieren relationale Datenbanken durch miteinander verknüpfte Tabellen. So verwaltet ein Unternehmen beispielsweise seine Mitarbeiter und Abteilungen in zwei miteinander verwobenen Tabellen. Die Verknüpfung zwischen mehreren Datensätzen stellen dabei spezielle Felder, die sogenannten Schlüsselfelder, her. Schlüsselfelder erlauben es auch, eindeutig auf bestimmte Datensätze zuzugreifen.
Desktop vs. Client/Server
Am Beispiel der relationalen Datenbanken seien einige essentielle Begriffe der Datenbankwelt erklärt, die häufig durcheinandergeworfen werden: Die Datenbank, das Datenbankmanagementsystem (DBMS), die Datenbankanwendung und die Datenbankdatei (auch c't verkürzt in der Regel das Monsterwort `Datenbankmanagementsystem´):
- Eine Datenbank ist nichts weiter als eine Sammlung von Daten, bei relationalen Datenbanken etwa in Form von Tabellen.
- Eine Datenbankanwendung ist ein Programm, mit dem Benutzer auf seine Daten zugreift, also etwa eine CD-Verwaltung. Im Unternehmen greifen beispielsweise das Rechnungswesen und der Vertrieb eines Unternehmens mit unterschiedlichen Anwendungen auf eine Bestellungsdatenbank zu.
- Das Datenbankmanagementsystem (DBMS) ist das Programm, das eine (oder mehrere) Datenbank(en) verwaltet, also beispielsweise Access oder FileMaker.
- Die Datenbankdatei(en) sind die physischen Dateien, in denen das Datenbankmanagementsystem eine Datenbank abspeichert.
Bei einer Desktop-Datenbank läuft das Datenbankmanagementsystem, beispielsweise Access, mit der jeweiligen Datenbank und der Datenbankanwendung auf dem PC des Anwenders. Spezielle Mechanismen sorgen bei Bedarf dafür, daß auch mehrere Benutzer von verschiedenen Rechnern aus zeitgleich auf dieselbe, im Netz befindliche Datenbankdatei zugreifen können.
Bei einer Desktop-Datenbank läuft das Datenbankmanagementsystem, beispielsweise Access, mit der jeweiligen Datenbank und der Datenbankanwendung auf dem PC des Anwenders. Spezielle Mechanismen sorgen bei Bedarf dafür, daß auch mehrere Benutzer von verschiedenen Rechnern aus zeitgleich auf dieselbe, im Netz befindliche Datenbankdatei zugreifen können.
Bei Client/Server-Anwendungen verteilen sich die Aufgaben anders. Das Datenbankmanagementsystem läuft auf einem Server-Rechner im Netz und hat den exklusiven Zugriff auf die Datenbankdatei(en). Bei einem relationalen Datenbank-Server spricht man auch von einem SQL-Server, bei dem Client-Programme per Abfragesprache SQL Daten abrufen und speichern. Die Datenbankanwendung kann auf dem Client oder auf dem Server laufen oder sich auf beide verteilen.
Allerdings gliedert sich die Datenbankenwelt nicht scharf in Desktop- und Client/Server-Systeme - häufig ein weiterer Anlaß zur Verwirrung: Auch ein Datenbankmanagementsystem, das wie Access eigentlich eher eine Desktop-Datenbank ist, wird in Client/Server-Anwendungen als Server-System angewandt. Gleichzeitig kann ein auf dem lokalen PC installiertes Access in einem Client/Server-System einen SQL-Server abfragen und damit die Rolle des Clients übernehmen.
SQL-Server bilden in den meisten Unternehmen das Rückgrat der Datenverarbeitung: Sie sind schnell und vor allem zuverlässig. Gerade Branchen, in denen schon ein wenige Minuten dauernder Ausfall Millionenschäden bedeuten würde - etwa Banken - setzen sie ein. Nicht minder beliebt sind die kleinen Verwandten auf dem Desktop, die in vielen kleinen und mittleren Unternehmen die Daten verwalten.
Die nächste Generation
Nichtsdestotrotz verstärkt sich der Trend, nach Alternativen für relationale Datenbanken zu suchen. Objektorientierte Datenbanken treten an, die bislang dominierenden Tabellenführer abzulösen. Argumente für OO-Datenbanken gibt es viele: So erlauben sie es, Informationen viel präziser abzubilden: Eine objektorientierte Datenbank speichert beispielsweise eine elektronische Schaltung gemäß ihrer Struktur ab - ganze Teilschaltungen lassen sich so mit einer einfachen Operation herauslösen und durch andere ersetzen.
Abgesehen davon sind objektorientierte Programmiersprachen in der Software-Entwicklung längst Standard. Um Objekte in relationalen Datenbanken abzuspeichern, müssen diese erst `plattgeklopft´, das heißt in das relationale Format umgewandelt werden. Anders bei Objektdatenbanken: Sie speichern Objekte so, wie sie der Programmierer benutzt.
Neben verschiedenen Herstellern, die reine Objektdatenbanken herstellen, unter anderem Poet, Versant oder ObjectStore (siehe auch [1], [6]) versuchen auch die Hersteller relationaler Systeme, ihre Produkte um objektorientierte Fähigkeiten zu erweitern. Das sich die objektorientierten Datenbanken noch nicht durchsetzen können, liegt vor allem daran, daß Standards fehlen, zum Beispiel für eine Abfragesprache wie SQL. Eine objektorientierte Desktop-Datenbank ist noch nicht in Sicht. (jo)
Literatur
[1] Dr. Gerd Wagner: Jenseits von Schema F, Datenmodelle - Strickmuster für Datenbanken, c't 5/97, S. 276
[2] Ralph Altmann: Digitale Dia-Archive, Bilddatenbanken bringen Ordnung in die digitale Foto- und Grafiksammlung, c't 3/98, S. 114
[3] Beate Majetschak: Organisierte Aussicht, Schnäppchen-Outlook: Starten oder warten?, c't 26/98, S. 192
[4] Volker Weber: Office Neunundneunzig, Office-Pakete für Windows im Praxistest, c't 3/98, S. 88
[5] Raoul Gema: Mit Java durchs Kontor, Java innerhalb der Datenbank, c't 23/98, S. 270
[6] Jörg Becker: Zentrallager, Data Warehouse - zentrale Sammelstelle für Informationen, c't 3/97, S. 284
[7] Thomas Blummer: Objektverwalter, Objektdatenbanken - High-Tech-Spielzeuge oder Zukunftsmodell?, c't 5/97, S. 284
[8] Andreas Meier, Thomas Wüst: Objektorientierte Datenbanken, ein Kompaß für die Praxis, dpunkt Verlag, Heidelberg, ISBN 3-920993-95-0
Glossar Datenbanken
Binary large Object, BLOB: Relationale DBMS setzen BLOBs häufig dazu ein, um Multimedia-Daten, etwa Videos oder Bilder, zu speichern.
Client: In einer Client/Server-Umgebung ein Rechner, der Dienste des Servers in Anspruch nimmt (siehe Kasten).
Datenmodell: Das einer Datenbank zugrundeliegende Datenmodell legt fest, in welcher Form eine Datenbank Informationen darstellt und wie sie darauf zugreift. Beispiele für Datenmodelle sind das relationale oder das objektorientierte Datenmodell.
Metainformationen: Informationen über Informationen, bei Dateien gehört hierzu beispielsweise das Erzeugungsdatum, das Datum der letzten Änderung, das Verzeichnis auf der Festplatte, der Dateiname und der Autor.
Multidimensional: Während ein relationales DBMS und Tabellenkalkulationen Daten in zweidimensionalen Tabellen abspeichern, erlauben es multidimensionale Datenbanken, Daten auch in weiteren Dimensionen zu organisieren. Multidimensionale Datenbanken werden auch OLAP-Datenbanken genannt. Zum Teil basieren OLAP-Datenbanken auch auf RDBMS. Dann spricht man vom relationalen OLAP (ROLAP).
Objektrelational: Relationale Datenbanken, die mit objektorientierten Erweiterungen ausgestattet wurden.
ODBC: Eine von Microsoft als Standard etablierte Teilmenge von SQL.
Online Analytical Processing, OLAP: Geschäftsanalysen auf der Grundlage multidimensionaler Datenmodelle (siehe auch [6]).
Online Transaction Processing, OLTP: Datenverarbeitung mit SQL-Servern.
Objektorientierte Datenbanken, OODBMS: Statt Tabellen, wie sie relationale Datenbanken verwalten, speichern OO-Datenbanken Objekte der objektorientierten Programmierung (siehe auch [7]).
Postrelational: Werbebegriff für OLAP- und OO-Datenbanken.
Schlüssel: Daten, die einen Datensatz eindeutig identifizieren.
Server: Der Server stellt in einer Client/Server-Umgebung anderen Rechnern, den Clients, seine Dienste zur Verfügung.
Skalierbarkeit: Die Möglichkeit einer Datenbank (in der Regel eines Serversystems) mit den Performance-Ansprüchen der Benutzer mitzuwachsen, im Notfall durch den Wechsel auf eine andere Hardware-/Betriebssystemplattform.
SQL: Structured Query Language, die Abfragesprache für relationale Datenbanksysteme.
Transaktion: Abgeschlossene Datenbankaktion, die sich aus mehreren Einzelaktionen zusammensetzen kann. So setzt sich beispielsweise eine Buchung in einer Geschäftsanwendung aus einer Abbuchung und einer Gutschrift zusammen.
Universal Server: Die neuesten Versionen von SQL-Server-Produkten, die auch nichtrelationale Daten beherrschen (Volltext, Video etc.), wird von ihren Herstellern gern auch als `universelle Server´ bezeichnet.
Volltext: Volltextdatenbanken sind darauf spezialisiert, große Mengen von Textdaten zu indizieren. Über den Index erlauben sie die zielgenaue Recherche nach bestimmten Schlagworten oder Kombinationen davon. Internet-Suchmaschinen sind die bekanntesten Vertreter der Volltextdatenbanken.
xBase: Familie von Datenbankprodukten, die durch das einst sehr verbreitete dBase begründet wurde. Das dBase-Dateiformat war lange Zeit ein Quasistandard bei den Desktop-Datenbanken. Auch heute beherrschen es die meisten Anwendungen noch.
Es muß nicht immer Access sein
Bei aller Verbreitung der relationalen Datenbanken - für viele Aufgaben auf Einzelplatz-PC oder in kleinen Büroumgebungen braucht Otto Normalanwender nicht gleich zu einem Programmierwerkzeug der Größenordnung von Access zu greifen. Hier eignen sich einfachere, fertig auf die jeweiligen Anforderungen zugeschnittene Datenverwalter besser. Wer etwa nur Kundenadressen und Termine verwalten will, ist mit einem sogenannten Personal Information Manager (kurz PIM) besser bedient.
Corel bietet beispielsweise mit seinem InfoCentral einen sehr vielseitigen, kostenlosen Verwalter für Termine, Kontakte, Aufgaben und Notizen an. Das Programm existiert zwar nur in einer englischsprachigen Version. Doch wer sich erst einmal an die etwas umständliche Handhabung gewöhnt hat, verfügt mit InfoCentral über ein sehr mächtiges Werkzeug. Auch Outlook, den PIM von Microsoft, gibt´s fast gratis [3]. Der Lotus Organizer erlaubt es, Termine innerhalb eines Teams auszumachen - über das Internet auch zwischen weltweit verstreuten Kollegen - und bietet Synchronisation mit dem PalmPilot.
Textrechercheure ...
Texte haben in der Regel keine Struktur, die sich in das Schema einer Datenbank pressen ließe - unter anderem, weil Texte üblicherweise in den unterschiedlichsten Formaten anfallen: Briefe verfaßt der Anwender mit Word, EMails mit dem Mail-Client, kleinere Notizen schreibt er mit dem Windows-Editor, seine Homepage bearbeitet er mit dem HTML-Editor - typischerweise verteilen sich die betreffenden Dateien und Verzeichnisse auch noch über sämtliche Laufwerke des Rechners oder übers Netzwerk.
Wer diese heterogenen Dateien in einer zentralen Datenbank verwalten wollte, müßte sie jeweils konvertieren und importieren - ein gewaltiger Aufwand. Dafür bekäme er nicht einmal besonders ausgefeilte Volltextsuchfunktionen. Glücklicherweise reichen die Werkzeuge, die die Betriebssysteme anbieten, um Texte überall auf dem PC wiederzufinden, für die meisten Zwecke völlig aus. So erlauben es etwa die Suchfunktionen von Windows 95, 98 und NT, auch den Inhalt von Dateien zu durchsuchen.
Der Anwender sollte den Suchraum allerdings so weit wie möglich mit Metainformationen über die zu findende Datei eingrenzen: Name, Erzeugungsdatum, Verzeichnis et cetera. Windows liest bei einer Abfrage jede in Frage kommende Datei durch, um das Suchwort zu finden. Das kann bei den einigen hundert MByte Daten, die sich heutzutage schnell auf der Festplatte ansammeln, schon mal etliche Minuten dauern - zu lange, wenn man `mal schnell´ was sucht.
Die in MacOS 8.5 eingebaute Suchmaschine Sherlock ist bereits weiter. Sie indiziert alle Dateien auf dem Rechner. Bei einer Suchanfrage greift sie auf den Index zurück und liefert innerhalb von Sekunden die Ergebnisse. Ein Sherlock-ähnlicher lokaler Volltextsucher läßt sich auch für Windows-Rechner (95, 98 und NT) nachrüsten. AltaVista Discovery kommt aus dem gleichen Hause wie die WWW-Suchmaschine und generiert einen Volltextindex von bestimmten Verzeichnissen, der gesamten Festplatte oder des kompletten Netzwerks.
Neben einem Suchknecht für den gesamten Datenbestand auf der Festplatte ist noch ein handlicherer Spezialist nützlich für kleine Notizen oder Textbausteine, die man täglich braucht. Hierfür eignen sich Treepad und ClipCache.
Treepad ordnet Text übersichtlich in einer Baumstruktur an. Mehrere der verwalteten Textschnipsel lassen sich per Hyperlink verknüpfen. ClipCache dient unter anderem als Erweiterung für die Windows-Zwischenablage. Auf Wunsch behält das Programm jeden in den Zwischenspeicher kopierten Text. Solche Textstücke lassen sich mit einem Hotkey versehen, über den sie von jeder Anwendung heraus abrufbar sind. Mac-Anwendern bietet sich die Version ScrapIt Pro an, die das Apple-Album ersetzt und beliebige Dateitypen - darunter Texte, Bilder, QuickTime-Movies - verwaltet.
... und Bilderalben
Ähnlich schlecht wie für heterogene Texte eignen sich relationale Datenbanken in der Regel für Bilder. So erlaubt es beispielsweise Access zwar, Bilder als OLE-Objekte in einer Datenbank abzuspeichern. Aber zum einen bläht dies die Datenbank unverhältnismäßig auf, zum anderen ist hierfür zusätzliche Programmierung notwendig. Auch Bilder organisiert man daher besser mit anderen Programmen. Diese sind zwar keine Datenbanken, die Bilder in einer eigenen Datei speichern. Sie dienen vielmehr als schnelle Betrachter für Bilder, die in ganz normalen Verzeichnissen der Festplatte gespeichert sind - für die meisten Anforderungen reicht dies völlig.
Share-mehr
Neben den bereits empfohlenen Programmen bietet der Share- und Freeware-Markt noch etliche weitere Alternativen. Bekanntestes Beispiel ist das StarOffice [4]: Auch das Paket der Hamburger StarDivision umfaßt einen einfachen Datenknecht, der für viele Zwecke reicht. Darüber hinaus vertreiben Händler wie Pearl oder Topware ältere Versionen etablierter Datenbank-Produkte oder gar komplette Office-Pakete zu einem Spottpreis. So bietet topware die Version 8.0 von SoftMaker Office für 49,95 Mark an, zu der ein einfacher Datenmanager gehört. Die Freeware-Version der Datenbank von SoftMaker Office ist auf 200 Datensätze beschränkt und nicht zu empfehlen.
| Info-Verwalter für den Desktop | |||
| Typ/Name | Adresse: http://... | Plattform | Preis |
| Text | |||
| AltaVista Discovery | discovery.altavista.com/ | Win 95 | kostenlos |
| Treepad | www.treepad.com | Win 9x, NT | kostenlos |
| ClipCache 1.41 | www.freewareguide.de | Win 9x, NT | kostenlos |
| ScrapIt Pro | www.northcoast.com/~jvholder/ | MacOS | 20 $ |
| Bilder | |||
| Ulead PhotoViewer | www.webutilities.com | Win 9x/ NT | kostenlos |
| ThumbsPlus | www.kellydata.de/ | Win 9x/ NT | 129,80 DM |
| PIMs | |||
| InfoCentral | www.corel.com/products/wordperfect/infocentral7/installation.htm | Win 9x | kostenlos |
| Lotus Organizer | www.lotus.de | Win 9x/ NT | 99,90 DM |
| Sonstiges | |||
| SoftMaker Office 8.0 | www.topware.de | Win 3.x, 95, NT | 49,95 DM |
| StarOffice | www.pearl.de | Win 95, 98, NT, OS/2, Linux | kostenlos (79 DM)1 |
| 1CD | |||
(jo)