SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
実務で役立つデータベースの活用法
Report
Soudai Sone
Follow
linuxの錬金術師 at 忍者
Jul. 11, 2015
•
0 likes
•
19,252 views
1
of
140
実務で役立つデータベースの活用法
Jul. 11, 2015
•
0 likes
•
19,252 views
Download Now
Download to read offline
Report
Technology
オープンセミナー2015@香川の登壇資料です。 http://connpass.com/event/15646/
Soudai Sone
Follow
linuxの錬金術師 at 忍者
Recommended
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
19.8K views
•
151 slides
Web で変わったクラウドと postgre sql の今と昔
Soudai Sone
3.5K views
•
70 slides
Osh2014
Soudai Sone
2.4K views
•
98 slides
中国地方Db勉強会
Soudai Sone
1.9K views
•
49 slides
Postgre sqlから見るnosql
Soudai Sone
7.5K views
•
70 slides
DDDハンズオン
Soudai Sone
3.2K views
•
60 slides
More Related Content
What's hot
今すぐ使えるクラウドとPostgreSQL
Soudai Sone
4.2K views
•
111 slides
地方エンジニアがPostgreSQLを通じて成長した話
Soudai Sone
7.4K views
•
159 slides
すぐ始めれるクラウド
Soudai Sone
1.5K views
•
54 slides
便利なHerokuと active recordの 速度改善tips
豊明 尾古
4.4K views
•
54 slides
DBの闇を書くにはこの余白は狭すぎる
Soudai Sone
5.4K views
•
71 slides
レガシーな環境からモダンへの挑戦
Soudai Sone
2.4K views
•
57 slides
What's hot
(20)
今すぐ使えるクラウドとPostgreSQL
Soudai Sone
•
4.2K views
地方エンジニアがPostgreSQLを通じて成長した話
Soudai Sone
•
7.4K views
すぐ始めれるクラウド
Soudai Sone
•
1.5K views
便利なHerokuと active recordの 速度改善tips
豊明 尾古
•
4.4K views
DBの闇を書くにはこの余白は狭すぎる
Soudai Sone
•
5.4K views
レガシーな環境からモダンへの挑戦
Soudai Sone
•
2.4K views
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
Kosuke Kida
•
16.6K views
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
•
4.4K views
20151205 中国地方db勉強会 dbm_fs
Takahiro Iwase
•
717 views
データベース技術の羅針盤
Yoshinori Matsunobu
•
123.7K views
RDBってなに?
Soudai Sone
•
1.4K views
Oratopostgres-hiroshima
Kosuke Kida
•
1.6K views
NoSQLデータベースと位置情報
Koji Ichiwaki
•
17.6K views
RDBNoSQLの基礎と組み合わせDB構成をちょっとよくする話
Shohei Kobayashi
•
3.2K views
ARC-009_RDB 技術者のための NoSQL ガイド
decode2016
•
670 views
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
•
2.5K views
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
Kosuke Kida
•
940 views
データベース・リファクタリング読書会第四回オープニング
akitsukada
•
1.3K views
ActiveRecord::Enumのススメ
豊明 尾古
•
3.3K views
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
•
10.1K views
Viewers also liked
OSC北海道2014_JPUG資料
Chika SATO
10.9K views
•
92 slides
PostgreSQLとpython
Soudai Sone
14.2K views
•
87 slides
PostgreSQLアンチパターン
Soudai Sone
48.1K views
•
196 slides
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
42.5K views
•
60 slides
あなたが知らない リレーショナルモデル
Mikiya Okuno
31.2K views
•
68 slides
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
Shinichi Nakagawa
103.1K views
•
66 slides
Viewers also liked
(20)
OSC北海道2014_JPUG資料
Chika SATO
•
10.9K views
PostgreSQLとpython
Soudai Sone
•
14.2K views
PostgreSQLアンチパターン
Soudai Sone
•
48.1K views
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
•
42.5K views
あなたが知らない リレーショナルモデル
Mikiya Okuno
•
31.2K views
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
Shinichi Nakagawa
•
103.1K views
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
•
38K views
日本語:近年のデータベース技術がもたらすビジネス収益 --Google-slides
ippei_suzuki
•
2K views
日本語:開発者向けのMongo dbオペレーションガイド
ippei_suzuki
•
1.3K views
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
(株)TAM
•
2K views
Sql基礎の基礎
Satomi Tsujita
•
5.8K views
Pgunconf neo4j fdw
Toshi Harada
•
1.3K views
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
•
1.3K views
Neo4jrbにおけるOGM
takabes00
•
2K views
[D36] Michael Stonebrakerが生み出した列指向データベースは何が凄いのか? ~Verticaを例に列指向データベースのアーキテクチャ...
Insight Technology, Inc.
•
3.9K views
制約をつけて遊ぼう
Fumihito Yokoyama
•
753 views
超入門データベース基礎の基礎
Matsuzawa Fumiaki
•
2.4K views
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
Insight Technology, Inc.
•
5.8K views
Neoの世界へ
時雨 大西
•
914 views
Docker技術情報アップデート 2015年7月号
Masahito Zembutsu
•
16K views
Similar to 実務で役立つデータベースの活用法
実はとても面白い...Documentation library
Kouta Shiobara
1.5K views
•
57 slides
パネルディスカッション資料(公開版)
odakeiji
2.1K views
•
25 slides
非エンジニアのSQL活用が加速させる事業成長
Keiko Inagaki
3.2K views
•
50 slides
20140418 info talkセミナー資料
Takahiro Iwase
15.3K views
•
80 slides
20151029 CODATA
Taro misumi
152 views
•
57 slides
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
59.7K views
•
45 slides
Similar to 実務で役立つデータベースの活用法
(20)
実はとても面白い...Documentation library
Kouta Shiobara
•
1.5K views
パネルディスカッション資料(公開版)
odakeiji
•
2.1K views
非エンジニアのSQL活用が加速させる事業成長
Keiko Inagaki
•
3.2K views
20140418 info talkセミナー資料
Takahiro Iwase
•
15.3K views
20151029 CODATA
Taro misumi
•
152 views
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
•
59.7K views
Miyazaki流sql
hafuu
•
465 views
ArithmerDB Introduction
Arithmer Inc.
•
1.6K views
MySQL Workbench をモデリングツールとして使ってみた
Norio Nakamura
•
5.2K views
データ共有基盤の構築に向けて
National Institute of Informatics (NII)
•
2.3K views
「リクルートデータセット」 ~公開までの道のりとこれから~
Recruit Technologies
•
2.2K views
ビックデータ分析基盤の成⻑の軌跡
Recruit Lifestyle Co., Ltd.
•
2.7K views
ビジネスサイドが知っておくべきアプリケーションのデータ分析の話
Koyo 松本
•
63 views
オンプレ、クラウドを組み合わせて作るビックデータ基盤 データ基盤の選び方
Yu Yamada
•
5.2K views
異分野融合型の科学データ公開サイトLink data.org
Sayoko Shimoyama
•
1.2K views
WebDB Forum 2012 基調講演資料
Recruit Technologies
•
4.3K views
ビッグデータ&データマネジメント展
Recruit Technologies
•
6.5K views
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
•
3.2K views
20200629 データベース基礎~データベースの扱いとデータ設計~
Hikaru Tanaka
•
87 views
About NoSQL
hideaki honda
•
3K views
More from Soudai Sone
Webで役立つRDBの使い方
Soudai Sone
7.6K views
•
118 slides
Osc2014
Soudai Sone
2.7K views
•
88 slides
Postgre sql9.3新機能 (OSC hiroshima 2013)
Soudai Sone
3.2K views
•
100 slides
聞いたら参加したくなるJjug cccの報告
Soudai Sone
2K views
•
66 slides
地方における勉強会事情
Soudai Sone
5.3K views
•
107 slides
Wtm
Soudai Sone
1.8K views
•
126 slides
More from Soudai Sone
(12)
Webで役立つRDBの使い方
Soudai Sone
•
7.6K views
Osc2014
Soudai Sone
•
2.7K views
Postgre sql9.3新機能 (OSC hiroshima 2013)
Soudai Sone
•
3.2K views
聞いたら参加したくなるJjug cccの報告
Soudai Sone
•
2K views
地方における勉強会事情
Soudai Sone
•
5.3K views
Wtm
Soudai Sone
•
1.8K views
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
•
34.6K views
Git hub pagesで告知サイトを作ってみた
Soudai Sone
•
3.1K views
知って得する標準関数の使い方
Soudai Sone
•
1.7K views
Ph per のための php 最適
Soudai Sone
•
1.8K views
Webエンジニアのためのandroidアプリ開発
Soudai Sone
•
3.3K views
Ossで作るwebサイト
Soudai Sone
•
1.3K views
Recently uploaded
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
321 views
•
44 slides
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
91 views
•
24 slides
GraphQLはどんな時に使うか
Yutaka Tachibana
137 views
•
37 slides
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
32 views
•
44 slides
画像生成AIの問題点
iPride Co., Ltd.
127 views
•
9 slides
指側面を入力インタフェース化するリング型デバイス
sugiuralab
5 views
•
1 slide
Recently uploaded
(13)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
•
321 views
遠征ドルヲタのための便利サイトを作ってみた
Kenta Fujimoto
•
91 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
137 views
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
•
32 views
画像生成AIの問題点
iPride Co., Ltd.
•
127 views
指側面を入力インタフェース化するリング型デバイス
sugiuralab
•
5 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
72 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
90 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
83 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
245 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
113 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
226 views
CatBoost on GPU のひみつ
Takuji Tahara
•
982 views
実務で役立つデータベースの活用法
1.
実務で役立つ! データベースの活用法 オープンセミナー2015@香川
2.
What is it? データベースは何を基準に選んでますか?
3.
What is it? 利用するデータベースを 正しく選ぶこと はプロジェクトの成功にとても大切です
4.
What is it? しかし、時代は大NOSQL時代
5.
What is it? RDBすら多いのに… NOSQLって何よ… どれがいいのよ…
6.
What is it? RDBすら多いのに… NOSQLって何よ… どれがいいのよ…
7.
What is it? RDBすら多いのに… NOSQLって何よ… どれがいいのよ…
8.
What is it? そう言ったお悩みに 種類別データベースの活用方法 を今日は発表します
9.
What is it? ただし チューニングやDB設計 の話は今日はしません
10.
What is it? 主にデータベースの選び方の話です
11.
What is it? 正しいDB選択で 未来の自分を助ける 方法を説明します
12.
あじぇんだ 1 自己紹介 2 データベースの種類と特徴 3 データベースの選び方 4 まとめ
13.
あじぇんだ 1 自己紹介 2 データベースの種類と特徴 3 データベースの選び方 4 まとめ
14.
自己紹介 名前:曽根 壮大(そね たけとも) 年齢:30歳(三人の子供がいます) 職業:Webエンジニア 所属:日本PostgreSQLユーザ会 中国支部 支部長 技術的にはLL系言語とかRDBが好きです
15.
https://dbstudychugoku.github.io/
16.
あじぇんだ 1 自己紹介 2 データベースの種類と特徴 3 データベースの選び方 4 まとめ
17.
データベースの種類と特徴 RDBとNOSQL
18.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph
19.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph
20.
データベースの種類と特徴 RDB リレーショナルデータモデルの理論に 基づいたDBMSで現在もっとも広く使 われているデータベースシステム
21.
データベースの種類と特徴 NOSQL(Not Only SQL) RDB以外のDBシステムの総称 グラフデータモデルなどのリレーショ ナルモデル以外のサポートなどRDBが 不得意な分野に特化している
22.
データベースの種類と特徴 ACIDとCAP定理とBASE
23.
データベースの種類と特徴 ACID
24.
データベースの種類と特徴 ACID 関連する複数の処理を一つの処理単位 にまとめて管理するトランザクション 処理に求められる4つの特性
25.
データベースの種類と特徴 ACID • 原子性(Atomicity) • 一貫性(Consistency) •
独立性(Isolation) • 永続性(Durability)
26.
データベースの種類と特徴 ACID • 原子性(Atomicity) • 一貫性(Consistency) •
独立性(Isolation) • 永続性(Durability) Atomicity(原子性)とは、 トランザクションに含まれる個々の手順が 「すべて実行される」か「一つも実行されない」 のどちらかの状態になるという性質
27.
データベースの種類と特徴 ACID • 原子性(Atomicity) • 一貫性(Consistency) •
独立性(Isolation) • 永続性(Durability) Consistency(一貫性)とは、 トランザクションの前後でデータの整合性が保たれ、 矛盾の無い状態が継続される性質
28.
データベースの種類と特徴 ACID • 原子性(Atomicity) • 一貫性(Consistency) •
独立性(Isolation) • 永続性(Durability) Isolation(独立性)とは、 トランザクション実行中の処理過程が外部から隠 され、 他の処理などに影響を与えない性質
29.
データベースの種類と特徴 ACID • 原子性(Atomicity) • 一貫性(Consistency) •
独立性(Isolation) • 永続性(Durability) Durability(永続性)とは、 トランザクションが完了したら、 その結果は記録され、失われることがないという性質
30.
データベースの種類と特徴 CAP定理
31.
データベースの種類と特徴 CAP定理 Webサービスを想定して作られた 分散化データベースの定理 全てを完璧に満たすことができず、 いずれかに偏る形でしか出来ない
32.
データベースの種類と特徴 CAP定理 • 整合性 (Consistency) •
可用性 (Availability) • 分断耐性 (Partitions)
33.
データベースの種類と特徴 CAP定理 • 整合性 (Consistency) •
可用性 (Availability) • 分断耐性 (Partitions) 整合性 (Consistency)とは、 全てのクライアントが常に同一のデータを見る性質
34.
データベースの種類と特徴 CAP定理 • 整合性 (Consistency) •
可用性 (Availability) • 分断耐性 (Partitions) 可用性 (Availability)とは、 全てのクライアントが読み出しと書き込みが出来る性質
35.
データベースの種類と特徴 CAP定理 • 整合性 (Consistency) •
可用性 (Availability) • 分断耐性 (Partitions) 分断耐性 (Partitions)とは、 物理ネットワークが分断されても 間違った結果が発生しない性質
36.
データベースの種類と特徴 A:可用性C:整合性 P:分断耐性
37.
データベースの種類と特徴 A:可用性C:整合性 P:分断耐性 CA型 PostgreSQL、MySQLなど(RDB全般)
38.
データベースの種類と特徴 A:可用性C:整合性 P:分断耐性 Dynamo、Cassandraなど AP型
39.
データベースの種類と特徴 A:可用性C:整合性 P:分断耐性 MongoDB、Redisなど CP型
40.
データベースの種類と特徴 BASE
41.
データベースの種類と特徴 BASE 整合性(C)と分断耐性(P)を重視した場 合はACIDを満たす必要がある しかし整合性(C)よりも可用性(A)と分 断耐性(P)を重視する場合はBASEを 満たす必要がある
42.
データベースの種類と特徴 ACID(CP型)とBASE(AP型)
43.
データベースの種類と特徴 BASE • Basically Available •
Soft-State • Eventual Consistency
44.
データベースの種類と特徴 BASE • Basically Available •
Soft-State • Eventual Consistency どんな時でもアプリケーションが動く
45.
データベースの種類と特徴 BASE • Basically Available •
Soft-State • Eventual Consistency 常に整合性を保つ必要がない
46.
データベースの種類と特徴 BASE • Basically Available •
Soft-State • Eventual Consistency 結果として整合性が取れる状態に至る
47.
データベースの種類と特徴 アーキテクチャ
48.
データベースの種類と特徴 アーキテクチャ ↓ ACIDやBASEを どのように実現するか
49.
データベースの種類と特徴 アーキテクチャ ↓ マスタ型とP2P型
50.
データベースの種類と特徴 マスタ型 マスタ スレーブ スレーブ スレーブ
51.
データベースの種類と特徴 マスタ型 • RDB • MongoDB •
Bigtable • HBase …など
52.
データベースの種類と特徴 P2P型 マスタ マスタ マスタ マスタ
53.
データベースの種類と特徴 P2P型 • Cassandra • Dynamo •
Riak • Voldemort …など
54.
データベースの種類と特徴 データモデル
55.
データベースの種類と特徴 データモデル ↓ どのようなデータを扱うか
56.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
57.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
58.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など RDBの元となるデータモデル 集合と関連でデータを表現する
59.
データベースの種類と特徴 リレーショナル user_id name 1 hoge 2
fuga 3 bar 4 foo role_id name 1 開発部 2 営業部 3 運用部 4 総務部 user_id role_id 1 1 1 3 3 2 4 4
60.
データベースの種類と特徴 リレーショナル user_id name 1 hoge 2
fuga 3 bar 4 foo role_id name 1 開発部 2 営業部 3 運用部 4 総務部 user_id role_id 1 1 1 3 3 2 4 4 集合を定義する 関係を定義する
61.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
62.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など KeyとValueの組み合わせでデータを表現する シンプルな構造なのでスケールアウトに適している keyとvalueが1対1
63.
データベースの種類と特徴 キーバリュー key value 1 hoge 2
fuga 3 bar 4 foo 5 test 6 花子 7 一太郎 8 三四郎
64.
データベースの種類と特徴 キーバリュー key value 1 hoge 2
fuga 3 bar 4 foo 5 test 6 花子 7 一太郎 8 三四郎 1:1の関係を保持する
65.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
66.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など キーバリュー型を拡張して行とカラムの概念を追加 RDBのテーブルに似ているがカラムは事前に定義しない keyに対してvalue(カラム)が1対多も可能
67.
データベースの種類と特徴 カラム指向 key name 所属
所属2 年齢 1 hoge 開発 運用 30 2 fuga 営業 25 3 bar 総務 運用 22 4 foo 運用 35 5 test 開発 42 6 花子 デザイン 運用 25 7 一太郎 ドキュメント 開発 25 8 三四郎 表計算 総務 25
68.
データベースの種類と特徴 カラム指向 key name 所属
所属2 年齢 1 hoge 開発 運用 30 2 fuga 営業 25 3 bar 総務 運用 22 4 foo 運用 35 5 test 開発 42 6 花子 デザイン 運用 25 7 一太郎 ドキュメント 開発 25 8 三四郎 表計算 総務 25 1:Nの関係を保持する
69.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
70.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など 階層構造を持たず、ドキュメントそのものを保持する ドキュメントにはユニークなIDが振られる スキーマレスなので柔軟な変更が可能
71.
データベースの種類と特徴 ドキュメント指向 name : hoge role1
: 開発 role2 : 運用 age : 30 name : fuga role1 : 営業 from : 広島 age : 25 name : bar role1 : 総務
72.
データベースの種類と特徴 ドキュメント指向 name : hoge role1
: 開発 role2 : 運用 age : 30 name : fuga role1 : 営業 from : 広島 age : 25 name : bar role1 : 総務 それぞれが独立したドキュメント ドキュメントにはユニークなIDでアクセスが可能
73.
データベースの種類と特徴 ドキュメント指向 name : hoge role1
: 開発 role2 : 運用 age : 30 name : fuga role1 : 営業 from : 広島 age : 25 name : bar role1 : 総務 それぞれが独立しているので 自由な変更が可能
74.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など
75.
データベースの種類と特徴 データモデル • リレーショナル • キーバリュー •
カラム指向 • ドキュメント指向 …など 他にもグラフ型やツリー型など多種多様にある
76.
データベースの種類と特徴 これらの組み合わせで データベースの種類と特徴が決まる
77.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph
78.
あじぇんだ 1 自己紹介 2 データベースの種類と特徴 3 データベースの選び方 4 まとめ
79.
データベースの選び方 ドメインに合わせて選ぶ ACIDの必要性、CAP定理の条件でど れが必要か考えて選択肢を選ぶ
80.
データベースの選び方 RDBは多くのデータに対応している
81.
データベースの選び方 しかしRDBは万能ではない
82.
データベースの選び方 NOSQLは目的を絞り込んだDB
83.
データベースの選び方 まずはRDBで検討する ↓ その後、不足をNOSQLで補う
84.
データベースの選び方 RDBで問題なければRDBのみ
85.
データベースの選び方 RDBで問題なければRDBのみ ↓ 無理にNOSQLを使わない
86.
データベースの選び方 RDBも要件によって選ぶ
87.
データベースの選び方 SQL Server • 開発環境(VS,C#など)の連携が強力 •
標準的な機能の多くをサポート • GUIツールが便利
88.
データベースの選び方 Oracle • Active -
Activeな構成が可能(RAC) • 独自・標準的な多くの機能 • GUIやサードパーティが充実 • 強力なOracleサポートチーム(有償)
89.
データベースの選び方 MySQL • レプリケーションが柔軟で強力 • 自動フェイルオーバー完備 •
高速なコネクション(multi Thread) • OSSなサードパーティが充実 • SSDと相性が良い
90.
データベースの選び方 PostgreSQL • Oracleにも負けない豊富な機能 • 企業に属さない中立なOSS •
コミュニティを含めたサポート • OSSなサードパーティが充実
91.
データベースの選び方 デメリットも見る
92.
データベースの選び方 SQL Server • 商用なので有償 •
スケールアウトが苦手 • MS以外の環境でメリットが少ない • CUIの連携が少ない
93.
データベースの選び方 Oracle • 商用なので有償(しかも高い) • 行連鎖や行移行など設計が難しい •
サードパーティが有償(しかも高い) • ORA-00600のトラウマ
94.
データベースの選び方 MySQL • 実装されてない機能がある Window関数が無い マテビューがない等 • ギャップロック •
相関サブクエリが苦手(遅い)
95.
データベースの選び方 PostgreSQL • 追記型の制約(VACUUM、HOT等) • SSDにしても劇的な高速化はしない •
GUIが弱い(設定を含め、CUIベース) • デフォルトがdataチェックサム無効 そもそも9.3以上の機能
96.
データベースの選び方 RDBで解決できない問題
97.
データベースの選び方 RDBで解決できない問題 ↓ それをNOSQLで解決する
98.
データベースの選び方 RDB全般の問題 • 大量のデータを処理(ビックデータ) • DBの水平拡張(スケールアウト) •
多種多様なデータモデル対応
99.
データベースの選び方 RDB全般の問題 • 大量のデータを処理(ビックデータ) • DBの水平拡張(スケールアウト) •
多種多様なデータモデル対応
100.
データベースの選び方 大量のデータを処理 • テラやペタ級を処理 • それを高速に処理 •
結果を高速に表示 …など
101.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph
102.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph 大量のデータから高速に結果を場合
103.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph 結果のみを高速に返す場合
104.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph 大量のデータを集計する場合
105.
データベースの選び方 大量のデータを処理 PaaS(クラウド)がマッチしやすい ・BigQuery ・RedShift ・TreasureData
106.
データベースの選び方 高速に処理 キャッシュのようにKVSを使う ・Memcached ・DynamoDB ・Redis
107.
データベースの選び方 RDB全般の問題 • 大量のデータを処理(ビックデータ) • DBの水平拡張(スケールアウト) •
多種多様なデータモデル対応
108.
データベースの選び方 DBの水平拡張(スケールアウト) • 参照の負荷分散 • 更新の負荷分散 •
可用性の確保 …など
109.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph RDBでも出来るが 高速ではなかったり、 サードパーティが必要だったりする
110.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph Dataは分散するが 偏ったアクセスなどは 分散しない場合も多い
111.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph MongoDBはマスタ型だか 自動フェイルオーバーするので 要件によってはマッチする
112.
データベースの選び方 DBの水平拡張(スケールアウト) • RDBでも可能 シャーディングやレプリケーション ・負荷の予測と分散化が難しい ・RDBよりも簡単にNOSQLで行う
113.
データベースの選び方 DBの水平拡張(スケールアウト) • NOSQLは弱い整合性が多い(AP型) • データにリアルタイム性が不要な場 合がにマッチする(履歴ログなど) •
データの一貫性が不要な場合もマッ チする(ブログなど)
114.
データベースの選び方 RDB全般の問題 • 大量のデータを処理(ビックデータ) • DBの水平拡張(スケールアウト) •
多種多様なデータモデル対応
115.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph
116.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph JSONなど非構造化データを格納 最近、PostgreSQLやMySQLも対応してきた領域
117.
アーキテクチャ ーーーーーーー データモデル マスタ型 P2P型 その他 リレーショナル
RDB全般 pgpool2など キーバリュー Hibari Dynamo Riak Memcached Redis カラム指向 Bigtable HBase Cassandra ドキュメント指向 MongoDB CouchDB グラフ指向 Neo4J InfiniteGraph グラフ型はRDBが苦手なデータモデルの最たる例 RDBでは難しいデータ構造の表現を可能にする
118.
データベースの選び方 多種多様なデータモデル対応 • リレーショナルモデルで表現出来ないデー タ構造は無理しない 無理に表現すると問題の原因になる • データモデルが違う場合、お互いのデータ 利用にインターフェイスが必要 多くの場合はプログラムが結合する
119.
あじぇんだ 1 自己紹介 2 データベースの種類と特徴 3 データベースの選び方 4 まとめ
120.
まとめ データの寿命はコードより長い
121.
まとめ 一度作ったデータは変更が難しい
122.
まとめ 一度作ったデータは変更が難しい ↓ ソフトウェアの選択が大事
123.
まとめ 長所と短所を把握する
124.
まとめ 長所と短所を把握する ↓ 苦手なことをさせない
125.
まとめ ACIDとCAP定理で比較する + データモデルと要件を比較する
126.
まとめ データモデルとソフトウェア の特性を理解する
127.
まとめ リレーショナル・データベース
128.
まとめ リレーショナル・データベース ↓ グラフやツリーを表現させない
129.
まとめ ACIDを担保してないNOSQL
130.
まとめ ACIDを担保してないNOSQL ↓ お金の管理や集計をさせない
131.
まとめ インフラをデザインする ¦¦ 得意分野を組み合わせる
132.
まとめ 適切な設計は適切な拡張を生む
133.
まとめ 適切な設計は適切な拡張を生む ↓ Scale UpやScale Outを可能にする
134.
まとめ データの寿命はコードより長い 大事なことなので二回(ry
135.
まとめ オススメの書籍
136.
まとめ
137.
まとめ
138.
まとめ
139.
まとめ もし現在のアプリケーションがRDBで 上手く動いているのであれば、 それをNOSQLに置換する理由は無いし、 それを勧めたりはしない Nate McCall(@zznate)
140.
ご静聴ありがとうございました。