私は従来のリレーショナル データベース ( PostgreSQLを使用) を学習しており、いくつかの新しいタイプのデータベースに出くわしたいくつかの調査を行っています。CouchDB、Drizzle、およびScalarisなどがありますが、次に対処するデータベース テクノロジは何でしょうか?
8 に答える
次世代 SQL ではなく、次世代データベースと言えます。
SQL は、リレーショナル データベースをクエリおよび操作するための言語です。SQL は、国際標準によって定められています。標準は改訂されていますが、リレーショナル データベース パラダイム内では常に機能しているようです。
現在注目されているいくつかの新しいデータ ストレージ テクノロジを次に示します。
- CouchDBは非リレーショナル データベースです。彼らはそれをドキュメント指向データベースと呼んでいます。
- Amazon SimpleDBは、ウェブ サービスを介して分散方式でアクセスされる非リレーショナル データベースでもあります。Amazon にはDynamoと呼ばれる分散キー値ストアもあり、S3 サービスの一部を強化しています。
- DynomiteとKaiは、Amazon Dynamo に触発されたオープンソース ソリューションです。
- BigTableは、Google が使用する独自のデータ ストレージ ソリューションであり、Google ファイル システム テクノロジを使用して実装されています。Google の MapReduce フレームワークは BigTable を使用します。
- Hadoopは、Google の MapReduce に触発されたオープンソース テクノロジであり、同様のニーズに応えて、非常に大規模なデータ ストアの作業を分散します。
- Scalarisは、分散トランザクション キー/値ストアです。また、リレーショナルではなく、SQL を使用しません。これは、ドイツのベルリンにあるツーゼ研究所の研究プロジェクトです。
- RDFはセマンティック データを格納するための標準であり、データとメタデータは交換可能です。表面的には SQL に似ていますが、実際にはまったく異なる独自のクエリ言語 SPARQL があります。
- Verticaは、分散 (グリッド) アーキテクチャ用に設計された、拡張性の高い列指向の分析データベースです。リレーショナルであり、SQL に準拠していると主張しています。Amazon の Elastic Compute Cloud を通じて使用できます。
- Greenplumは、MapReduce と SQL の両方を実装する大規模なデータ ウェアハウジング DBMS です。
- XMLは DBMS ではなく、交換フォーマットです。ただし、一部の DBMS 製品は XML 形式のデータを処理します。
- ODBMS (オブジェクト データベース) は、複雑なデータを管理するためのものです。おそらく標準化が行われていないため、メインストリームには支配的な ODBMS 製品はないようです。標準 SQL は、いくつかの OO 機能 (拡張可能なデータ型やテーブルなど) を徐々に獲得しています。
- Drizzleはリレーショナル データベースであり、MySQL から多くのコードを引き出しています。これには、スケーラブルな「クラウド コンピューティング」システム アーキテクチャでデータを管理するように設計された、さまざまなアーキテクチャの変更が含まれています。おそらく、いくつかの MySQL 拡張機能を備えた標準 SQL を使用し続けるでしょう。
- Cassandraは、Amazon Dynamo の作成者の 1 人によって Facebook で開発され、Apache プロジェクトに貢献した、高度にスケーラブルで、最終的に一貫性のある分散型の構造化されたキー値ストアです。
- Project Voldemortは、非リレーショナルの分散型キー値ストレージ システムです。LinkedIn.comで使用されています
- Berkeley DBも言及に値します。1990 年代初頭にさかのぼるため、「次世代」ではありません。これは、さまざまなアプリケーションに簡単に組み込むことができる人気のあるキー値ストアです。現在、この技術はオラクル社が所有しています。
また、Richard Jones によるこのすばらしい記事「Anti-RDBMS: A list of distributed key-value store 」も参照してください。彼は、これらのテクノロジーのいくつかをより詳細に説明しています。
確かに、リレーショナル データベースには弱点があります。人々は、最初に導入された日以来、すべてのデータ モデリング要件を処理していないと主張してきました。
毎年、研究者は特別な要件を満たすためにデータを管理する新しい方法を考え出しています。リレーショナル モデルに適合しないデータ関係を処理するための要件、またはデータ処理の実行を必要とする大規模なボリュームまたは速度の要件のいずれかです。中央データベース サーバーではなく、サーバーの分散コレクション上。
これらの高度なテクノロジは、その目的として設計された特殊な問題を解決するために優れた機能を発揮しますが、リレーショナル データベースは依然として、ほとんどのビジネス ニーズに対応する優れた汎用ソリューションです。SQL はなくなりません。
非リレーショナル データベースの革新と、リレーショナル データベースと非リレーショナル データベースのデータ モデリングについて、php|Architect マガジンに記事を書きました。http://www.phparch.com/magazine/2010-2/september/
これまでの回答にグラフ データベースがありません。オブジェクトのグラフまたはネットワークは、プログラミングでは一般的であり、データベースでも役立ちます。半構造化され相互接続された情報を効率的に処理できます。グラフ データベースが多くの関心を集めている分野には、セマンティック Web とバイオインフォマティクスがあります。RDFとありましたが、実はグラフを表現する言語です。グラフ データベース エリアで何が起こっているかを示すヒントを次に示します。
- グラフ - より優れたデータベースの抽象化
- Freebase のバックエンドである Graphd
- Neo4j オープン ソース グラフ データベース エンジン
- AllegroGraph RDFストア
- バイオインフォマティクスのための Graphdb 抽象化レイヤー
- Directed Edge レコメンデーション エンジンの背後にある Graphdb
私はNeo4jプロジェクトに参加しています。このプロジェクトは Java で書かれていますが、Python、Ruby、および Scala にもバインドされています。Clojure や Groovy/Grails で使用する人もいます。進化しているGUIツールもあります。
これについて答えるのに最適な場所ではないかもしれませんが、Steve Yen によって作成されたこの noSQL の世界の分類法を共有したいと思います ( http://de.slideshare.net/northscale/nosqloakland-200911021で見つけてください) 。
キー値キャッシュ
- memcached
- 再キャッシュされた
- コヒーレンス
- インフィニスパン
- エクストリームスケール
- jboss キャッシュ
- 速度
- テラコカ </li>
キー値ストア
- キースペース
- フレア
- スキーマフリー
- ラムクラウド</li>
結果整合性のあるキー値ストア
- ダイナモ
- ヴォルデモート
- ダイノマイト
- サブレコード
- MongoDB
- Dovetaildb
順序付きキー値ストア
- 東京の暴君
- ライトクラウド
- NMDB
- ルシオ
- memcachedb
- 俳優 </li>
データ構造サーバー
- レディス</li>
タプルストア
- ギガスペース
- 座標
- アパッチ川
オブジェクト データベース
- ZopeDB
- db4o
- 浅瀬</li>
ドキュメントストア
- CouchDB
- モンゴ
- ジャックラビット
- XML データベース
- スルーDB
- クラウドキット
- Perservere
- リアク芭蕉
- スカラリス</li>
広い円柱ストア
- ビッグテーブル
- Hbase
- カサンドラ
- ハイパーテーブル
- カイ
- オープンネップ
次世代データベースの分野で行われている学術研究については、http ://www.thethirdmanifesto.com/ をご覧ください。
リレーショナル モデルの適切な実装としての SQL 言語に関して、私はウィキペディアから引用します。リレーショナル モデルに言及するか、リレーショナルの用語や概念を使用します。ただし、特定の SQL 機能を使用しない場合は、SQL を使用してリレーショナル モデルに準拠したデータベースを作成することは可能です。
http://en.wikipedia.org/wiki/Relational_model (2010 年 3 月 28 日のセクション「SQL とリレーショナル モデル」で参照)
MarkLogic や Berkeley XMLDB などの XML 用の特別なデータベースがあります。それらは xml-docs に索引を付けることができ、XQuery でそれらを照会することができます。JSON データベースを期待していますが、おそらく既に存在しています。グーグルで検索しましたが、見つかりませんでした。
衒学的なことではありませんが、少なくとも CouchDB は SQL ベースではないことを指摘したいと思います。そして、次世代の SQL によって SQL が大幅に削減されることを願っています... 醜くて直感的ではありません。
Jim Starkey による NimbusDB についても聞きました
Jim Starkey は Interbase を「作成」した男です
Vulcan (Firebird フォーク) に取り組んでいる人
Falcon for MySQL を始めたのは誰ですか?
SQL は 1970 年代初頭から存在しているため、すぐになくなるとは思いません。
おそらく、「新しい (-ish) sql」は oql になります ( http://en.wikipedia.org/wiki/ODBMSを参照) 。