データベースの色々な種類とか基礎内容

未分類

CRUD

データベースのデータ操作の総称。

項目概要内容
Create追加データを追加する操作
Read参照データを参照、抽出する操作
Update更新データを更新する操作
Delete削除データを削除する操作

トランザクションとACID

データベースの状態を更新する際の一貫した操作の集まりをトランザクションという。
トランザクションは以下の性質を持つ必要がある。

項目概要内容
Atomicity原子性トランザクションは0か全である必要がある。
「一つも実行されない」か、「すべて実行される」必要がある。
Consistency整合性
一貫性
トランザクションの前後でデータの整合性が保たれる必要がある。
Isolation独立性トランザクションがほかの処理に影響を与えないこと。
複数のトランザクションを処理しても、単独実行と同じ結果となること。
Durability耐久性トランザクションの結果は障害が発生しても失われることがないこと。

データベースのCOMMIT

トランザクション処理システムは、1つのトランザクション内の全操作がエラー無しに成功するか、全操作が実行されないことを保証する。一部の操作が成功し、他の操作でエラーが発生した場合、トランザクション処理システムはそのトランザクションの「全」操作を「ロールバック; roll back」し、そのトランザクションによる痕跡を消去してデータベースを一貫した状態(そのトランザクションを開始する前の状態)にリストアする。あるトランザクションの全操作が完了した場合、そのトランザクションはシステムによって「コミット; commit」され、データベースに加えられた更新内容が恒久的なものとなる。コミットされたトランザクションがロールバックされることはない。

https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%87%A6%E7%90%86

トランザクションは全工程が正常に完了したのちに、コミットがされ、反映される。
→Atomicity

トランザクションが途中で失敗すると、ロールバックされ元の状態に戻る。
→Consistency

コミットされたトランザクションは障害が発生しても失われることはない。
→Durability

整合性モデル

同時に複数人がアクセスした際のデータの取り扱い方法。

項目内容
結果整合性変更中のデータが完了していない間でも、他の人は古いデータを参照可能。
強い整合性データ変更中、他の人はデータを参照することができない。

RDB

リレーショナルDBはデータ間の関係性が定義されたデータを取り扱うデータベース。
列と行からなるテーブルが定義されており、テーブル間の関係性が定義されている。
データの操作にはSQL(Structured Query Language)を利用する。

RDBのソフトウェア例

  • PostgreSQL
  • Oracle Database
  • SQL Server
  • MySQL
  • MariaDB

AWSだとAmazon Relational Database Service (RDS)とかがある。

NoSQL

SQLを利用しないデータベース。
扱うデータとしては半構造化、非構造化データが対象となる。

概要内容
構造化データ「列」、「行」の概念を持つデータ。
RDBに格納されるようなデータを構造化データと呼ぶ。
非構造化データテキスト、動画、音声、ドキュメントのような類。
半構造化データXML/JSON等、構造化と非構造化の中間ぐらいの特性を持つ
構造/非構造/半構造

また、NoSQLのデータ構造にもタイプが存在する。

概要内容
キーバリューストアKey、Value型の単純なデータ構造(KVS)
パフォーマンスが非常に高速
ワイドカラムストアデータ(Value)がカラムで管理される。
行ごとにカラムを大量に格納ができる。
ドキュメントデータベースデータ(Value)にJSON/XMLといったデータを格納する。
グラフデータベースグラフ構造を備えたデータベース

(参考).ワイドカラム

NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術
ヤフーのデータ基盤を支えるCassandraデータベースについてご紹介します!

(参考).グラフデータベース

グラフデータベースとは何か ~ネットワーク状のデータ構造から瞬時に情報を検索するDBを解説 - アイマガジン|i Magazine|IS magazine
 昨今は技術者でなくても、多く…

データベースの色々

扱うデータや、特徴によって、データベースはさらに細かく以下の分類がされる。

項目内容
リレーショナルDBSQLを利用してデータを操作するデータベース。
業務システムで利用され、会計データなどの業務系の構造データを扱う。
ソフトウェアの種類についてはRDB項を参照
データウェアハウスRDBの一種で構造化データを扱うが、データの抽出・集約に特化。
ビジネスインテリジェンス(BI)分析用に使われるデータベース。
分析特化のため、抽出、集計は早いが更新等は遅い。
・ORACLE Exadata
・VERTIICA
・TERADATA
・Greenplum
等々。(聞いたことない。。。)
AWSだとRedShift
分散型DB/
データレイク
構造化データや非構造化データをそのまま格納する中央リポジトリと、
データを処理するソフトで構成されるシステムの総称。

AWSだとS3が該当する。S3上のデータはAmazon Athenaを使うことで、
SQLを利用してS3上のCSVやJSONといったファイルにアクセスができる。
KVSKey、Value型のシンプルなデータを扱う。
結果整合性を採用しており、高速処理に特化。
・redis
・riask
等々。
AWSだとElastiCacheDynamoDB
ワイドカラム型先述のワイドカラムを参照。
・Cassandra
・Apache HBASE
AWSだとDynamoDB
ドキュメントDB先述のドキュメントDBを参照。
・mongoDB
・MarkLogic
・CouchDB
・Couchbase
等々。(こっちも聞いたことないのばっか・・・)
AWSだとAmazon DocumentDB
インメモリDBKVSのデータをメモリ上で展開することで高速処理を実現。
非常にテイレンテンシな環境において利用される。
・Apache GEODE
・ORACLE Coherence
・hazelcast
・Ignite
・infinispan
等々。(聞いたことない・・・)
AWSだとRedis ElastiCache
グラフDB先述のグラフDBを参照。
・neo4j
AWSだとAmazon Neptune
分散OLTPOnLine Transaction Processing
RDBをオンラインで分散して処理するためのデータベース。
Amazon Aurora

コメント

タイトルとURLをコピーしました