SQLとNoSQLとは?
一般的な、オラクルやSQL Sever, MySQLなどのRDBは、行と列をもつ表示形式の データテーブルによって管理されています。NoSQLは、この表形式のテーブル構造の枠に収まらないデータを扱うデータベースです。
- リレーショナルDB / SQL DB 電話番号と住所を保存する電話帳のような構造
- Non-Relational DB / NoSQL DB 電話帳から買い物の好みまですべてを保存する構造。ファイルをフォルダに保存するように分散して管理する
Data to AI, Blockchain
一般的な、オラクルやSQL Sever, MySQLなどのRDBは、行と列をもつ表示形式の データテーブルによって管理されています。NoSQLは、この表形式のテーブル構造の枠に収まらないデータを扱うデータベースです。
RDB(リレーショナルデータベース)は、構造化データを定義済みのカラムに格納します。NoSQL DB(非リレーショナルデータベー ス)には、テーブルモデルは組み込まれていません。 代わりに、データを単一のド キュメントファイルとして保存することができます。
RDB | SQL |
---|---|
固定的で構造化され、整理されたストレージです。 | RDBのためのプログラミング言語です。 |
列と行を持つ2つ以上のテーブルで構成されています。 | SQLは、そのシンプルでありながら強力なJOINコマンドのため、RDBに重たい仕事 をさせることができる言語です (単一のコマンドで、複数のテーブルに格納されているデータを移動できます)。 |
情報を追加する前にスキーマを明確に定義する必要があります。後で変更する場合は、 DB全体を変更する必要があるため、変更が非常に困難です。後で問題が起こるのを 避けるためにスキーマを慎重に設計することが不可欠です。 | 情報を追加する前にスキーマを明確に定義する必要があります。後で変更する場合は、 DB全体を変更する必要があるため、変更が非常に困難です。後で問題が 起こるのを 避けるためにスキーマを慎重に設計することが不可欠です。 |
よく知られているおり広くサポートされている多数のソフトウェアがあります。 | |
Java、PHP、Pythonなどのオブジェクト指向言語ではうまく機能しません。 |
CMSサイトやブログによく利用され、最も人気のあるオープンソースデータベース。
C++で書かれたオブジェクトRDB管理システム。予算が十分にあれば、優れ たカスタマーサービスと信頼性のあるフルサービスを受けることができる。Oracleは NoSQLデータベースもリリースしている。
IBMが高度なビッグデータ分析を行うために構築したDBサーバー製品
Linux用のエンタープライズレベルのDBMSであり、Unix OS上で使用されている企業向けのリレーショナルモデルのデータベースサーバー製品
SQLとNoSQLの両方のアーキテクチャーをサポートしたエンタープ ライズレベルのデータベースとしてマイクロソフトが開発したRDB管理システム
あらゆるオペレーティングシステムをサポートし、データを1か所に 格納、コピー、および拡張できるクラウドコンピューティングプラットフォーム。 最 近の調査では、企業のデータストレージに関して、アマゾンウェブサービスとグーグル クラウドストレージよりも先に進んでいると評価されている。
MySQLの拡張版 •PostgreSQLーSQLレベルのコードに加えて、PerlやPythonなどの手続き型言語を使用 できるエンタープライズレベルのオブジェクトリレーショナルDB管理システム
Non-Relational DB | NoSQL |
---|---|
RDBよりも高い柔軟性を持ち、動作速度が速いことが強みです。 | Java、PHP、Python、またはAPIを介して利用します。 |
大きな買い物袋のように、テキスト、リンク、写真、ソーシャルメディアなどの非構 造化データ、センサーデータ、Webからのデータ、ソーシャルシェア、個人情報、位 置情報、オンラインの行動履歴、使用状況メトリクスなどをより多くの情報を保持できます。 | 開発者は、SQLやDBアーキテクチャの知識を習得せずにクエリを実行できます。 |
SQLよりもスキーマレスの定義されていない表現を許容できます。 | SQLはクエリを実行し、データを取得し、新しいレコードを更新、削除、作成することでデータを編集します。 |
スケーラビリティは優れていますが、データの一貫性が失われることがあります。 | |
ドキュメント指向の自由な形式のデータを保存するデータベースです。 | |
データがRDBのように構成されていないため、冗長な処理と冗長な記憶領域が必要になります。 | |
アプリ開発者にとってのアクセスが簡単で、APIを使って起こりうるプログラミングの問題を回避しやすくなります。 |
特にスタートアップの間で最も人気のあるNoSQLシステム。 Craigslist、 eBay、Foursquareのようなサイトのバックエンドに使われている。リレーショナル テーブルの代わりに、動的スキーマの中にJSONのようなドキュメントを持つドキュメ ント指向のデータベース。 オープンソースなので無料で利用できる。
ひとつのデータベースではなく、むしろ超並列コンピューティングを可能に するソフトウェアエコシステム。 これは特定のタイプのNoSQL分散データベース (HBaseなど)を可能にし、パフォーマンスをほとんど低下させることなく、何千ものサーバーにデータを分散させることができる。
大量のデータを扱い、分析、機械学習、グラフ処理などを行うビッグデータ処 理フレームワーク。 これは、Map Reduce、Hive、Impala、Mahout、およびHadoopの HDFS上に構築されたデータ処理層に似ている。
Linux用のエンタープライズレベルのDBMSであり、Unix OS上で使用されている企業向けのリレーショナルモデルのデータベースサーバー製品
オープンスースの分散データベース。Hadoopプロジェクトの一部として開発 された。GoogleのBigTableをモデルとして、Javaにより書かれている。FacebookのMessaging Platformなどデータ駆動型のWebサイトでも利用されている。
OracleがNoSQLの分野に参入した製品。
Facebookが生み出したCassandraは、膨大な量の構造化デー タを処理するのに優れた分散データベース。
Cassandraはスケールアップに優れて おり、インスタグラム、コムキャスト、アップル、そしてSpotifyなどで利用されている。
Amazon Dynamoの論文に基づいて実装されているNoSQLデータベース。 Erlangで書かれたオープンソースのKey-Valueストアデータベース。 優れたパフォーマ ンスを実現するために、フォールトトレランス機 能と自動データ配布機能が組み込まれ ています。Riakは、フォーチュン50カンパニーの25%を含む数千社で導入されている。 採用企業は、シマンテック、ベストバイ、ヤフージャパン、ボーイング、AOL、AT&T などがある。
Valueモデルーインデックス付きのキーと値を使用してスキーマのない方法でデー タを格納する最も単純なNoSQL
Key-Valueをより複雑にしたもの。 各ドキュメントには、取得するた めの独自のデータと固有のキーがある。 半構造化文書であるデータを保存、取得、 管理するための優れた選択肢。
データテーブルを行ではなく列として格納。 列を分割することで、 優れたスケーラビリティと高性能が可能。
データモデルとして、グラフ構造を採用しているデータベース。ソーシャル ネットワークの分析や可視化、データ処理などに適している。
DBタイプ | パフォーマンス | 拡張性 | 柔軟性 | 複雑性 |
---|---|---|---|---|
Key-Value Store | ||||
Column Store | ||||
Document DB | ||||
Graph DB |
ACID準拠は、トランザクションがデータベースとどのようにやり取りするかを正確に規定することによって、異常を減らし、データベースの整合性を保証します。 一般的に、NoSQLデ ータベースは柔軟性と処理速度のためにACID準拠を犠牲にしますが、多くの電子商取引や金融アプリケーションにとっては、ACID準拠データベースは依然として必要な選択肢です。
より多くのサーバーを必要とするような大規模に成長していくビジネスではなく、一貫性のあるデータのみを使用している場合は、さまざまなデータタイプと大量のトラフィックをサポートするように設計されたシステムを使用する理由はありません。
NoSQLデータベースは、一緒に格納できるデータの種類に制限を設けず、ニーズの変化に応じてさまざまな新しい種類を追加できます。 文書ベースのデータベースでは、データの「タイプ」を事前に定義しなくても、データを同じ場所に格納できます。
クラウドベースのストレージは優れたコスト削減ソリューションですが、スケールアップするにはデータを複数のサーバーに簡単に分散させる必要があります。 CassandraのようなNoSQLデータベースは、手ごろな価格で手ごろなサイズのハードウェアをオンサイトまたはクラウドで使用することができ、対応するソフトウェアが豊富に用意されています。
もし、2週間以内にアジャイルスプリントを使用して開発するとしたら、短時間で反復処理を実行する場合、またはバージョン間で多くのダウンタイムを発生させることなくデータ構造を頻繁に更新する必要がある場合は、リレーショナルデータベースでは、処理が遅くなります。これに対して、NoSQLデータは事前準備に時間を取られることがありません。
パンチカードとテー
ナビゲーショナルデータベース
リレーショナル/SQL データベース
NoSQLとNewSQL データベース
データベース管理システムは以下の図のように進化してきました。
ファイルシステム
(VMS/VSAMなど)
IBMのメイン フレーム システムで 主に使われた
階層ネットワーク
(IMS、ADABAS、IDS-Ⅱなど)
初期のデータベースシステム
リレーショナル
(DB2、Oracle、MS SQL-Serverなど)
シンプルなコンセプト初期のRDBモデル
オブジェクト指向/リレーショナルの拡張(Versant, VFS/FastObjects、Objectivity/DB、DB2 UDB、Oracle 10gなど)
複雑なデータをサポートRDBを拡張データウェアハウスWeb DBとして普及
XML
(Versant, VFS/FastObjects、 Objectivity/DB、DB2 UDB、Oracle 10gなど)
非構造化データを管理XML文書をサポート
XMLをベースにした新しいモデル
(dBengosiなど)
非構造化データと構造化データをXMLでサポート
データベースのコンセプトとデータモデルは以下のように進化しています。
データベースおよび関連技術は、社会のニーズに応えるために進化し続けています。人間の生活を向上させるために、大容量のデータをより高速で処理できるように進化してきました。データのタイプは、様々なものがあり、データ量も増加しています、リアルタイムでの処理が求められ、精密な分析ツールが必要になってきました。我々は、現在、情報の洪水とも言える状況に直面しており、大量のデータをシンプルに素早く、しかも正確に処理することが求められています。この競争の勝者となるためには、大量のデータの整合性とセキュリティを維持しながら、正確に情報を素早く分析できる方法を見つけ出すことが必要です。
データテック社は、XMLが持つ特性を最大限に引き出し、時代が求める性能を発揮できる次世代のデータモデルの構築を実現するため に活動していきます。