LoginSignup
1
1

More than 1 year has passed since last update.

データベースの入門レベルの知識の整理(参考:『おうちで学べるデータベースのきほん』)

Posted at

ミック・木村明治『お家で学べるデータベースのきほん』という本を参考に、
データベースの入門レベルの知識の整理をしました。

データベースの分類
- 階層型
- リレーショナル
- オブジェクト指向
- XML
- NoSQL
- 最も主流なのはリレーショナルデータベース

リレーショナルデータベース
- リレーショナルの意味は、二次元表
ここでは関係という意味ではない。

DBMSとデータベースの違い
- データベースは、機能や構造を表す抽象的な観念
- DBMSは、それらを具現化した実在するソフトウェア

ソフトウェアとデータベースの関係性
- データベースはミドルウェアに属するソフトウェア。
すなわち、データベースはOS上にインストールすることで動きます。

データベースにまつわるお金の話
- システムの開発や維持の際には、
システムに起因する利益と費用のバランスをとることが大切。
システムが完成しても、リリース後に投資回収できず赤字になるなら失敗です。
- システムのトータル費用の内訳
○ イニシャルコスト=最初にまとめて払うお金
○ ランニングコスト=サービスを利用する期間、継続的に払うお金
例:アパートでは、敷金・礼金がイニシャルコスト。家賃はランニングコストです。
- DBMSの費用
○ イニシャルコスト=ライセンス料金
○ ライセンス料は、論理的な単位で販売されます。
代表的な販売単位は、プロセッサライセンスとユーザライセンス。
○ さらに、イニシャルコストを決定する要素は「エディション」と「オプション」の選択。オプションはレプリケーションなどの機能です。
○ ランニングコスト=サポート料
サポートの例:バグ修正のプログラムリリース、技術的なQ&A
○ 製品にはバージョンがあります。バージョンが古いと、それに対応したサポート期間が終了してサポートが受けられなくなる可能性があります。一方、バージョンが新しいと、利用者が少ないがゆえに製品の動作が不安定だったり、バグが多かったりする可能性があります。

データベースとアーキテクチャ構成
- アーキテクチャとは
○ アーキテクチャ=「どのような機能を持ったサーバを用意し、どのようなストレージやネットワーク機器と組み合わせてシステム全体を作り上げるか」というハードウェアとミドルウェアの構成
○ システムの目的と機能を表現するものと言えます
- データベースのアーキテクチャ
○ Web3層がWebベースのシステムの標準

Web3層のシステムの図
image.png
- 可用性と拡張性を確保するためのアーキテクチャ
§ 信頼性=ハードウェアやソフトウェアが故障する頻度、故障の期間がどれほど少ないか
§ 可用性=利用者目線で、システムをどの程度使用できるか
個々のコンポーネントの信頼性が低くとも、アーキテクチャによって可用性を高めることができます。
§ アーキテクチャの二つの方針
□ 1つのコンポーネントの信頼性を上げる(故障しにくくする)
□ コンポーネントをたくさん並列する。この方法はクラスタリングと呼びます。

DBサーバのクラスタリング
○ データベースは大量のデータを永続的に保存することとパフォーマンスが要求されます。
○ DBサーバ内部のローカルストレージやメモリではこの要求を満たせないので、
専用の外部ストレージが用いられます。
○ データの冗長化は困難。なぜならデータは常に更新されるので、並列したデータ同士の間でデータ整合性を保つための仕組みが必要になるからです。
○ そのような課題の中での冗長化の方法は、シェアードディスク、レプリケーション、シェアードナッシングです。
§ シェアードディスク
□ DBサーバのみを冗長化
□ ストレージは単一

シェアードディスクの図
image.png
□ シェアードディスクの下位の分類
〇DBサーバの状態がActiveとActive
◊ DBサーバが同時に稼働
→ダウンタイム時間が短い
&パフォーマンスが向上
〇DBサーバの状態がActiveとStand-by
◊ 障害発生時以外は稼働しないDBサーバがある
→Active-Activeに比べるとダウンタイム時間が長い

レプリケーション
§ シェアードディスクだと、ストレージ部分が冗長化されないので、
ストレージが壊れるとデータが失われます
§ これに対処するためのクラスタ構成が
レプリケーション
=DBサーバとストレージのセットを冗長化

レプリケーションの図
image.png

シェアードナッシング=ストレージは共有しないで分離
→仕組みが単純&サーバとストレージのセットを増やせば並列処理により線形に性能が向上
一方、デメリットは各ストレージにデータが分散しているので、単一のDBサーバがアクセスできないデータが出てくる点

シェアードナッシングの図
image.png
対比のためのシェアードディスクの図(ストレージ内のデータに注目)
image.png

以上です。
拙文をお読みくださりありがとうございました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1