これは素晴らしい質問であり、素晴らしい回答のセットです。議論から欠落していることの1つは、データベースとデータベース管理システム(DBMS)の違いを掘り下げる答えだと思います。Sharkがdictionary.comから提供したデータベースの定義が気に入っています。データベースとDBMSを区別する必要があることを本当に示していると思います。データベースは、「アクセスしやすいように整理された関連データの包括的なコレクション」です。その定義の2番目の部分は、「一般的にはコンピューターで」ということであり、区別がどこにあるかです。コンピュータに保存されている場合、DBMSに保存されている場合と保存されていない場合があります。OSファイルシステムに保存される場合があります。独自のファイルシステムに保存される場合があります。したがって、カードカタログは「データベース」であるというFrustratedWithFormsDesignerに同意します (まあ多分-それは包括的で関連がありますか?それについては後で)。たまたまファイルキャビネットに保存されています。今日の世界では、最も「アクセスしやすいように整理された関連データの包括的なコレクション」されているコンピュータに保存されているので、私はそれがDictionary.comは、その部分を追加残念であるとサメに反対。「データベース」の定義として-それは絶対に正しいと思います。
では、DBMSをどのように定義するのでしょうか?私はdictionary.comに戻ってこれを見つけました:
「通常、構造化された大量の永続データを管理し、アドホッククエリ機能を多くのユーザーに提供する一連のプログラム。これらはビジネスアプリケーションで広く使用されています。」
定義は継続しており、非常に長いです。セキュリティ、データの整合性、トランザクション管理、同時実行制御など、DBMSが提供する一般的な機能について説明します。最も重要なのは、データの独立性です。DBMSは、データの物理的な格納方法から抽象化されたデータの外部ビューを提供します。
この定義を使用すると、DBMSがデータモデルを提供する必要があることは明らかだと思います。データモデルは、ユーザーに表示するためにデータを編成する方法です。3つの一般的なモデルは、階層(IMS)、ネットワーク(IDMS)、およびリレーショナル(DB2、Oracle、SQLサーバーなど)です。OOモデル(OODBMS)もあります。現在、リレーショナルモデルのみが幅広い適用性を持っています。他のモデルはまだ使用されていますが、ニッチな状況でのみです。DBMSは、上記の他の機能も提供する必要があります。これらをまとめてデータ管理機能または機能と呼びます。
「これらを提供していない製品がある一方で、そのため、データ管理機能を提供するソフトウェア製品は、DBMSありません DBMS」。NoSQL製品はDBMSではありません。されていることではない、彼らは有用ではない、と言うことではありません「データベース」を保存しないと言ってください。定義では、DBMSが会計、給与、請求、顧客関係管理、販売などのビジネスアプリケーションに関連するクラスの問題を解決すると考えています。NoSQL製品はDBMSではなく、従来のビジネスアプリケーションとは無関係であるが、今日の膨大な量のストレージと帯域幅コンピューティングテクノロジーによって現在存在する問題のクラス。これらは、インターネットサーチ、オンラインオークション、twitter、facebookなどのアプリケーションです。DBMSはデータ管理機能を含むため、これらの問題を解決するのにDBMSは適していません。データ管理機能は、ビジネスアプリケーションには絶対に必要ですが、Craig 'のストレージおよび検索の解決には役に立たない sリスト広告またはtwitterフィード(とにかく通常-それは別の時間の別の議論です:-))。これらの問題には、大規模なスケールアウトと非常に高速な応答が必要であり、DBMSは機能が肥大化しており、適切ではありません。
データの専門家は、一般的な請負業者が自分の構築ツールがどれであるかを知る必要があるように、データを保存するためのこれらすべてのツールと、それらが解決するのに適した問題のクラスをすべて理解する必要があります仕事に最適なツール。良いツールも悪いツールもありません。重要な問題を解決するのに適している場合、それは良いことです。
データベースとDBMSの両方の定義において、これまでの議論では見落としていたかもしれない他の2つの重要な違いに注目して結論を下します。データベースの定義には、「関連データの包括的なコレクション」が含まれます。DBMSの定義には、「大規模構造の管理d MS Accessまたは他のリレーショナルDBMSを使用することをお勧めします。したがって、おそらくカードカタログは包括的なデータベースではなく(ライブラリ内のすべての書籍の記録があります)、書籍に関する情報のみがあり、著者、出版社、等
第二に、DBMSは「構造化」データの保存に優れています。構造化された型を持つ個別のデータ要素の定義されたスキーマに完全に基づいています。スキーマのないキーバリューストアなどのNoSQL製品は、非構造化データの保存に優れています。したがって、そのNoSQL製品はDBMSの定義を満たしていません。しかし、解決しようとしている問題が非構造化データ(DBMSが最初に開発されたときにもやろうとしなかったもの)のストレージであり、書き込むアプリケーションに依存しないデータ管理機能は必要ない場合非構造化データを処理するNoSQL製品は、完璧なツールです。
この回答が、ここに投稿されている他の素晴らしい回答に価値を加えることを願っています。データベースに関連する問題やデータ関連の問題を解決するテクノロジーのクラスについての理解を広げるのに役立つコメントやディスカッションポイントを楽しみにしています。