web-dev-qa-db-ja.com

データベースエンジンとは正確には何ですか?

http://en.wikipedia.org/wiki/Database_engine の定義を何度か試しました。

データベースエンジン(または「ストレージエンジン」)は、データベース管理システム(DBMS)が作成、読み取り、更新、削除に使用する基本的なソフトウェアコンポーネントです。 (CRUD)データベースからのデータ。

私が理解していないことは、やるべきことです。データベースが行うことはすべてCRUDではありませんか?

データベースエンジンがこれらの機能を実行する場合、データベースの残りの部分は何をしますか?

14
Lazer

CRUDは、永続ストレージに関連するデータベースに必要な特性を定義するためのものです。データベースエンジンで実行できるすべてのことを説明するものではありません。

比較すると、基本的に車両は輸送に使用される装置です。確かに、この定義は確かに現代の自動車に伴うすべての詳細を含んでいません。

データベースエンジンは複数のユーザーを処理する可能性があります transactionsMVCC(Multiversion Concurrency Control) 、buffers and caches、 ACID(atomicity、一貫性、分離、耐久性) 、およびさまざまな 分離レベル 。読み取りは、メモリ、リモートデータベース、ディスク上の複数のテーブルからデータをプルし、SQLを使用して複数の明示的または暗黙的なコードパスを介してデータを処理し、要求元のアプリケーションに提示します。 createは、ストレージを割り当て、構造をプロビジョニングし、値を割り当て、データを保存する前に独自の処理を実行します。等。

15
Leigh Riffel

一部のデータベースは、ジョブに最も適しているかどうかに応じて、多くのエンジンを実行できます。たとえば、私のアプリケーションの多くは、ほとんどのデータ(キー制約と行レベルのロック)にInnoDBを使用し、セッションデータ(高速で処理量が少ない)にMyISAMを使用し、監査証跡(圧縮と挿入/選択のみ、更新/削除なし)にArchiveDBを使用しています。

データベースソフトウェアの「残りの部分」は、APIまたは端末を介して使用する共通のインターフェースを提供し、複雑なアクション(結合、サブクエリなど)を可能にし、含まれるエンジンのヘルス/ステータスと構成を管理します。エンジンの供給と管理には多くのことがあり、データベースソフトウェアはその複雑さのすべてを隠します。

12
Bryan Agee