狠狠撸

狠狠撸Share a Scribd company logo
ビジネスサイドが知っておくべき
アプリケーションのデー
タ分析 についての話
Today’s Goal
Let’s think about today’s goal.
0
Webアプリケーションのデータを確認しながらサービス改善施策の立案を行え
るようになるための基礎知識を得る。
今日のゴールは?
3
今日 話したいこと
ビジネスサイドとして知っておくべきデータ分析の基礎知識について、
主に「データベースとSQL」についての話をします
● 1. データベースとは?
● 2. SQLとは?
● 3. データベースのデータを使って分析を行うには?
わからないことがあれば適宜質問してください。一通り話し終わった後にも質問タイムを設けますので、そ
こで質問いただいても大丈夫です。
4
データベースとは?
なんとなく聞いたことのある「データベース」についての基礎を簡単におさらいし
ます。
1
● 何らかのデータが入った箱をデータベースとよぶ
○ スプレッドシートの表もデータベースの一種
○ 正の字で回数を記録したものも一種のデータベース
データベースと呼ぶと難しく聞こえてしまうが、ただのデータが入った箱
だと考えれば良い。
広義のデータベースとは
6
Webアプリケーションでは、データを保存するために下記の2つの種類
のデータベースが使われることが多い。
● RDBMS(リレーショナルデータベース)
○ 表と表が関連を持つのでリレーショナル
○ SQLはRDBMSのみで利用する
● NoSQL
○ (ざっくりいえば)RDBではないもの
○ RDBMSでは対応し辛いものに対して利用する
データベースの種類
7
これらはそれぞれ得手不得手があり、アプリケーションの用途によって
使い分けられる。とはいえ大きな違いはない。
● MySQL
● Oracle
● SQL Server
● Access
● BigQuery
● Firebase(Firestore)
データベース製品例
8
● 得意なこと
○ 大量データの処理
○ データの整合性の担保
● 苦手なこと
○ 柔軟なデータの保持
○ データの加工
RDBMSは、大量のデータを整合性を維持したまま保持することを念頭
において作られてきた。そのため、データの加工やイレギュラーな形の
データを保持することには不向き。
データベース(RDBMS)の特徴
9
● テーブル(表)
○ スプレッドシートのシート
● レコード(行)
○ スプレッドシートの一行一行
● フィールド(列)
○ スプレッドシートの表でいう列名
○ 列名の他に「型」を持つ
難しく考えずに「スプレッドシート」をイメージすれば良い。
データベース(RDBMS)の要素
10
RDBMSのフィールドは「型」を持つ。
「型」は、スプレッドシートのデータの表示形式のイメージ。
「型」があることで、データの整合性を担保できる。
● 文字列型(文字数の最大値が決められている)
● 数字型
● 日付型
● テキスト型(文字数の最大値が無い)
「型」についての補足
11
SQLとは?
なんとなく聞いたことのある「SQL」についての基礎を簡単におさらいします。
2
SQLはデータベース言語
● Structured Query Languageの略
● データベースを操作するための言語であり、ISO(国際標準化機
構)で規格が標準化されている
○ どのデータベース製品であったとしても、同じSQLを使うこと
が出来る
○ つまり、一回SQLを覚えると、どのデータベース製品が使わ
れていたとしても大丈夫になる
13
● データ定義言語
○ データベースの構造(表、列など)を定義するための構文
○ CREATE, DROP, ALTERなど
● データ操作言語
○ データベースを操作(データの抽出など)するための構文
○ SELECT, INSERTなど
● データ制御言語
○ データへのアクセスを制御するための構文
○ BEGIN, COMMIT, ROLLBACKなど
SQLの3つの役割
14
SQL=データを取り出すものという
理解で良い
ビジネスサイドの目線では、SQLはWebアプリケーションに保存されたデータを
取り出すためのもの、、、という理解で良い。
まずはデータを取り出すためのSELECTが使えれば十分であり、それ以上をビ
ジネスサイドとして深く理解する必要性は高くない。
15
Q. ビジネスサイドがSQLを学ぶ必
要は本当にあるの?
データを取り出すだけであれば、エンジニアに任せればよいのでは?
16
A. 分析基盤が整っていれば、
正直不要
高いレベルの分析等を行わない場合、すでにデータ分析基盤等が整っていれ
ばあえてSQLをいま学ぶ必要はないと考えている。
他方、データ分析基盤が整っていない状態であれば、チーム全体を加速させる
ためにもビジネスサイドがSQLを学んでおいたほうが良い。
17
● リアルタイムにデータを取得できる
○ 日次、月次等でまとめられたデータではなく、今時点のデータを
取得することが出来る
● 一度作成したSQLは使い回すことができる
○ スプレッドシートの神操作をしなくて良い
○ 誰が何回やっても同じ結果が取得できる
● データ取得のための開発が不要
○ 特定のデータ取得のためだけに開発していてはキリがない
○ チーム全体のコストを抑えることに繋がる
SQLだからできること
18
データベースのデータを使っ
て分析を行うには?
データベースに保存されたデータを使ってどのように分析していくかをかいつま
んで説明。
3
Q. SQLを知っているだけでデータ
分析は出来るの?
SQLを知っているだけでデータ分析は可能なのでしょうか?
20
A. SQLだけを知っていても
何も出来ません
SQLはあくまでもデータベースからデータを取り出すためのもの。
それよりも「どんな仮説を持っているか」であったり、「そのために必要な分析」の
イメージが付いていること、そして、それを実現するために「どんなデータが必
要」かがわかっていることの方が大切。
21
● 仮説を立てる
○ 何のためにデータを分析するかの仮説を立てる
○ 仮説がない分析は何の意味も持たない
● 仮説をもとに必要なデータを検討する
● 必要なデータを取り出す
○ ここでSQLを使う
● 取り出したデータを利用して分析する
○ 此処から先はSQLに拘る必要はない
○ スプレッドシート等、使い慣れたツールで良い
データ分析の流れ
22
● どこに何のデータがあるかを知っておく
○ どのようなデータが保存しているかを知らなければ、データを取
り出すことは勿論出来ない
○ そのため、どんなテーブルにどんなフィールドがあるのかをまず
は理解する
● そのために必要なSQLを書けるようにする
○ 複雑なSQLを書く必要はない
○ 簡単なSQLでデータを抽出し、スプレッドシート等で加工や分析
が出来ればひとまずは良い
データを取り出すためには?
23
● データベースはただのデータを保存しておく箱
● SQLはあくまでもデータ抽出のための手段の1つ
○ 他に手段があるのであれば、あえて学ぶものでもない
● 他方で、立ち上げフェーズなどではデータ分析基盤が不十分なこと
は多く、ビジネスサイドもSQLを知っておく必要がある
○ データ抽出のためだけの開発は無意味
まとめ
24
● 分析してみたい仮設を立ててみよう
● 関わっているアプリケーションのデータ構造を知ろう
● SQLを使ってデータを取り出してみよう
○ すべてのデータを取り出す
○ データを1件指定して取り出す
○ 関連するテーブルのデータと共に取り出す
● SQLを使ってデータを分析してみよう
○ テーブルのレコードの件数を取得する
○ 特定の条件のレコードの件数を取得する
Next!
25
26
Thanks!
Any questions?

More Related Content

ビジネスサイドが知っておくべきアプリケーションのデータ分析の话