データベースの役割
データベースの主な役割は「データの蓄積」と「データの使用」で、大量のデータを蓄積し、必要に応じてデータを利用することができる。
データの利用はCreate(作成)、Read(読み込み)、Update(更新)、Delete(削除)の4つの機能からなり頭文字をとってCRUDと言われている。
トランザクション
データベースをある一貫した状態から別の一貫した状態へ変更する1つの束のこと
トランザクション処理のASID
- 原子性(Atomicity)
- トランザクション処理は完全に実行される(COMMIT
)、もしくは完全に実行されない(ROLLBACK
)性質を表します。
- トランザクション処理は完全に実行される(COMMIT
- 一貫性(Consistency)
- トランザクションが必ず一定のルールに沿って
データベースに変更を行う性質を表します。
- トランザクションが必ず一定のルールに沿って
- 独立性(Isolation)
- 複数の処理が同時に実行されても、それぞれがお互いに干渉しない性質を表します。
- 永続性(Durabirity)
- 一旦確定(COMMIT)したデータは、その後障害が発生しても永遠に変わらず保持される性質
データベースの種類
リレーショナルDBか非リレーショナルDBの大きく分けて2つのDBがある
リレーショナルDB
ORACL, MySQL, PostgreSQLなどのDB
- データ間の関係性が定義されたデータを取り扱う一般的なDBシステム
- データ操作にはSQLを使用
ビッグデータ向けDB
NoSQL
- リレーショナルDBの構造を持たずSQLを使用しないDBの総称
- ただし操作しやすいように一部SQLやSQLに似たクエリ処理を適用したモデルもある
- 非構造化データ(音声、動画、テキストなど)や半構造化データ(XML, JSON, 文書など)を扱える
- KeyとValueのみのデータを扱えるため軽くビックデータに向いている
NoSQLのデータタイプ
キーバリュー型
Key | Value |
---|---|
ニャオハ | (図鑑Number : 001, タイプ : くさ, 最終進化: マスカーニャ) |
ホゲータ | (図鑑Number : 004, タイプ : ほのお, 最終進化レベル : 36レベル) |
クワッス | (図鑑Number : 007, タイプ : みず, 最終進化タイプ : みず・かくとう) |
- バリューの内容に関しては、データごとに異なっていて良い。
- 構造がシンプルなので高速に処理できる上、容量も少なくすむ。
- 複雑な検索処理に適していない
AWSサービス
ElastiCache, DynamoDB
カラム指向型
Key | 図鑑Number | タイプ | 最終進化 | 最終進化タイプ |
---|---|---|---|---|
ニャオハ | 001 | くさ | マスカーニャ | くさ・あく |
ホゲータ | 004 | ほのお | ラウドボーン | ほのお・ゴースト |
クワッス | 007 | みず | ウェーニバル | みず・かくとう |
Key-Value型にカラムが追加されたデータベースで、キーごとに任意のカラムを追加できるのに加えて、全てのカラムにバリューが入っている必要がないため柔軟にデータベースを構築できる。
AWSサービス
DynamoDB
ドキュメント型
キー |
---|
ニャオハ |
{
ZukanID : 001
taipu : "kusa"
saisyu : "masuka-nya"
saisyuTaipu : "kusa&aku"
}
キーに対してJSONやXML形式でデータを管理するデータベースの種類
AWSサービス
Amazon DocumentDB
グラフ型
グラフ演算に特化したDBでデータの関係性をグラフで相互に結びついた要素で構成されている
RDSと比較すると高速横断検索が可能
AWSサービス
Amazon Neptune
おわりに
NoSQLに対して苦手意識があるので今度まとめてみたいと思いました。
間違いがありましたらご指摘いただけると助かります。