Was genau ist ein Datenbankmodul?


12

Ich habe die Definition auf http://en.wikipedia.org/wiki/Database_engine mehrmals durchgearbeitet:

Ein Datenbankmodul (oder "Speichermodul") ist die zugrunde liegende Softwarekomponente, mit der ein Datenbankverwaltungssystem (DBMS ) Daten in einer Datenbank erstellt, liest, aktualisiert und löscht .

Was ich nicht verstehe, ist, was noch zu tun ist, ist CRUD nicht alles, was die Datenbanken tun?

Was macht der Rest der Datenbank, wenn das Datenbankmodul diese Funktionen ausführt?


Eine direkte Antwort auf die fett gedruckte Frage ( was macht der Rest der Datenbank? ) Finden Sie in Bryans Antwort. Weitere Informationen zur Funktionsweise einer Datenbank-Engine neben CRUD finden Sie in Leighs Antwort.
Nealmcb

Antworten:


14

CRUD soll die Merkmale definieren, die für eine Datenbank erforderlich sind, wenn es um dauerhaften Speicher geht. Es ist nicht dazu gedacht, alles zu beschreiben, was mit einem Datenbankmodul möglich ist.

Grundsätzlich ist ein Fahrzeug ein Transportmittel. Diese Definition enthält zwar nicht alle Details eines modernen Automobils.

Eine Datenbank-Engine kann mehrere Benutzer, Transaktionen , MVCC (Multiversion Concurrency Control) , Puffer und Caches, ACID (Atomicity, Consistency, Isolation, Durability) sowie verschiedene Isolationsstufen verarbeiten . Bei einem Lesevorgang werden möglicherweise Daten aus dem Speicher, aus entfernten Datenbanken und aus mehreren Tabellen auf der Festplatte abgerufen, die mithilfe von SQL über mehrere explizite und / oder implizite Codepfade verarbeitet werden, um sie der anfordernden Anwendung zu präsentieren. Ein Create kann Speicher zuordnen, Strukturen bereitstellen, Werte zuweisen und seine eigene Verarbeitung ausführen, bevor Daten gespeichert werden. Etc.


Dies ist eine sehr kompakte und dennoch vollständige Antwort. +1 !!!
RolandoMySQLDBA

Übrigens: Schöne Analogie zwischen Fahrzeug und Fahrzeugtyp.
RolandoMySQLDBA

Meiner Meinung nach werden Transaktionen, ACID-Garantie, Isolationsstufen, Parallelitätskontrolle, Puffer und Caches vom Datenbankmodul selbst verwaltet. Warum sage ich das? ... Check out this linux.org/threads/an-introduction-to-mysql-storage-engines.4220
Shatu

@Leigh, Ist Parallelität (mangels) nicht ein Merkmal der Speicher-Engine und nicht des DBMS? Wenn es eine Funktion des DBMS ist, warum konnte MariaDB / MySQL dann keine Transaktionen für bestimmte Speicher-Engines wie MyISAM ausführen?
Pacerier

@Pacerier - Dies kann für Systeme zutreffen, die eine Trennung zwischen DBMS und Speicher-Engine vornehmen, für andere ist die Unterscheidung bedeutungslos.
Leigh Riffel

11

Einige Datenbanken können viele Engines ausführen, je nachdem, welche für den Job am besten geeignet sind. Beispielsweise verwenden viele meiner Anwendungen InnoDB für die meisten Daten (Schlüsseleinschränkungen und Sperren auf Zeilenebene), MyISAM für Sitzungsdaten (schnell, weniger Verarbeitung) und ArchiveDB für Audit Trail (komprimiert und nur Einfügen / Auswählen, kein Aktualisieren / Löschen).

Der "Rest" der Datenbanksoftware bietet eine gemeinsame Schnittstelle zur Verwendung über APIs oder Terminals, ermöglicht komplexe Aktionen (wie Verknüpfungen, Unterabfragen usw.) und verwaltet den Zustand / Status und die Konfiguration der enthaltenen Engines. Das Füttern und Pflegen eines Motors hat viel zu tun, und die Datenbanksoftware verbirgt all diese Komplexität.


Vielen Dank, dass Sie die Frage in Fettdruck beantwortet haben!
Nealmcb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.