「メタデータ」「NoSQL」「CAP定理」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(31)(2/2 ページ)
あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は「メタデータ」「NoSQL」「CAP定理」の基礎を解説します。
NoSQL
NoSQLとは、従来の関係モデルに基づかずに構築されたデータベースシステムの総称であり、SQLを用いないことからNoSQL(Not only SQL)の略とされています。SQLを用いると大量データ、複数サーバに分散したデータを扱うクラウドサービスにおいては性能が低下する場合があることから、そうしたSQLでは対応できない領域を保管するために利用されることがあります。
CAP定理
CAP定理とは、クラウドサービスを始めとする情報システム(ネットワークでつながった、共通のデータを持つ、一連のノード群)において、「以下の3要素を同時に満たすことができない」というものです。
CAP定理の3要素 | 説明 |
---|---|
Consistency: 一貫性 |
誰かがデータを更新したら、その後は必ず更新後のデータが参照できること |
Availability: 可用性 |
クライアントは必ずデータにアクセス可能であること(データが壊れたり、ロック待ちにならないこと) |
Partition Tolerance: ネットワーク分断耐性 |
データを複数サーバに分散して保管できること(データが複数のサーバに分散されており、1つサーバに障害が発生し、データが破損した場合でも、別サーバによりデータが参照可能であること) |
上記3要素のうち2要素を満たすと、例えば以下のようなシステムになります。
例 | 満たす要素(○) 満たさない要素(×) |
システムの例 | 特徴 |
---|---|---|---|
<1> | 一貫性:○ 可用性:○ ネットワーク分断耐性:× |
単一サーバで動作するデータベース | 従来のWebシステムの多くがこのパターンに該当する。データベースは分散させず、トランザクション処理機能により一貫性を保つ |
<2> | 一貫性:○ 可用性:× ネットワーク分断耐性:○ |
分散データベース | 2相、3相コミットにより一貫性を保てるが、サーバが増えるとロック待ちが発生し、可用性が損なわれる |
<3> | 一貫性:× 可用性:○ ネットワーク分断耐性:○ |
DNS、NTP、HTTPキャッシュなど | 複数台で運用し、特定の一台でアクセスを受け付け、ロックもかけないため可用性を満たすが、更新情報がサーバ間で伝搬するまでデータの不整合が発生し、この間は一貫性を満たすことができない |
BASE特性
クラウドサービスにおいては、遍く広くの人が利用できることが前提となるためデータベースサーバの台数を増やして負荷分散する必要があることからネットワーク分断耐性が必須となります。CAP定理に基づくと、一貫性か可用性を捨てるということになりますが、サービスである以上可用性を完全に捨てるわけにはいきません。このため、以下のように、可用性の一部と一貫性の多くを妥協した形で成立させた、クラウドサービス向きのトランザクション特性モデルをBASE特性と呼びます。
NoSQLによるデータベースではこの考え方を取り入れることによりスケールアウトを実現しています。将来的に出題頻度が増えることが予想されるため、上記の3つの特性について押さえて下さい。
従来の関係データベースのトランザクション特性がACID(英語で“酸”の意味)であるのに対して、BASE(英語で“塩基”の意味)と覚えましょう。
演習30-3
インターネット販売などの巨大な取引データを高速に処理するために、NoSQLと呼ばれるデータ処理方式が使われることがある。その特性のうち結果整合性(Eventual Consistency)の説明として、適切なものはどれか。
ア データを複製し、複数サイトに分散して保持するとき、コンシステントハッシング手法によって、時間帯別に格納先を固定する。
イ 複数のクライアントからの更新要求が衝突する場合、ロック機構によってどちらかを待たせることで整合性を保つ。
ウ 分散した複製サイト間で更新内容を厳密に同期させずに、同期の一時的な遅れを許容する。
エ 分散した複製サイト間で更新内容を整合させるために、2相ロック方式を採用する。
(H27春DB午前II問18)
解答 演習30-3 ウ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
アはCAP定理にあるネットワーク分断性の特徴、イは従来のACID特性における一貫性を保つための手段であるロック、エは従来のACID特性における原子性を保つための手段であるコミットメント制御に関する説明となります。
Point check
ソフトウェア開発に用いられるリポジトリシステムは、メタデータを管理するためのある種のDBMSである。一般のDBMSでは不要だが、リポジトリシステムでは必須の機能として、適切なものはどれか。
(H19春DB午前問14)
ア 格納したデータに対する照会機能
イ 格納したデータについての複数のバージョンを管理する機能
ウ 多数の端末から入力されるデータ間の整合性を保証するための同時実行制御機能
エ データごとの更新・照会操作の権限を管理する機能
解答 Point check イ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 春期試験の押さえどころを総ざらい!
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。 - データベーススペシャリスト試験(Database Specialist Examination)
ITエンジニアに必要な各種資格情報を解説する「@IT自分戦略研究所 資格辞典」。今回は、IPAが実施する情報処理技術者試験の「高度試験」9区分のうちの一つ「データベーススペシャリスト試験」を紹介する。 - 真のデータベースエンジニアを目指そう!
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】