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

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

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

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

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 ※代表的なデータベースのソフトウェアの抜粋