NoSQLとは、従来の関係モデルに基づかずに構築されたデータベースシステムの総称であり、SQLを用いないことからNoSQL(Not only SQL)の略とされています。SQLを用いると大量データ、複数サーバに分散したデータを扱うクラウドサービスにおいては性能が低下する場合があることから、そうしたSQLでは対応できない領域を保管するために利用されることがあります。
CAP定理とは、クラウドサービスを始めとする情報システム(ネットワークでつながった、共通のデータを持つ、一連のノード群)において、「以下の3要素を同時に満たすことができない」というものです。
CAP定理の3要素 | 説明 |
---|---|
Consistency: 一貫性 |
誰かがデータを更新したら、その後は必ず更新後のデータが参照できること |
Availability: 可用性 |
クライアントは必ずデータにアクセス可能であること(データが壊れたり、ロック待ちにならないこと) |
Partition Tolerance: ネットワーク分断耐性 |
データを複数サーバに分散して保管できること(データが複数のサーバに分散されており、1つサーバに障害が発生し、データが破損した場合でも、別サーバによりデータが参照可能であること) |
上記3要素のうち2要素を満たすと、例えば以下のようなシステムになります。
例 | 満たす要素(○) 満たさない要素(×) |
システムの例 | 特徴 |
---|---|---|---|
<1> | 一貫性:○ 可用性:○ ネットワーク分断耐性:× |
単一サーバで動作するデータベース | 従来のWebシステムの多くがこのパターンに該当する。データベースは分散させず、トランザクション処理機能により一貫性を保つ |
<2> | 一貫性:○ 可用性:× ネットワーク分断耐性:○ |
分散データベース | 2相、3相コミットにより一貫性を保てるが、サーバが増えるとロック待ちが発生し、可用性が損なわれる |
<3> | 一貫性:× 可用性:○ ネットワーク分断耐性:○ |
DNS、NTP、HTTPキャッシュなど | 複数台で運用し、特定の一台でアクセスを受け付け、ロックもかけないため可用性を満たすが、更新情報がサーバ間で伝搬するまでデータの不整合が発生し、この間は一貫性を満たすことができない |
クラウドサービスにおいては、遍く広くの人が利用できることが前提となるためデータベースサーバの台数を増やして負荷分散する必要があることからネットワーク分断耐性が必須となります。CAP定理に基づくと、一貫性か可用性を捨てるということになりますが、サービスである以上可用性を完全に捨てるわけにはいきません。このため、以下のように、可用性の一部と一貫性の多くを妥協した形で成立させた、クラウドサービス向きのトランザクション特性モデルをBASE特性と呼びます。
NoSQLによるデータベースではこの考え方を取り入れることによりスケールアウトを実現しています。将来的に出題頻度が増えることが予想されるため、上記の3つの特性について押さえて下さい。
従来の関係データベースのトランザクション特性がACID(英語で“酸”の意味)であるのに対して、BASE(英語で“塩基”の意味)と覚えましょう。
インターネット販売などの巨大な取引データを高速に処理するために、NoSQLと呼ばれるデータ処理方式が使われることがある。その特性のうち結果整合性(Eventual Consistency)の説明として、適切なものはどれか。
ア データを複製し、複数サイトに分散して保持するとき、コンシステントハッシング手法によって、時間帯別に格納先を固定する。
イ 複数のクライアントからの更新要求が衝突する場合、ロック機構によってどちらかを待たせることで整合性を保つ。
ウ 分散した複製サイト間で更新内容を厳密に同期させずに、同期の一時的な遅れを許容する。
エ 分散した複製サイト間で更新内容を整合させるために、2相ロック方式を採用する。
(H27春DB午前II問18)
解答 演習30-3 ウ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
アはCAP定理にあるネットワーク分断性の特徴、イは従来のACID特性における一貫性を保つための手段であるロック、エは従来のACID特性における原子性を保つための手段であるコミットメント制御に関する説明となります。
ソフトウェア開発に用いられるリポジトリシステムは、メタデータを管理するためのある種のDBMSである。一般のDBMSでは不要だが、リポジトリシステムでは必須の機能として、適切なものはどれか。
(H19春DB午前問14)
ア 格納したデータに対する照会機能
イ 格納したデータについての複数のバージョンを管理する機能
ウ 多数の端末から入力されるデータ間の整合性を保証するための同時実行制御機能
エ データごとの更新・照会操作の権限を管理する機能
解答 Point check イ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
Copyright © ITmedia, Inc. All Rights Reserved.