データベース
データベースとの外部相互作用は、DBMSと接続するアプリケーション・プログラムを介して行われる。アプリケーションは、ユーザーが文字的または視覚的にSQLクエリを実行できるデータベースツールから、情報を格納し検索するためにデータベースを使用するWebサイトまで、多岐にわたる。
XMLデータベースは、構造化されたドキュメント指向データベースの一種で、XML文書の属性に基づいたクエリが可能である。XMLデータベースは、たとえば科学論文、特許、税務申告、人事記録など、非常に柔軟なものから非常に厳格なものまで、データをさまざまな構造を持つ文書の集合として見るのに便利なアプリケーションで主に使用される。
NoSQLデータベースは、多くの場合、非常に高速で、固定化したテーブルスキーマを必要とせず、非正規化(英語版)したデータを格納することで結合操作を回避し、水平スケーリングするように設計されている。
近年、高い分断耐性を備えた大規模分散データベースが強く求められているが、CAP定理によれば、分散システムで一貫性、可用性、分断耐性を同時に備えることは不可能とされている。分散システムは、これら3つの保証のうち、いずれか2つを同時に満たすことはできても、3つすべてを満たすことはできない。そのため、多くのNoSQLデータベースでは、データ整合性のレベルを下げて可用性と分断耐性の両方を保証する、結果整合性という考え方を採用している。
最新のリレーショナルデータベースの一種であるNewSQLは、SQLを使用し、また従来のデータベースシステムのACID保証を維持しながらも、オンライントランザクション処理のワークロード(読み込みと書き込みの両方を伴う)に対して、NoSQLシステムと同じスケーラブルな性能を提供することを目的としている。
リレーショナルモデルでは、正規化の過程によって、そのような内部構造は、論理キーのみで結合された複数のテーブルに保持されたデータで置き換えられた。
たとえば、データベースシステムの一般的な使い方として、ユーザーに関する情報、名前、ログイン情報、さまざまな住所や電話番号を突き止めることがあげられる。ナビゲーショナル方式では、これらのデータはすべて1つの可変長レコード内に格納される。リレーショナル方式では、そのデータは(たとえば)ユーザーテーブル、アドレステーブル、電話番号テーブルに「正規化(normalize)」される。これらの任意のテーブル内には、実際に住所や電話番号が提供された場合のみ、レコードが作成される。
コッドは、(ディスクアドレスではなく)論理的な識別子を使用して行/レコードを識別するだけでなく、アプリケーションが複数のレコードからデータを組み立てる方法も変更した。アプリケーションがリンクを移動して1レコードずつデータを収集することを要求するのではなく、アプリケーションは、宣言型のクエリ言語を使用して(どのようにデータを見つけるかというアクセス経路ではなく)どのようなデータが必要なのかを表現する。データへの効率的なアクセス経路を見つけるのは、アプリケーションのプログラマーではなく、データベース管理システムの責任となった。クエリ最適化(query optimization)と呼ばれるこの過程は、クエリが数学的論理の観点で表現されているという事実に基づいている。
コッドの論文は、バークレー校のユージン・ウォン(英語版)とマイケル・ストーンブレーカーの二人によって着目された。