データベース
DBMSは、その運用中に、常に数種類のストレージ(メモリや外部ストレージ)にデータベースを常駐させている。データベースのデータと、追加の必要な情報(おそらく非常に大量にある)は、ビット列に符号化される。データは通常、概念レベルや外部レベルでの見え方とは全く異なる構造でストレージ内に存在するが、ユーザーやプログラムが必要とするとき、または必要な情報の追加形式をデータから計算するとき(例: データベースに問い合わせる時)、これらのレベルの再構築を(可能な限り)最適化するような方法で格納される。
DBMSの中には、データの格納に用いる文字エンコーディングを指定できるものがあり、同じデータベースで複数のエンコーディングを使用することができる。
データモデルをシリアル化し、選ばれた媒体に書き込めるようにするために、ストレージエンジンは、さまざまな低レベルのデータベースストレージ構造(英語版)を使用する。性能を向上させるために、インデックス作成などの手法を使用することもある。従来のストレージは行指向であるが、列指向データベースや相関データベース (en:英語版) もある。
データベース・サーバーは通常、大容量のメモリと、安定したストレージ(例: RAIDディスクアレイ)を備えたマルチプロセッサ・コンピュータである。大容量のトランザクション処理環境では、複数台のサーバーと高速チャネルを介して接続されたハードウェア・データベース・アクセラレータも使用される。ほとんどのデータベース・アプリケーション(英語版)の中心にDBMSがある。DBMSは、ネットワークのサポートを組み込んだカスタムのマルチタスク・カーネルを中心に構築されることもあるが、最近のDBMSは通常、これらの機能を提供するために、標準的なオペレーティングシステムに依存している。
DBMSは重要な市場(英語版)を形成しているため、コンピューターやストレージのベンダーは、自社の開発計画にDBMSの要件を考慮に入れていることが多い。
データベースとDBMSは、サポートするデータベースモデル(リレーショナルやXMLなど)、実行するコンピュータの種類(サーバークラスタから携帯電話まで)、データベースへのアクセスに使用するクエリ言語(SQLやXQueryなど)、内部エンジニアリング(性能、スケーラビリティ、障害許容力、およびセキュリティに影響する)によって分類することができる。
プログラマーは、アプリケーション・プログラミング・インタフェース(API)またはデータベース言語を介して、データベース(データソース(英語版)と呼ばれることもある)との相互対話をコーディングする。選択された特定のAPIや言語は、DBMSによって直接的にサポートされるか、またはプリプロセッサまたはブリッジングAPIを介して間接的にサポートされる必要がある。APIの中にはデータベースに依存しないことを目的とするものもあり、ODBCはそのよく知られた例である。その他の一般的なAPIには、JDBCやADO.NETがある。
データベース管理システムは、データベースのデータに対して三層のビューを提供する。
外部レベル(external level)では、エンドユーザーの各グループがデータベース内のデータ構成をどのように見るかを定義する。1つのデータベースは、外部レベルで任意の数のビューを持つことができる。
概念レベル(conceptual level)では、さまざまな外部レベルのビューを、適合性のある単一の大域的ビューに統一化する。概念レベルのビューは、すべての外部ビューを組み立てる。それは、データベースのさまざまなエンドユーザーの範囲外であり、むしろデータベースアプリケーション開発者やデータベース管理者にとって興味対象である。
内部レベル(internal level)または物理レベル(physical level)とは、DBMS内におけるデータの内部編成のことである。これは費用、性能、スケーラビリティ、その他の運用上の事項に関与している。このレベルでは、データの記憶領域配置を扱い、性能を向上させるためにインデックス(索引)などの格納構造を用いる。冗長性に対する性能上の正当性が認められる場合は、一般的なデータから計算された個々のビュー(マテリアライズド・ビュー)のデータを格納することもある。すべての活動において、全体的な性能を最適化するために、すべての外部ビューの性能要件(競合する可能性のある)の間でバランスをとる。
データの概念ビュー(または論理ビュー)および物理ビュー(または内部ビュー)は、通常、1つしかないが、さまざまな外部ビューはいくつでも存在することができる。これにより、ユーザーは、技術的あるいは処理的な視点からではなく、よりビジネスに関連した視点からデータベース情報を見ることができるようになる。
データベースモデルとは、データベースの論理構造を決定するデータモデルの一種で、データをどのように格納、整理、操作するかの根本を規定するものである。データベースモデルの最も一般的な例は、テーブルベースの形式を使用するリレーショナルモデル(またはリレーションを近似したSQL)である。
データベースの一般的な論理データモデルを次にあげる。
ナビゲーショナル・データベース 階層型データモデル ネットワーク型データモデル グラフデータベース(英語版)
リレーショナルモデル
実体関係モデル 拡張実体関係モデル(英語版)
オブジェクトモデル
ドキュメント型モデル
実体-属性-値モデル(英語版)
スタースキーマ
オブジェクトリレーショナルデータベースは、この2つの関連する構造を組み合わせたものである。
物理データモデルを次にあげる。
転置インデックス
フラットファイル
その他、次のようなモデルがある。
多次元モデル
配列モデル(英語版)
多値モデル
特定の種類のデータ用に最適化された特殊モデルがある。
XMLデータベース
セマンティックモデル(英語版)
コンテンツストア
イベントストア(英語版)
時系列モデル