Datenbanktypen
Im Laufe der Zeit wurden von Softwarefirmen und wissenschaftlichen Instituten eine Vielzahl von Datenbanksystemen entwickelt, denen unterschiedliche Anforderungen und Konzepte zugrunde liegen. In diesem Kurs sollen nach ihrem Betriebskonzept sog. Stand-Alone-Datenbanken, File-Share-Datenbanken und Client/Sever-Datenbanken unterschieden werden. Im Zentrum des Kurses wird das relationale Datenbankkonzept stehen, das in der Praxis eine überragende Bedeutung erlangt hat.
- Stand-Alone-Datenbank
- Sie stellt die simpelste Form einer Datenbank dar, die nur jeweils
von einem Benutzer aufgerufen werden kann. Solche Datenbanken brauchen
sich weder darum zu kümmern, dass mehrere Benutzer innerhalb eines
Netzwerkes gleichzeitig auf den selben Datensatz zugreifen wollen (Multi-User-Probleme),
noch um ausgefeilte Zugangsberechtigungen für unterschiedliche Benutzergruppen
zu kümmern. Sie ist lediglich dazu da, von einem Benutzer über
das immer gleiche Programm angesteuert zu werden. Typische Beispiele
dafür sind Adresskarteien, elektronische Telefonbücher, Buchhaltungsprogramme
etc. die mit dBase, Access, Filemaker, FoxPro, Paradox oder ähnlichen
Programmen erstellt wurden und ihrem Benutzer auf einfache Weise einen
mehr oder weniger guten elektronischen Karteikasten zur Verfügung
stellen. Mit „echten Datenbanken“ können sich diese
Implementierungen etwa so vergleichen wie ein Adressbuch mit einer Zentral-Bibliothek.
- File-Share-Datenbank
- Im Gegensatz zu einer Stand-Alone-Datenbank können auf eine File-Share-Datenbank
innerhalb eines Netzwerkes mehreren Benutzer gleichzeitig auf denselben
Datenbestand zugreifen. Innerhalb eines Netzwerkes wird der jeweilige
Datenbestand „quasi als Datei“ an einer Stelle allen berechtigten
Nutzern zur Verfügung gestellt, die von ihren jeweiligen Workstations
aus, auf diese Datenbank zugreifen können. Der Zugriff auf die Datenbank
erfolgt dabei über ein spezielles „database engine“ genanntes
Programm-Modul, das im Gegensatz zu Client/Server-Datenbanken nicht nur
einmal auf dem Server vorhanden sein muss, sondern auf jeder beteiligten
Arbeitsstation ausgefürt wird. (Die Datenbank liegt wohl auf dem
Server, jedoch hat dieser bezüglich der Verwaltung dieser Datenbank
keine eigene Intelligenz. Die gesamte Intelligenz liegt im Wesentlichen
separat auf jeder einzelnen Workstation.)
Greift ein Benutzer auf den Datenbestand zu, so wird in der Regel der gesamte Datenbestand zunächst auf die jeweilige Arbeitsstation übertragen, dort Satz für Satz ausgewertet und – bei Änderungen – anschließend wieder auf den Server zurückgeschrieben. Dieses Konzept ist wohl softwaretechnisch einfach zu realisieren, führt aber bei größeren Datenbeständen oder vielen Benutzern zu unzumutbaren Zeitverzögerungen. Bei konkurrierenden Zugriffen lassen sich dabei nur sehr ineffiziente Mechanismen zur Wahrung der operationalen Integrität realisieren, so dass häufig große Datenbereiche so lange gesperrt werden müssen, bis der lokale Client endlich „zu Potte gekommen ist“. (Häufig bleibt z.B. die gesamte Artikeldatei so lange für alle anderen Benutzer gesperrt, bis diese vom ersten Benutzer wieder auf den Server zurückgeschrieben und freigegeben wird.)
Solche Datenbanken sind häufig preisgünstige Lösung für Anwendungen mit kleineren Datenbeständen und wenigen Nutzern, wie z.B. Arztpraxen, Steuerberater, Ingenieurbüros.
- Client/Server-Datenbank
- Solche Datenbanken sind die „S-Klasse“ und genügen
höchsten Ansprüchen.
(Das gilt durchaus auch – mit Ausnahme von MySQL - für die
Preise.)
Der Kern einer solchen Datenbank ist ein sog. Datenbankserver (Softwaresystem), der auf einem bestimmten und Leistungsstarken Rechner innerhalb eines Netzwerkes läuft. Dieser Server kapselt die gesamte Datenbank und bietet allen Benutzern eines Netzwerkes seine Dienste an. Programme, für welche der Server etwas tun soll, (diese werden Clients genannt,) greifen nicht wie bei einer File-Share-Datenbank selbst auf die Daten zu, sondern wenden sich mit Ihren Wünschen lediglich an den Server, der den gesamten Datenzugriff selbständig erledigt und dem jeweiligen Client anschließend lediglich eine entsprechende Rückmeldung gibt.
Die Datenverwaltung ist hier vom Zugriff konsequent getrennt. Die Clients wenden sich lediglich an die standardisierte Schnittstelle des Servers. Wo und wie der Datenbankserver seine Daten verwaltet ist für die Clients transparent.
Client/Server-Datenbanken bieten viele Sicherheits-, Leistungs- und Flexibilitätsvorteile, erfordern allerdings auch die Betreuung durch einen Datenbankadministrator. Die Produkte aus diesem Bereich haben Namen wie Oracle, DB2, MS-SQL-Server, Informix oder MySQL.