非リレーショナルデータベースの例は何ですか?どこで/どのように使用されていますか?

StackOverflow https://stackoverflow.com/questions/202819

  •  03-07-2019
  •  | 
  •  

質問

私はしばらくの間リレーショナルデータベースを扱ってきましたが、ごく最近、-リレーショナルである他の種類のデータベースが必要であることに気付きました。

非リレーショナルデータベースの例は何ですか?また、実際の世界ではどこで/どのように使用されていますか?なぜリレーショナルデータベースよりも非リレーショナルデータベースを使用することにしたのですか?

編集:他の2つの同様の質問が回答に記載されています:

役に立ちましたか?

解決

  • フラットファイル
    • CSVまたはその他の区切りデータ
    • スプレッドシート
    • / etc / passwd
    • mboxメールファイル
  • 階層的
    • Windowsレジストリ
    • Berkley DBの代わりにファイルシステムFSFSを使用したSubversion

他のヒント

ここで言及されているデータベースのタイプの明らかに不明瞭だが興味深い代替は、連想データベースです。 = "noreferrer"> LazySoftテクノロジー。ダウンロードして自分で試用できる無料の個人用バージョンがあります。 Enterprise Editionも無料ですが、会社へのリクエストが必要です。

本質的に、連想データベースを使用すると、脳と同じように、物やそれらの間の関連として情報を保存できます。名前「Sentences」」 subject-verb-object 構文でこの情報を表す方法に由来します:

  • Tom Lauraの兄弟
  • サンフランシスコカリフォルニア州にあります
  • マイクの与信限度は $ 10,000

文は、別の文の主語または目的語の場合があります:

  • (バス570 到着 8:15 am)日曜日
  • Mary says (パイは Wayによって焼かれました

つまり、すべてをエンティティおよび関連付けに要約できます。

もちろん、文にはここで表現できるものよりもはるかに多くのものがあります。 ホワイトペーパーで詳細を読むことをお勧めしますLazySoft。

"データの連想モデル" は、Simon WilliamsがPDF形式で入手できる本です。 、Sentencesの作成者の1人。

これまで見てきた非リレーショナルドキュメント指向データベースは、 Apache CouchDB です。 p>

  

Apache CouchDBは、RESTful HTTP / JSON APIを介してアクセスできる、分散型でフォールトトレラントでスキーマフリーのドキュメント指向データベースです。他の機能の中でも特に、双方向の競合検出と解決を備えた堅牢なインクリメンタルレプリケーションを提供し、デフォルトのビュー定義言語として機能するJavaScriptを備えたテーブル指向のビューエンジンを使用してクエリとインデックス付けが可能です。

関心は、Javaから設定オブジェクトをシリアル化し、XULRunnerベースのクライアントアプリケーションからJavascriptを使用して同様に簡単にアクセスできる形状変更の影響を受けない分散アクセスユーザー設定ストアを提供することでした。

「バークレースタイルのデータベース」であると主張するデータベースまたは" Key / Value"データベースはリレーショナルではありません。

これらのデータベースは通常、複雑なハッシュアルゴリズムに基づいており、キーに基づいて非常に高速なルックアップO(1)を提供しますが、エンドユーザーには関係の良い形を残します。

たとえば、リレーショナルデータベースでは、構造を正規化し、多数のテーブルを結合して単一の結果セットを作成します。

キー/値データベースでは、可能な限り非正規化し、一意のキーを使用してデータを検索します。

2つのソースからデータをプルする必要がある場合、結果セットを手作業で結合する必要があります。

すべてのデータベースはもともと非リレーショナルでしたが、1980年代半ばにDB2とOracleが一般的になったのは初めてでした。その前に、フラットファイルまたは階層のいずれかであるほとんどのデータベース。

フラットファイルは本質的に退屈ですが、特にDB2が最初のインスタンスで階層実装(VSAM)の上に実際に実装されたため、階層データベースはそれほど退屈ではありません。 VSAMはメインフレームシステムでまだ使用されていると考えられており、かなり重要です。

DB / 1(だから今ではウィキペディアのリンクさえもわかりません)は、IBMのDB2への前身のプライムタイムデータベースでした(名前の由来です)。これは階層構造でした-基本的に、任意の数のレコードまたは「ルート」レコードで構成されるファイルがあり、通常はキーで直接アクセスできます。各ルートレコードには、任意の数の子レコードを含めることができます。各子レコードは、独自の子を持つことができます。最終的な効果は、インデックスファイルまたはルートレコードであり、各ルートは潜在的なツリーのような構造の最上部になります。子レコードへのアクセスは難しい場合があります-直接アクセスには制限があったため、通常は必要なレコードを探してツリーを横断することになりました。 「データベース」には、通常はキーで関連付けられたこれらのファイルをいくつでも含めることができます。

これには大きな欠点がありました-特に実際に何かをするためには完全なプログラムを書く必要がありました-基本的には、数分でSQLでできることは1日に相当します。ただし、実際には実行速度でスコアを記録しました。当時、メインフレームは(データI / O用に最適化されていたとしても)iPhoneの処理能力を備えており、DB2クエリが不十分であると数百万ドルのインストールが停止する可能性がありました。これはDB / 1では決して問題ではなく、プログラマがCPU時間よりも安価だった世界では意味がありました。

Google App Engineデータストア

  

App Engineデータストアはリレーショナルデータベースではありません。データストアインターフェースには従来のデータベースと同じ機能が多数ありますが、データストアの独自の特性は、自動的にスケーリングする機能を活用するためのデータの設計と管理の異なる方法を意味します。

OSIsoftのPI履歴データベースは非リレーショナルです。タイムスタンプ付きデータのみをアーカイブするために作成されています。特にすべての「ダッシュボード」のバックエンドデータベースとして、業界で多く使用されています。

結合がないので、リレーショナルにする必要はありません。

まだ公開されていない他の2種類のデータベース:

  1. コンテンツリポジトリは、コンテンツ(ファイル、ドキュメント、画像など)用に設計されたデータベースです。通常、コンテンツの閲覧、検索、異なる形式間の変換、バージョン管理、その他多くのことを行う階層的な方法など、追加の構成要素があります。例-Alfresco、Documentum、JackRabbit、Day、OpenText、その他多くのECMベンダー。

  2. ディレクトリ、つまりActive Directory、またはLDAPディレクトリ。これらは、低書き込み/高読み取りのシナリオ用に設計されたデータベースであり、地理的に離れた場所にあり、待ち時間の長い接続に高度に分散されています。主に認証/認可に使用されますが、ユースケースが要件に一致する場合はそうである必要はありません。

ディメンションデータベースは、非リレーショナルデータベースの優れた例です。これらは、KPIおよびその他の種類の集計データまたは統計データの「ビジネスダッシュボード」/「ビジネスインテリジェンス」に非常によく使用されます。通常、これらはリレーショナルデータベースから読み込まれ、特定の状況でパフォーマンスを向上させることができます。

http://en.wikipedia.org/wiki/Dimensional_database

  1. XMLデータベース(例: xindice
  2. オブジェクトデータベース db4o

リレーショナルデータベースの概念は非常に論争的であることに注意してください。 Cなどの純粋主義者。 J. Date は、一般的に使用されている多くのデータベース(OracleやSQL Serverなど)が「リレーショナル」と呼ばれるリレーショナルモデルに十分に準拠していないと主張します。

非リレーショナルデータベースはCoddの要件を満たしていません。 Intersystems Caché古いPickオペレーティングシステムのデータベースの完全な書き換え/再設計を継ぎ合わせます。 Cachéを読んだ小さな私からうまく行われた再設計のようです。 SQLと同様に、.netプログラムがデータベースにアクセスすることを許可します。 Caché’ sは、変更を必要とせずにPick OSプログラムを実行します。 PickファイルをCachéにインポートします。古いグリーンスクリーンアプリケーションを引き続き使用できますが、.netを使用して新しいプログラムを作成することもできます。これにより、既に投資した長年のデータ設計を放棄することなくWindowsアプリケーションに移行できます。 Pick DBモデルの背景を次に示します。 Pickデータベースは、完全に可変長のレコードとフィールドを使用します。すべてのテーブルは、単一の一意のキーによってキー設定され、インデックスを読み取らずにアクセスできます。 Pickは、最初の物理読み取り時にディスクからアイテムを読み取るハッシュアルゴリズムを使用するようにシステムを設計しました(システムメンテナンスが正しく実行されたと仮定)。 Pickのフィールドは型なしです。すべてのデータは文字列として保存され、キャストはプログラマー次第です。 NULLは空の文字列として格納されるため、SQLの場合のようにNULLはディスク領域を占有しません。外部キーは必要ありません。 ‘リレーショナルの世界’ DBAは、HeaderテーブルとOrder Line Itemテーブルを作成して注文する必要があります。 “モデルを選択’単一のテーブルがあります。たとえば、‘注文日’ ‘ 1967年12月13日’以降の日数を格納するフィールドです。 (データPick OSが初めてオンになりました)。ピックプログラマには2000年問題はありませんでした。 2番目の列は顧客番号です。大きな違いは、製品番号列にアクセスすると、‘マルチバリュー’ (コッド不適合)。言い換えると、データベースはその列で1〜32000個の製品番号を処理できます。注文数量などの他の列は、製品番号と制御/依存関係にあり、複数値もあります。出荷数量に到達すると、ピックは3番目の次元に移動し、サブマルチバリューフィールドがあります。出荷番号列があり、それは品目ごとに複数値を持ち、その出荷番号のその行の出荷数量を含むサブ複数値になります。必要な内部結合はありません。その注文のすべてのデータは、1つのテーブルと1つのレコードに保存されます。孤立した行はありません! 次に、データ定義が少し異なります。辞書には、このテーブルにないデータや操作中のデータの定義を含めることができます。いくつかの例は、顧客名です。 ‘「顧客番号」列を使用し、「顧客」テーブルから「名前」フィールドを返します。別の例として、品目の拡張は、Quantity * Price / PricePerの計算として定義されます。 Cachéのどこかで読んだと思います。 100,000以上のインストールがあると主張しています。

Excelのフラットファイルデータベースは非リレーショナルであり、かなりの数の人々によって使用されていると思います。

実際には、他のテーブルと結合できない単なるデータベーステーブルです。

オブジェクト指向データベースは、非リレーショナルデータベースの興味深いタイプの1つです。

取引セクターは、OOデータベースを使用する場合があります。これは、各取引/契約がそのカテゴリの他のものと似ているが、同様に一意の属性を持っているためです。リレーショナルで表現するのは非常に困難です。

eXist-db は、長い間使用されてきたxmlデータベースです。これは特に、大量のxml文書で xquery に役立ちます。

データを含むがそのデータ内の関係を表現しないファイルまたはファイルのグループは、非リレーショナルデータベースです。

RRDtool は、ログデータを保存および集約するように設計されています。サンプリング間隔を設定し、そこにデータをフィードすると、時間ベースの結果が返されます。固定サイズのストレージ用に最適化されており、しばらくすると過去の結果の集計が開始されます。たとえば、5分間隔のラウンドロビンデータベースがあるとします。温度データを毎秒1回送信しても、結果は5分単位でのみ保存されます。 1週間後、それらの結果を1時間ごとの値に平均化します。 1か月後、1時間ごとの結果は1日ごとの数値に平均化され、以下同様に続きます。

RRDtoolは、一般的に Cricket および MRTG を使用して、数か月から数年にわたるネットワークおよび環境データを一気に追跡します。

neo4jがあるグラフベースのdbmsの場合

階層型DBMSの場合、標準のファイルシステムを使用するか、" schema"を使用します。 LDAP実装をサポートします。

多くの答えがありますが、それらはすべて2つの主要なカテゴリのいずれかになります。

  1. ナビゲーション。ツリー/階層データベースとグラフデータベースが含まれます。

  2. 最初の標準形式(複数の値)を壊すデータベース。 Pickデータベース、Lotus Notes、およびCouchDBなどの子孫が含まれています。

編集:もちろん、BDBのようなキー/値ストアはリレーショナルではありませんが、それは言うまでもありません。つまり、それらは単なるキー/値ストアです。

dBase。このように販売されていましたが、要件を満たしていません。

OOデータベースとして、Intersystems Caché頭に浮かぶ。一部の医療および図書館システムはこれに基づいて構築されています。

  1. 私の会社www.smartsgroup.comには、「トランザクションログデータベース」と呼ばれる独自のデータベースエンジンがあります。フラットファイル上に構築され、各ファイルには一連の「イベント」が含まれます。または、バイナリ形式の「メッセージ」、およびこのデータのさまざまなインデックスと、証券取引所の注文帳の状態を再現するためのアルゴリズム。順次更新および順次アクセス用に高度に最適化されています。

  2. 科学アプリケーションでは、RDBMSの代わりに独自のデータベースエンジンを使用することも一般的です。また、脳波記録の世界最大のデータベースwww.brainresource.comを持つ会社で働いていました。そこでは、フラットファイルデータベースを使用しており、うまく機能しました。

  3. SmartsGroupは、非リレーショナルデータベーステーブルに似たテンポラルデータベースも使用します。ただし、特定の日付の特定の行の状態を再現できるように、すべてのフィールドに対するすべての変更の履歴を保存します。

上記にリンクされているDimensional DatabasesのWikiページは消えたようです。

一部の OLAP システムは、多次元データベース(MOLAP)によってサポートされています。財務分析。さまざまなレベルの集約でデータをナビゲートできる対話型クライアントを提供します。

私の大学には、演ductiveデータベースを調査するグループがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top