Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースの種類と特徴 / Explanation-of-database-types

データベースの種類と特徴 / Explanation-of-database-types

RDBとNOSQLの違いにフォーカスしながら種類と特徴について解説する資料です。

Avatar for soudai sone

soudai sone

May 23, 2020
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. 自己紹介
 曽根 壮大(35歳)
 Have Fun Tech LLC 代表社員
 
 そ 

    ね   たけ とも
 • 日本PostgreSQLユーザ会 勉強会分科会 担当
 • 3人の子供がいます(長女、次女、長男)
 • 技術的にはWeb/LL言語/RDBMSが好きです
 • コミュニティが好き
  2. RDBとNOSQL アーキテクチャ / データモデル マスタ型 P2P型 その他 リレーショナル MySQL PostgreSQL

    ProxySQL pgpool-2 キーバリュー Redis Memcached Redis Cluster カラム指向 Redshift Cassandra ドキュメント指向 MongoDB グラフ指向 Neo4J InfiniteGraph ※代表的なデータベースのソフトウェアの抜粋

  3. RDBとNOSQL アーキテクチャ / データモデル マスタ型 P2P型 その他 リレーショナル MySQL PostgreSQL

    ProxySQL pgpool-2 キーバリュー Redis Memcached Redis Cluster カラム指向 Redshift Cassandra ドキュメント指向 MongoDB グラフ指向 Neo4J InfiniteGraph ※代表的なデータベースのソフトウェアの抜粋

  4. • 原子性(Atomicity)
 • 一貫性(Consistency)
 • 独立性(Isolation)
 • 永続性(Durability)
 ACIDとCAP定理とBASE ACID


    
 トランザクションに含まれる個々の手順が
 すべて実行される or すべて実行されない 
 のどちらかになる性質

  5. • 原子性(Atomicity)
 • 一貫性(Consistency)
 • 独立性(Isolation)
 • 永続性(Durability)
 ACIDとCAP定理とBASE ACID


    
 トランザクションの前後でデータの整合性が保たれ、
 矛盾の無い状態が継続される性質

  6. • 原子性(Atomicity)
 • 一貫性(Consistency)
 • 独立性(Isolation)
 • 永続性(Durability)
 ACIDとCAP定理とBASE ACID


    
 トランザクション実行中の処理過程が
 外部から隠蔽され、
 他の処理などに影響を与えない性質

  7. • 原子性(Atomicity)
 • 一貫性(Consistency)
 • 独立性(Isolation)
 • 永続性(Durability)
 ACIDとCAP定理とBASE ACID


    
 トランザクションが完了した場合に、
 その結果は記録され、失われることはない性質

  8. • Basically Available
 • Soft-State
 • Eventually Consistent
 ACIDとCAP定理とBASE BASE


    可用性が高く、常に利用可能である
 どんなときもアプリケーションが動く

  9. • Basically Available
 • Soft-State
 • Eventually Consistent
 ACIDとCAP定理とBASE BASE


    厳密なステータスではなく、
 送られてくる情報によって変化する
 常に整合性を保たなくて良い

  10. アーキテクチャとデータモデル リレーショナル
 
 user_id name 1
 hoge
 2
 fuga
 3


    foo
 user_id role_id 1
 1
 1
 3
 3
 2
 4
 4
 role_id name 1
 開発部
 2
 営業部
 3
 運用部
 4
 総務部

  11. アーキテクチャとデータモデル リレーショナル
 
 user_id name 1
 hoge
 2
 fuga
 3


    foo
 user_id role_id 1
 1
 1
 3
 3
 2
 4
 4
 role_id name 1
 開発部
 2
 営業部
 3
 運用部
 4
 総務部
 集合を定義する
 関係を定義する

  12. アーキテクチャとデータモデル キーバリュー
 key value 1
 hoge
 2
 fuga
 3
 foo


    4
 bar
 fuga
 次郎
 hoge
 太郎
 foo
 花子
 1:1の関係を保持する

  13. アーキテクチャとデータモデル ドキュメント指向
 name : hoge
 role : 開発
 age :

    30
 name : fuga
 role : 開発,営業
 from : 広島
 age : 30
 name : foo
 role : 総務
 
 それぞれが独立したドキュメント
 ドキュメントにはユニークなIDでアクセス

  14. RDBとNOSQL アーキテクチャ / データモデル マスタ型 P2P型 その他 リレーショナル MySQL PostgreSQL

    ProxySQL pgpool-2 キーバリュー Redis Memcached Redis Cluster カラム指向 Redshift Cassandra ドキュメント指向 MongoDB グラフ指向 Neo4J InfiniteGraph ※代表的なデータベースのソフトウェアの抜粋