応用情報技術者平成30年春期 午前問30
ビッグデータの基盤技術として利用されるNoSQLに分類されるデータベースはどれか。
1、NoSQL(Not only SQL)は、
データへのアクセス方法をSQLに限定しないデータベース管理システムの総称で、長い間決まったように使用されてきた関係データベース管理システム以外のDBMSという意味で用いられます。
RDBMSはデータを扱う際のコストも高くなり、ビッグデータなどの高頻度で膨大なデータを扱う場面ではパフォーマンス面での劣化が現れてきました。
NoSQLは、スキーマレスで軽量なのでデータの参照や追加を低コストで実行できます。さらにスケーラビリティ(=拡張性)にも優れるため大量に蓄積されていくデータを扱うのに適しています。
NoSQLには大まかに分けて4つのタイプがあります。
・キー・バリュー型
1つのキーに1つの値を結びつけてデータを格納する
・カラム指向
行キーに対してカラム(名前と値の組み合わせ)を結びつけて格納する
・ドキュメント指向
XMLやJSONなどの構造でデータを格納する
・グラフ指向
グラフ理論に基づいてデータ間の関係性を表現する
NoSQLはトランザクションをサポートせず「結果整合性」という考え方に基づいてデータ処理を行います。結果整合性とは、即座にデータが反映されることを前提とせず、結果的に(実際に読み込まれる時までに)一貫性が保証されていればよいという考え方です。NoSQLは、このアプローチに基づき一貫性の保証を弱めることでスケールアウトを容易にしています。
・スケールアウトとは、コンピュータシステムの性能を増強する手法の一つで、コンピュータの台数を増やすことでシステム全体の性能を向上させること。 処理を並列化、分散化できるシステムで適用される。
2、各種類NoSQLデータベースの詳細:
1)、 キー・バリュー型
RDBのようなテーブルや関係性を定義せず、キーとバリューという組み合わせからなるシンプルなデータモデルです。
データが増えるにつれて表が縦の方向に伸びていくイメージです。
データモデルが単純であることからデータを容易に分割可能なことから、スケールアウトに最適なのが特徴です。
2)、カラム指向型
上記のキーバリュー型にカラムの概念を持たせたデータモデルです。
行に付与されたキーが複数のカラムを持つことができます。
カラム数はRDBのように固定ではなく、動的に追加していくことができます。
RDBを利用していると異質に思えるかもしれませんが、ほかの行には存在しないカラムを持つ行を作ることができます。
3)、ドキュメント指向型
JSONやXML形式で記述されたドキュメントの形でデータを管理することができます
各ドキュメントは階層構造を持たず、相互の関係を横並びに管理します。
RDBのように固定されたデータ設計が不要なことから「スキーマレスである」と言われます。
例は、ブログの投稿履歴とメールの送信履歴をドキュメント指向型データベースに記録したとします。
これらは全く異なる性質のデータですが「投稿日と送信日が2018/9/18のデータ」と指定することで、関係するデータが取得できます。
4)、グラフ型
データとデータ感のつながりを管理できるデータモデルです。
グラフ型のデータベースには以下の構成で表現されます。
・ノード
・リレーションシップ
・プロパティ
例えば、FaceBookの友達関係をグラフ型で表現すると以下のようになります。
・Aさんというアカウントが存在します(ノード)
・AさんはBさんと関係があります(リレーションシップ)
・AさんとBさんは友達同士です(プロパティ)
・この基本構造を拡張していくと「Aさんの友達であるBさんの友達」や「Aさんと友達になってから
・3年以上経過したアカウント」といった検索も可能になります。
3、オブジェクト指向データベースの説明
関係データモデルをオブジェクト指向データモデルに拡張し,操作の定義や型の継承関係の定義を可能としたデータベース
4、データウェアハウスの説明
経営者の意思決定を支援するために,ある主題に基づくデータを現在の情報とともに過去の情報も蓄積したデータベース
5、データディクショナリやリポジトリの説明
データ項目の名称や形式など,データそのものの特性を表すメタ情報を管理するデータベース
参照:
【超入門】RDBとNoSQLの違いに着目!NoSQLに求めるものとは?
https://tech-blog.rakus.co.jp/entry/20180919/nosql/bigdata