「データベース」とは何ですか?


14

この質問には多くの議論がありました。大規模な検索エンジンはどのデータベーステクノロジーを使用していますか?

あまりにも多くの議論があったので、混乱しました。それで...とにかく、データベースとは何ですか?リレーショナルデータベースのみが「データベース」ですか?オブジェクト指向データベースは「データベース」ですか?情報(マップ、リストなど)をデータベースに保存および取得できるシステムはありますか?

または、データベースは情報を保存/取得する必要があり、ユーザーや権限などの管理機能も必要ですか?dBase IIIは、実際にはリレーショナルではないので、データベースを追加しましたか?


@ypercube:「関連データを含む複数のファイルを同時に開いて操作する機能により、アシュトンテイトはdBaseに「リレーショナルデータベース」というラベルを付けましたが、エドガーF.コッド博士のリレーショナルモデルによって定義された基準を満たしていませんでした。より正確にリレーショナルコンセプトの影響を受けるアプリケーション開発言語および統合ナビゲーションデータベース管理システムと呼ばれます。」ウィキペディア
woliveirajr

3
データベースをデータベースとして「管理」する必要があるとは思わない。
アーロンバートランド

回答:


9

これは素晴らしい質問であり、素晴らしい回答のセットです。議論から欠落していることの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製品は、完璧なツールです。

この回答が、ここに投稿されている他の素晴らしい回答に価値を加えることを願っています。データベースに関連する問題やデータ関連の問題を解決するテクノロジーのクラスについての理解を広げるのに役立つコメントやディスカッションポイントを楽しみにしています。


1
良い投稿。クレイグのリストには、考慮すべき層がもっとあると思います。ストレージと取得は、DBMSのすぐ上で行う必要はありません。SQL Serverをユーザー要求への応答に直接責任を負わせることなく、たとえばSQL Serverに格納されているデータを確実にスケールアウトできます。DBMSを置き換えることなくDBMSを支援できる、あらゆる種類の中間層およびデータキャッシングソリューションがあります。直前の仕事では、プライマリSQL Serverの負荷を軽減するために、Webサーバーで数十のExpressインスタンスを使用しました-プルではなく頻繁なプッシュが機能していました。
アーロンバートランド

アーロンに感謝します。従来のビジネスアプリケーション以外のアプリケーションの経験が不足していることがわかります。データキャッシングソリューションに関するいくつかの投稿、たとえばブレントオザーを見たことがありますが、使用中の投稿を見たことはありません。あなたの以前の経験のあなたの例をありがとう。この階層化の概念をDBMSの上に確実に追加して、DBMSの利点をツールボックスに失うことなくスケールアウトできるようにします!
トッドエベレット

したがって、IMS DB DBMSですが、Cassandraはそうではありません。申し訳ありませんが、丁重に同意しません。
マイケルグリーン

9

これをデータベースの意味としてとらえるため、Dictionary.comを引用します。

一般的にコンピューターでアクセスしやすいように整理された関連データの包括的なコレクション。

この定義の下では、本格的なRDBMS(SQL Server、Oracleなど)から基本的なフラットファイルまで、データベースを検討できます。データを保存する場合、技術的にはデータベースと見なすことができます。

今、私たちの現代世界のほとんどのものと同様に、名前の受け入れられた意味があります。そして、データベースの場合、それは人によって異なります。多くの人は、データベースをデータシステムによって管理されるエンティティとしてのみ考えています。

@FrustratedWithFormsDesignerのコメントに注目する価値があります。

カードカタログは、「...一般的にはコンピュータで」を削除した場合にもカウントされます。

私はその声明に同意しますが、データベースが「コンピューター」または電子デバイスに存在する必要があるとは必ずしも思いません。カードカタログは、コンピューター化されていないデータベースの完璧な例です。


8

私にとって、データベースとは、データを保存および取得するために存在するものです。Accessをデータベースと呼びますが、実際にはファイルのコレクションの単なるフロントエンドにすぎません。Outlook(少なくともMacの場合)は、そのメッセージストアをデータベースと呼びます。Excelをデータベースと呼ぶ人もいます(しかし、そのようなことは私をいびきさせます。

定義は時間とともに進化しており、過去30年間にわたってdictionary.com、wiki、さまざまなデータベース専門家の論文を比較すると、さまざまな定義が得られると思います。そして、定義も同様に進化し続けます。

あなたまたはあなたのアプリケーションがデータを保存または取得するために使用する何らかの種類のデータソースについて、それがリレーショナルであるかどうかに関係なく、データベースと呼ぶことに問題はありません。テキストファイルの場合、眉が高くなる可能性がありますが、人々が怒るような有限の方法で定義を特定する必要があるかどうかはわかりません。

BigTable(またはNoSQLまたはhadoop)が「データベース」であることを示唆することさえ周辺に来ると、特に初心者には無限のパフォーマンス、不滅の大きな約束を与えると主張する人もいます。とユニコーン。通常は、実際の実装が何をするか、リレーショナルであるかどうか、または日曜日の午後に退屈したときにそのようなものを自分で作成できるかどうかについての保証なしに、データが格納および取得される場所であることを意味します。

リレーショナルデータベースについて人々が話し、行を「レコード」または列を「フィールド」と呼ぶとき、私はうんざりすることを認めます。しかし、それは少し私をいらいらさせますが、私は怒ったり、それらを修正するために邪魔になったりしません-ポイントは何ですか?100%正確でなくても、その意味を理解しました。


5

これは非常に一般的なものであり、データと構造のコレクションにすぎません。データベースを管理するシステムは、ファイルシステムのように単純なものでも、DNSのようなフェデレーションシステムのように複雑なものでもかまいません。

一般的に現代の使用法では、データベースと言うとき、データストレージと構造の両方、および付随するデータベース管理システムを意味します。また、リレーショナルデータベースの基盤で非常に多くの理論的作業が行われているため、これらは依然として最も人気があります。多くの場合、データベースと言うとき、リレーショナルデータベースを意味していることがよくあります。

NoSQL /非リレーショナルデータベースの台頭により、データベースという用語は、データを理解するための共有モデルを想定することができないため、より一般的で、潜在的に曖昧になりました。

リレーショナル理論の基礎以前は、他のシステムのデータのモデリングはシステムごとに異なり、リレーショナルモデルが持っていたような共通の指針はありませんでした-階層型データベースやネットワークデータベースなど他の種類のデータベースが使用されていました。


2

私はdBASE Direct / 36およびdBASE IVの開発中にAshton-Tateで働いていました。dBASEIII Plusの知識を使用して小さなプログラムをコーディングし、dBASE Direct / 36(IBM System / 36 Mini Computerへのインターフェース)のテストを支援しました。System / 36 SQLテーブルへのバイナリロードと呼び出しステートメントを作成する必要がありました。各レコードからデータを取得するには、サブミット時にテーブル名とフィールド名を変更しながら同じ「load」ステートメントと「call」ステートメントを繰り返し入力する必要がありましたクエリのスコープに応じた複数のレコードのグループ。データベースプログラミング言語であるdBASE III Plusを使用して、システムがSQL検索モードにあることを示すために、シングルドットプロンプトをダブルドットに変更する「dbldot.prg」とテキストを作成できました。コマンドラインの下に、「

その当時、dBASEはデータベースプログラミング言語、より正確には、データレコードの操作を可能にするプログラム言語でした。レコードは、個人LAST_NAME、FIRST_NAME、ADDRESS、CITY、ST、ZIP、PLUS_FOUR、SSNなどの1つの個別アイテムのデータを含むフィールドのグループです。これらの構造は、後で表に表示され、行と列に編成されました。行は個々のレコードであり、列は各フィールド名の一連のレコードのデータです。この方法により、ユーザーはフィールド名で簡単にソートして、CITY、ST、ZIPなどの特定の共通フィールドでレコードをソートおよびグループ化できます。

dBASE言語により、ユーザーまたはプログラマーは、データの操作、並べ替え、表、レコードの表示、計算の実行が可能になりました(Y2Kは遠いですが、入力されたMM-DD-YYYYデータを並べ替えるには、日付をYYYYMMDDに変換する必要がありました。 DtoCおよびCtoD(日付から文字、文字から日付)で実行できます)。dBASE言語がなければ、データファイルは単純に、共通のフィールド(列)を持つ一連のレコード(行)になります。

リレーショナルデータベース-異なる情報を含むが1つ以上の共通フィールドを含む複数のデータベース(テーブル)と相互参照するために使用される用語。たとえば、「Addresses」というタイトルのデータベースには、「LNAME」、「FNAME」、「ADDRESS」、「CITY」、「ST」、「ZIP」、「SSN」が含まれます。「CHECKING」というタイトルの別のデータベースには、「ACCOUNT_NO」、「ROUTING_NO」、「CUSTLAST」、「CUSTFIRST」、「DOB」、「SSNO」、「CUST_NO」が含まれます。フィールド名は異なりますが、それらのいくつかには同じ情報が含まれており、一方のデータベースのデータと他方のデータベースのデータを結び付けて、銀行の顧客に明細書を送信したり、姓と名のフィールドとSS番号を使用してデータを関連付け、一方のデータベースから顧客の住所を取得し、もう一方のデータベースからアカウント情報を取得します。その後、ADDRESSデータベース内の個々の顧客に対してこれらのアクションを実行するために、大規模にメールマージ機能を実行して、各顧客の関連アカウント情報を引き出し、ステートメントをパーソナライズ、印刷、およびアドレス指定して、次へ進むことができますデータベース内のレコード、または顧客。

したがって、MS ACCESSのようなものはDBMSのようなものになる可能性がありますが、基本レベルでは、dBASEはフロントエンドユーザーインターフェイスを作成し、データベース間のすべてのデータ操作を実行してデータベース間の関係を作成し、結果のデータを返す言語でした使用するのは単なる人間です。

それ以来多くの変化がありましたが、基盤は同じままです。データは依然としてさまざまなデータタイプの一連のフィールドを含むレコードに含まれており、1つ以上の一般的なデータポイントを介して他のデータベースのフィールドと相互参照およびマージする必要があります。これにより、クレジットカードを使用したり、ウェブでアカウントを設定したりできますGoogle、Facebook、Twitter IDの使用、購入履歴の追跡など。私たちの生活は、多くの重複したリレーショナルデータベースのシリーズに過ぎず、今日の生活の楽しさと継続的な進化をもたらすために相互作用しているすべてのビットやバイトについて考えることなく、毎日横断しています。

リースでは、1984年にdBASE IIから始まったこの長年にわたるソフトウェアおよびハードウェアのテストを常に理解してきました。


2

Coddの独創的な論文は、大規模な共有データバンクのデータのリレーショナルモデルというタイトルでした。彼が「データバンク」と呼んだものをデータベースと呼びます。

しかし、私は彼の画像が好きです。それは、データが安全に保持され、適切に説明され、データにアクセスする権限があることを示すことができる人にのみ与えられることを知って、データを置くことができる場所を意味します。支店が略奪された場合、貴重なリソースが取り消せないように失われないように、銀行会社に適切なバックアップがあることを保証します。


1

データベース設計の基礎から7th Ed。(pg 5)、

データベースは、関連するデータの集まりです。

彼らは、一般的な使用はより制限されていると言い続けています、

データベースには、次の暗黙的なプロパティがあります。

  • データベースは、ミニワールドまたは談話の世界(UoD)と呼ばれることもある、実世界のある側面を表します。ミニワールドへの変更はデータベースに反映されます。
  • データベースは、固有の意味を持つ論理的に一貫したデータのコレクションです。ランダムなデータの組み合わせは、データベースとは正しく呼ばれません。
  • データベースは、特定の目的のために設計され、構築され、データが入力されます。データベースには、ユーザーの対象グループと、これらのユーザーが関心を持っている先入観のあるアプリケーションがあります。

データベースはいかなる意味でも明示的に「リレーショナル」ではありませんが、業界は特定のタイプのDBAで飽和しており、おそらく最も高度なDBMSソフトウェアはすべてリレーショナルであるため、頻繁に想定されています。以下からのリレーショナルデータベース辞書

厳密には、データベース値qv; 特にこの辞書でより一般的に使用されて、データベース変数と呼ばれるものをより正確に参照します。注:データベースという用語は、他のさまざまなことを意味する非リレーショナルコンテキストでも使用されます。たとえば、物理的に保存されたデータのコレクションです。また、DBMSを意味するためにあまりにも頻繁に使用されますが、この特定の使用は強く推奨されていません。(DBMSをデータベースと呼ぶ場合、データベースとはどういう意味ですか?)

最後の点はいくぶん重要であり、DBMS / RDBMSとデータベース自体の違いも気に入っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.