www.wikidata.de-de.nina.az
Eine Datenbank Engine oder Speicher Engine ist die zugrundeliegende Softwarekomponente die ein Datenbankverwaltungssystem DBMS engl Data Base Management System verwendet um Daten einer Datenbank zu erstellen zu lesen zu aktualisieren und zu loschen Die meisten Datenbankverwaltungssysteme besitzen ihre eigene Programmierschnittstelle API die es dem Benutzer erlaubt die darunterliegende Engine zu verwenden ohne den Umweg uber die Benutzeroberflache des DBMS gehen zu mussen Der Begriff Datenbank Engine wird haufig austauschbar mit Datenbank Server oder Datenbankverwaltungssystem verwendet Datenbankinstanz bezieht sich auf die Prozesse und Speicherstrukturen der laufenden Datenbank Engine Inhaltsverzeichnis 1 Speicher Engines 2 Entwurfsuberlegungen 2 1 Datenbankspeicherhierarchie 2 2 Datenstrukturen 2 3 Datenorientierung und Gruppierung 2 4 Datenbankindizierung 3 Siehe auch 4 Einzelnachweise 5 WeblinksSpeicher Engines BearbeitenViele moderne DBMS unterstutzen mehrere Speicher Engines innerhalb desselben Datenbanksystems Als Beispiel unterstutzt MySQL sowohl InnoDB als auch MyISAM Viele Speicher Engines unterstutzen Transaktionen Name Lizenz TransaktionenAria GPL nbsp NeinBlitzDB GPL nbsp NeinFalcon GPL nbsp JaInnoDB GPL nbsp JaMyISAM GPL nbsp NeinInfiniDB CPL nbsp NeinTokuDB GPL nbsp JaWiredTiger GPL nbsp JaXtraDB GPL nbsp JaRocksDB BSD nbsp JaWeitere Engine Typen sind eingebettete Databank Engines In Memory Datenbank EnginesEntwurfsuberlegungen BearbeitenEine Datenbank ist bis auf triviale Anwendungen wie z B bei einem Haushaltsbuch speicherintensiv Das bedeutet meist dass der Inhalt einer Datenbank nur in kleineren Stucken Fragmenten von einem Rechnersystem bearbeitet werden kann Hier kommt es auf eine sinnvolle Optimierung des Umgangs mit den Fragmenten an Fragmentgrosse Anzahl gleichzeitig bearbeiteter Fragmente Verteilung der Fragmente auf unterschiedliche Speicherorte und medien usw Datenbankfragmente werden im Datenbankspeicher in Datenstrukturen und Gruppierungen angelegt die sowohl speichereigene Merkmale z B Clustergrossen bei Festplatten als auch effektive Algorithmen zur Manipulation von Daten vorteilhaft nutzen In der Regel ist der Speicher selbst so konzipiert dass er die Anforderungen verschiedener speicherintensiver Anwendungen einschliesslich Datenbanken erfullt Ein DBMS nutzt im Betrieb oft mehrere Speicherarten gleichzeitig z B Arbeitsspeicher und persistenten Speicher wie Festplatten Im Prinzip kann der Datenbankspeicher als linearer Adressraum betrachtet werden in dem jeder Datensatz eine eindeutige Adresse besitzt In der Praxis wird nur ein sehr kleiner Prozentsatz der Adressen direkt verwendet da sie ebenfalls Speicher benotigen Auf die meisten Daten wird indirekt zugegriffen Dies kann mittels Verschiebeberechnungen Index Abstand von einem Referenzpunkt geschehen oder mit Datenstrukturen die unter Verwendung von Zeigern Zugriffspfade auf alle benotigten Daten in effektiver Weise definieren Ein Beispiel hierfur sind Bayer Baume Datenbankspeicherhierarchie Bearbeiten Wahrend des Betriebes befindet sich eine Datenbank gleichzeitig in unterschiedlicher Speichertechnik die eine Speicherhierarchie bildet Aufgrund der Architektur heutiger Rechner befindet sich der grosste Teil der Datenbank die das DBMS beherbergt teilweise repliziert in fluchtigem Speicher Daten die verarbeitet werden sind im Prozessorregister oder Prozessor Cache abgelegt Diese Daten werden aus dem Arbeitsspeicher gelesen bzw dorthin geschrieben ublicherweise uber den Speicherbus Der Arbeitsspeicher ubermittelt Daten an externe Speicher ublicherweise uber Standard Speicherschnittstellen oder das Netzwerk z B Fibre Channel iSCSI Ein Speicherverbund hat ublicherweise wiederum eine eigene Speicherhierarchie von einem schnellen Cache der aus fluchtigem und schnellem DRAM besteht und wieder uber Standardschnittstellen mit Laufwerken moglicherweise mit unterschiedlichen Geschwindigkeiten verbunden ist wie SSDs und magnetischen Plattenlaufwerken nicht fluchtig Die Laufwerke konnen mit Magnetspeicherbandern verbunden sein auf denen ublicherweise die am seltensten benotigten Teile einer grossen Datenbank abgelegt sind oder Generationen von Datenbanksicherungen Es besteht haufig ein Zusammenhang zwischen Speichergeschwindigkeit und Preis wobei schneller Speicher noch dazu ublicherweise fluchtig ist Datenstrukturen Bearbeiten Eine Datenstruktur ist ein abstraktes Konstrukt das Daten in wohldefinierter Weise ablegt Eine effiziente Datenstruktur ermoglicht schnellen Zugriff und Veranderung der Daten Dieser Zugriff kann das Einfugen Loschen Andern und Abfragen von Daten auf verschiedene Weisen beinhalten Bei bestimmten Operationen kann ein bestimmter Datenstrukturtyp geeignet sein bei anderen hingegen nicht Ein Datenstrukturtyp wird bei der Entwicklung des DBMS danach ausgewahlt wie gut er fur die Art der Daten die er beinhaltet und die darauf anzuwendenden Operationen geeignet ist Bei der Auswahl der Datenstruktur fur eine bestimmte Aufgabe wird ebenfalls die Art des Speichermediums auf dem sie abgelegt wird berucksichtigt z B Zugriffsgeschwindigkeit minimale Grosse der zuzugreifenden Speicherblocke usw Einige DBMS bieten Datenbankadministratoren die Flexibilitat um zwischen verschiedenen Datenstrukturen die fur die Nutzerdaten unter Leistungsaspekten geeignetste auszuwahlen Manche Datenstrukturen besitzen auswahlbare Parameter um die Datenbankleistung abzustimmen Datenbanken konnen Daten in vielen unterschiedlichen Datenstrukturtypen ablegen 1 Ubliche Beispiele sind die folgenden sortierte unsortierte Einfachdateien Hashtabellen B Baume ISAM HeapsDatenorientierung und Gruppierung Bearbeiten Im Gegensatz zur herkommlichen Zeilenorientierung konnen relationale Datenbanken auch spaltenorientiert oder korrelational organisiert sein Im Allgemeinen werden wesentliche Leistungsverbesserungen erreicht indem unterschiedliche Arten von Datenbankobjekten die fur gewohnlich zusammen verwendet werden im Speicher in raumlicher Nahe gruppiert werden Dies erlaubt es die benotigten zusammenhangenden Objekte aus dem Speicher mit einer minimalen Anzahl an Eingabeoperationen teilweise erheblich zeitaufwandig zu erhalten Sogar bei In Memory Datenbanken bietet Gruppierung Leistungsvorteile durch die gemeinsame Verwendung grosser Puffer fur Eingabe Ausgabe Operationen im Speicher mit ahnlichem Ergebnisverhalten Zum Beispiel kann es vorteilhaft sein einen Datensatz Artikel im Lager mit allen seinen jeweiligen Bestellung Datensatzen zu gruppieren Die Entscheidung ob bestimmte Objekte gruppiert werden oder nicht hangt von den Verwendungsstatistiken des Objektes der Objektgrosse Puffergrossen Speichertypen usw ab Datenbankindizierung Bearbeiten Indizierung ist eine Methode die manche Speicher Engines verwenden um die Datenbankleistung zu erhohen Die vielen Arten an Indizes teilen die gemeinsame Eigenschaft dass sie die Notwendigkeit verringern beim Ausfuhren einer Abfrage jeden Eintrag zu untersuchen In grossen Datenbanken kann dies die Abfragezeit um Grossenordnungen verringern Die einfachste Form eines Indexes ist eine sortierte Liste von Werten die mittels binarer Suche verarbeitet wird und einen beigefugten Verweis auf die Position des Datensatzes besitzt analog zum Index am Ende eines Buches Dieselben Daten konnen uber mehrere Indizes verfugen z B kann eine Datenbank mit Angestellten sowohl nach Nachnamen als auch nach Einstellungsdatum indiziert sein Indizes beeinflussen die Leistung aber nicht die Ergebnisse Datenbankdesigner konnen daher Indizes hinzufugen oder entfernen ohne die Geschaftslogik anpassen zu mussen Dies reduziert die Wartungskosten wenn der Datenbankumfang und die Anzahl der Abfragen wachsen Indizes verbrauchen zusatzlichen Platz in der Datenbank und mussen nach jeder Datenanderung aktualisiert werden Indizes konnen daher den Datenzugriff beschleunigen verlangsamen aber die Datenwartung Diese beiden Eigenschaften bestimmen ob die Vorteile eines Indexes seine Nachteile aufwiegen Siehe auch BearbeitenBtrieve s Micro Kernel Datenbank Engine Berkeley DB c treeACE Datenbank Engine FLAIM Datenbank Engine Microsoft Jet Datenbank Engine MySQL Cluster auf der NDB Speicher Engine von MySQL NuoDBEinzelnachweise Bearbeiten Lightstone Teorey Nadeau Physical Database Design 2007 ISBN 0 12 369389 6 Weblinks Bearbeitenhttp dev mysql com tech resources articles storage engine part 3 html MySQL Administrator s Bible Chapter 11 Storage Engines Abgerufen von https de wikipedia org w index php title Datenbank Engine amp oldid 231734024