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?
Antworten:
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.
quelle
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.
quelle