裏話です。 2016 年当時、私はアルバニー大学で情報学の学位取得を目指しており、データベース入門のコースを受講しなければなりませんでした。
コース内で、私は 2 つのことを学びました。
Relational Databases と non-relational Databases ですが、私は 2 つの違いを本当に学んだことがなかったので、データベースと 2 つの違いに関する私の好奇心を再び取り戻したかったのです。
- 1970年にE.F Coddによって定義されたリレーショナル データベースは、データの関係モデルに基づいたデジタル データベースです。 データは、行(項目を表す)と列(特定のタイプの情報を格納し、並べ替える)を含むテーブルに格納される。 関係は主キーと外部キーによって確立されます。
言語。 SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3
Advantages:
- Can handle lots of complex queries, database transactions, and routine analysis of data.
- ACID(Atomity, Consistency, Isolation, Durability).This can handle a complex queries, Database transactions, and data:
Disadvantages:
- Cannot store complex or very large images, numbers, designs and multimedia products
- Can become very costly with maintenance and new servers
Great! しかし、データセットが大きすぎたり、構造化されていない場合はどうでしょうか。
Non-Relational Database or NoSQL
非リレーショナル データベースとは何ですか?
- 非リレーショナル データベースは1960年代後半に存在しましたが、NoSQL の開発を主導した Carlo Strozzi が 1998 年になるまでこの用語を使用することがなかったと言われています。
- “NoSQL(元々は「非SQL」または「非リレーショナル」を指す)データベースは、リレーショナル データベースで使用される表形式の関係以外の手段でモデル化されたデータを保存および検索するためのメカニズムを提供します。” – Wikipedia
NoSQLデータベースの種類:
カラムストア: 行と列を含むすべての列ファミリを含むキースペースの概念を使用して、データを格納および整理します。
Database: neo4J, OrientDB, Titan
文書指向データベース。 ドキュメント指向のデータベース、またはドキュメントストアは、半構造化データとしても知られるドキュメント指向の情報を格納、検索、管理するために設計されたコンピュータプログラムです。
Database: MongoDB、Couchbase
メリット:
- 大量の構造化、半構造化、非構造化データ
- オブジェクト指向プログラミングで使いやすく柔軟(MongoDBは基本的にjavascriptで記述)
- 高コストのモノリシックアーキテクチャではなく効率の良いスケールアウト型アーキテクチャ
ディスメリット.を参照。
- NoSQLデータベースは通常オープンソースであるため、サポートが少ない
- 管理者。
- 成熟度が低い。
どれを使うか?
企業は、ビジネス要件やニーズを満たすために、従来のデータベースと非リレーショナルデータベースの両方を混合して利用します。
リレーショナルデータベース:
従来のリレーショナルデータベースは、データトランザクションを安全に保ち、情報を取得するための複雑なクエリを行うのに非常に優れています。
非リレーショナルデータベース:
あまり構造化されていない大量のデータを保存するのに適しています。 新興企業のように急速なペースで成長している企業は、その拡張性と柔軟性から、より多くの非リレーショナル データベースを利用しています。 クラウドと組み合わせることで、非リレーショナル データベースは企業のコストを大幅に削減できます。
- データはかつてないほど急速に成長しており、2020 年までに、地球上のすべての人間に対して毎秒約 1.7 メガバイトの新しい情報が作成されます。
- 今年、14 億台以上のスマートフォンが出荷され、ユーザーが自分で作成したデータはもちろん、あらゆるデータを収集できるセンサーが搭載されます。
- 5 年以内に、世界には 500 億台以上のスマートな接続デバイスがあり、すべてデータを収集、分析、共有するために開発されます。