|
Home - Programmieren - Datenbanken - Datenbanksysteme
Hinweis: Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich. Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren. [Druckansicht] [Als E-Mail senden] [Kommentar verfassen] DatenbanksystemeDieser Artikel soll eine Einührung in den allgemeinen Aufbau von Datenbanksystemen bieten. Dabei wird nicht speziell auf ein Produkt, sondern auf den allgemeinen Aufbau eingegangen. DatenbanksystemEin Datenbanksystem (kurz DBS = DataBase System) besteht aus zwei Hauptkomponenten:
DatenbankDie Datenbank ist der Teil eines DBS, in welchem die Daten physisch abgespeichert sind (meist in Form von Tabellen). Neben den eigentlichen Nutzdaten werden auch noch Informationen wie Indizes, Logs und Meta-Daten in der DB abgespeichert. DatenbankverwaltungssystemDas Datenbankverwaltungssystem liefert diverse Unterstützungsdienste und regelt den Zugriff auf die DB. Zusammengefasst hat ein DBMS folgende Aufgaben:
ArchitekturDas DBMS kann vom Programmierer als Blackbox betrachtet werden, d.h. man braucht sich nicht darum zu kümmern, wie ein DBMS aufgebaut ist. Es ist aber dennoch nützlich, wenn man grundlegend über die Arbeitsweise des DBMS Bescheid weiss. Ein DBMS ist vereinfacht ausgedrückt in drei Ebenen unterteilt:
Zum besseren Verständnis eine Darstellung dieser drei Ebenen:
Interne EbeneDie interne Ebene kümmert sich um die physische Abspeicherung der Daten. Weiter ist die Verwaltung des Pufferspeichers auf dieser Ebene angesiedelt. Die kleinsten Einheiten sind dabei sog. Seiten, die von der internen Ebene zwischen dem physischen Datenspeicher (Harddisk) und dem Memory hin und her bewegt werden. Eine weitere wichtige Aufgabe der internen Ebene ist die Sicherung der Datenkonsistenz zwischen Datenspeicher und Memory (Synchronisation). Sollten sich Datenobjekte ändern, so verwaltet die interne Ebene, wie die Speicherseiten verändert werden müssen. Ausserdem hat die interne Ebene die Aufgabe, die Indizes zu verwalten. Konzeptuelle EbeneDie konzeptuelle Ebene befasst sich mit der Abstraktion der Daten. D.h. die Darstellung der Daten, die im physischen Schema vorliegen, wird so angepasst, wie sie der Benutzer haben möchte und umgekehrt. In einem relationalen Datenbanksystem möchte der Benutzer Daten in Form von ganzen Tabellen sehen und nicht in der Form, wie die Daten in der internen Ebene vorliegen. Die konzeptuelle Ebene hat zusammengefasst die Aufgabe, die Daten für die interne/externe Ebene entsprechend darzustellen. Externe EbeneDie Bereitstellung der Daten erfolgt in der externen Ebene durch ein Anwendungsprogramm. Der Benutzer interagiert nur mit der externen Ebene eines Datenbanksystems, die beiden tieferen Ebenen bleiben ihm verborgen. Ablauf einer AbfrageStellt der Benutzer eine Anfrage an ein Datenbanksystem, so sieht dies meistens nicht nach viel Arbeit aus - das Ergebnis erscheint meist schon nach wenigen Millisekunden. Im Datenbanksystem selber werden jedoch viele Operationen durchgeführt. Der Ablauf einer Abfrage kann (stark vereinfacht) wie folgt aussehen:
TransaktionenEine Transaktion ist ein Stapel an SQL-Anweisungen, der vom Datenbanksystem als ganzes abgearbeitet wird. Sämtliche Transaktionen werden von der Datenbank in einem sog. Transaktionsprotokoll geloggt. Tritt in einer SQL-Anweisung innerhalb einer Transaktion ein Fehler auf, so kann mithilfe des Transaktionsprotokolls wieder der Ursprungszustand hergestellt werden. Physische ArchitekturDie Aufgabe eines Datenbanksystems ist es, verschiedenen Benutzern einen Zugriff auf einen Datenbestand über ein Netzwerk zu bieten. Es gibt verschiedene Ansätze, wie dieser Zugriff bewerkstelligt werden kann. Dabei kann zwischen folgenden drei Ansätzen unterschieden werden:
Dabei spielt es keine Rolle, ob sich der Client und der Server physisch auf dem gleichen Rechner befinden oder über ein Netzwerk miteinander verbunden sind. Client/Server ArchitekturDie meisten modernen DBS setzen auf der Client/Server-Architektur auf. Dabei laufen auf dem Client und dem Server zwei unabhängige Prozesse. Die Kommunikation läuft über eine definierte Schnittstelle nach dem Frage-Antwort-Prinzip. Der Server bietet den Clients also einen Dienst an, die Clients nehmen diesen in Anspruch. Der Vorteil an dieser Architektur ist derjenige, dass der Server den Datenbestand selbständig verwaltet und somit mehrere Clients über den Server auf diesen Datenbestand zugreifen können. Client und Server können auch auf dem gleichen Rechner laufen. Auch hier spricht man von einer Client/Server-Architektur, da der Client- und der Serverprozess nach wie vor selbständig agieren. In der Regel wird der Serverprozess aber auf einen leistungsstarken Rechner gelegt, der sonst keinen Client-Aufgaben nachkommen muss und dementsprechend schneller läuft.
Beispiele für Client/Server-DBS sind:
File/Server ArchitekturBei einer File/Server-Architektur agiert ein Rechner zugleich als Client und als Server, es liegt keine physische Trennung vor. Mit anderen Worten; ein File/Server-DBS greift direkt auf den Datenbestand zu. Dieser Datenbestand kann entweder lokal, oder im Netzwerk auf einem anderen Rechner liegen. Die Aufgabe, den Datenbestand zu verwalten kommt also nicht wie bei der Client/Server-Architektur dem Serverprozess zu, sondern wird direkt von einem Datenbanktreiber übernommen. Die Datenbanktreiber können verwendete Datensätze mit Locks versehen. Ein Mehrbenutzerbetrieb ist also grundsätzlich möglich, jedoch nicht gerade performant. File/Server-DBS eignen sich eher für die Verwendung von einem einzigen Benutzer.
Beispiele für File/Server-DBS sind:
Hostbasierte SystemeEin hostbasiertes DBS besteht aus zwei Komponenten; dem Host und dem Terminal. Wie bei der Client/Server-Architektur greift hier der eine Rechner (Terminal) über den anderen Rechner (Host) auf den Datenbestand zu. Der Unterschied ist jedoch der, dass der Client- und der Serverprozess auf dem Host laufen, das Terminal dient nur zur Ein- und Ausgabe der Daten. Man spricht auch gelegentlich von dummen Terminals, da diese keinerlei Logik besitzen.
|
Autoren:04150
Artikel:00819 Glossar:04124 News:13569 Userbeiträge:16268 Queueeinträge:05150
Projektsteuerung statt Anwesenheitskontrolle
MONDroid - your monitoring Solution for Android with PRTG-Support Red-Hosting jetzt mit erweitertem Shop-Webhosting-Angebot [Mehr News]
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
|