狠狠撸

狠狠撸Share a Scribd company logo
データベースを使おう




2013/02/23     1     UT Startup Gym
UT Startup Gym とは?



        アイデアをカタチにするプログラム

        l??プロジェクト	
 ?
        l??企画から実装まで	
 ?
        l??スタートアップ



2013/02/23            2           UT Startup Gym
スケジュール
                                                        Keywords:	
 ?

                ??プログラミング入門               ソーシャルウェブアプリケーション,	
 ?API,	
 ?
   Oct,	
 ?12                             bot,	
 ?HTML5
              ??プラニング
                                          リーンスタートアップ,	
 ?ビジネスプラニン
   Nov,	
 ?12 ??プロジェクトスタート
                                          グ,	
 ?HTML,	
 ?CSS,	
 ?PHP,	
 ?javascript
              ??開発開始
   Dec,	
 ?12 ??冬季開発合宿                    チーム結成,	
 ?企画,	
 ?ディスカッション	
 ?
                                          git,	
 ?フレームワーク,	
 ?MySQL,	
 ?Apache	
 ?
              ??ウェブデザイン
   Jan,	
 ?13 ??週間報告会
                                          シナリオ,	
 ?ペルソナ,	
 ?ワイヤフレーム,	
 ?	
 ?
                                          サイトマップ,	
 ?DB	
 ?スキーム	
 ?
                ??jQuery,	
 ?中間発表
   Feb,	
 ?13
                                          ゲーミフィケーション,	
 ?仮説検証,	
 ?データマ
                                          イニング,	
 ?アクセシビリティ	
 ?
                ??作業会
   Mar,	
 ?13

                                          レスポンシブデザイン,	
 ?プレゼンテーション	
 ?
                ??リリース会
   Apr,	
 ?13


2013/02/23                            3                                    UT Startup Gym
M	
 D	
 講師(敬称略) タイトル                             要素
        飯塚
 10	
 13	
            かんたん Facebook アプリをつくる      HTML, CSS, js	
?           飯塚
          21	
        かんたん Twitter アプリをつくる       UNIX, vim, PHP	
?         27 川上       かんたん アンケートフォームをつくる         MySQL, MVC
 11	
       AWS 高山様
           4	
        サーバを立てよう                   AWS
?           飯塚?石村
          10	
        スタートアップの心構え                ビジネスプラン、リーンスタートアップ
?           飯塚?佐藤
          17	
        プロダクトデザイン                  シナリオ、ペルソナ、ワイヤフレーム?
?         24	
        お休み(飯塚@ジャカルタ)
 12	
       ゆーすけべー様 ウェブサービスの企画のコツ
           1	
                                   企画プロセス、ウェブサービス運用	
?         8 飯塚        ウェブから情报をあつめる               クローラ, XPath, 正規表現
?         15	
        プロジェクトキックオフ                アンカンファレンス	
?         22 飯塚       チームで協力して開発するために            git
          飯塚
    1	
 13	
          かんたんキレイなウェブデザイン            Twitter Bootstrap, Web Fonts, LESS
?           石村
          19	
        ゲーミフィケーション

?           松尾、川上
          26	
        中間発表
    2	
    2	
        未定
?           ぱろすけさん
           9	
        AV顔画像認識とその周辺               画像認識、機械学習
?           松尾?川上
          16	
        中間発表会
    2 23 飯塚?          データベース                     MySQL
            ?         作業                         ?
?           ?
          27	
        リリース会                      ?
2013/02/23                                   4                                   UT Startup Gym
4/27(土)&辩耻辞迟;
                 UT Startup Gym !
                   リリース会




2013/02/23   5               UT Startup Gym
今回使うデータ
?? データベース: MySQL
    –? RDBMS: Relational Database Management System
         ?? SQL という言語でデータの出し入れをするシステム
    –? 世界で最も普及しているオープンソースデータベース


?? データの中身: 架空の SNS
    –? ユーザー 約 50 万件
    –? 会社情報 約 15 万件
    –? 友人情報 約 1,000 万件




                                   MySQL – Wikipedia http://ja.wikipedia.org/wiki/MySQL
2013/02/23                     6                                       UT Startup Gym
テーブル设计

                    user                             friend
              id VARCHAR(128)               user_id VARCHAR(128)
             name VARCHAR(256)              friend_id VARCHAR(128)
        gender_id INT UNSIGNED"                  nakayoshi INT
              lang VARCHAR(10)"         PRIMARY KEY (user_id, friend_id)"
             created_at DATETIME"       UNIQUE KEY (friend_id, user_id)"
                     ..."
              PRIMARY KEY (id)"
                                                   company
                                           id BIGINT(20) UNSIGNED
                                             name VARCHAR(256)
                                               PRIMARY KEY (id)"




2013/02/23                          7                            UT Startup Gym
データベースを叩いてみよう
?? 普通の SELECT 文"
  –? SELECT * FROM user LIMIT 10;"
  –? SELECT * FROM user;"
?? 条件指定"
  –? SELECT * FROM user WHERE id = '109092915251428393573';"
  –? SELECT * FROM user WHERE name = ‘飯塚修平';"
  –? SELECT id, name FROM user WHERE created_at >
     DATE_SUB(NOW(), INTERVAL 10 MINUTE);"
?? 同姓同名ランキング"
  –? SELECT user.name, COUNT(id) FROM user GROUP BY user.name
     ORDER BY COUNT(id) DESC LIMIT 10;"




 2013/02/23                     8                     UT Startup Gym
データベースを叩いてみよう
?? 従業員数ランキング"
  –? SELECT company.id, company.name, COUNT(user_employment.id) FROM
     user_employment LEFT JOIN company ON user_employment.company_id =
     company.id GROUP BY company.id ORDER BY COUNT(user_employment.id)
     DESC LIMIT 10;"

?? Google の従業員一覧"
  –? SELECT user.id, user.name FROM user LEFT JOIN user_employment ON
     user.id = user_employment.user_id LEFT JOIN company ON
     user_employment.company_id = company.id WHERE company.name =
     'Google';"


?? 共通の友達"
  –? SELECT * FROM friend AS f1 LEFT JOIN friend AS f2 ON f1.friend_id =
     f2.user_id WHERE f1.user_id = '109092915251428393573' AND f2.friend_id =
     '113100517422007103669’"

  2013/02/23                          9                          UT Startup Gym
SQL ムズい???
             そもそもなんでデータベースを
             使うの?




2013/02/23         10         UT Startup Gym
ファイルじゃダメなの?
   ファイルじゃダメなの?
             ぶっちゃけファイルでもよい。




             こんなのとか          こんなの
         これとか
         これとか              こんなかんじ
                           こんなかんじ

               ただ、データベースの利点がある
  もちろんファイルでもOKです。ただ???
  もちろんファイルでもOKです。ただ???
2013/02/23            11            UT Startup Gym
データベースの利点
?? SQL言語(かんたん)
    –? いちいち入出力書いてたら面倒
    –? SQL で統一的に記述できる!
         ?? とはいえ方言はある (PostgreSQL, sqlite etc.)


?? インデックス(はやい)
    –? バイナリツリーによる探索速度向上
         ?? 詳しくは後述


?? トランザクション(あんしん)
    –? 処理途中の中途半端な状態を許さない
    –? 複数のクエリをひとつのユニットにまとめる
         ?? 失敗したらロールバック

2013/02/23                      12                 UT Startup Gym
インデックス
普通に探索すると

               SELECT name FROM user WHERE id = 1468;


  id = 1468"
 のやつが見つ              id       name
 かるまで探す              1        Shuhei	
 ?Iitsuka
     ぜ!
                     2        Kazuya	
 ?Kawakami
                     ...      ...
                     1468     Taro	
 ?Tanaka
                     ...      ...                       探索時間"
                                                         O(n)."
                                                        おそいね


2013/02/23                          13                     UT Startup Gym
インデックス
バイナリツリーのインデックスが張られていると

             SELECT name FROM user WHERE id = 1468;




 2分木探索で"                             1000
  探すぜ!
                         500                  1500

                   250         750         1250   1750

                                     ...                 探索時間
                                                         O(log(n))."
                                                         はやいね


2013/02/23                       14                          UT Startup Gym
データベースつかうといいこと
             は分かったけど、
             うちのサービスではどうすれ
             ばいいの?




2013/02/23         15         UT Startup Gym
テーブル设计をしてみよう
?? たとえばこんな RPG ゲームの戦闘データ
        –? どのバトルでどのユーザによってどんな技が繰り出されたか


battle_id	
   battle_at	
       attack_id	
   attack_name	
   attack_damage	
player_id	
   player_name	
 battle_type	
                                2	
           いあいぎり           30	
162	
         2013/2/22 10:00	
 2	
           いあいぎり           30	
           3	
           飯塚修平           normal	
                                5	
           ふぶき             80	
                                1	
           たいあたり           10	
161	
         2013/2/22 8:00	
                                               5	
           川上和也           boss	
                                2	
           いあいぎり           30	
                                4	
           そらをとぶ           40	
160	
         2013/2/21 23:00	
 4	
           そらをとぶ           40	
           5	
           川上和也           normal	
                                8	
           うたう             0	




この形では RDBMS に格納することは出来ない。




2013/02/23                                              16                                             UT Startup Gym
正規化
?? 1 事実 1 カ所(1 fact in 1 place)を目指して、
   テーブルの整合性を保ったまま、テーブルの冗
   長性を排除して、データを効率的に管理できる
   ようにすること
    –? 更新すべき項目の重複を防ぐことができる
         ?? あんなところやこんなところに「○○」が!




      データベースエンジニアへの道 – @IT http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html

2013/02/23                                   17                                   UT Startup Gym
第1正规形
     -?‐	
 ?テーブルにキーを設定する
     -?‐	
 ?テーブルの繰り返しグループを別のテーブルに分離する
     -?‐	
 ?導出項目を削除する


                                 battle_id	
   battle_at	
         attack_id	
        attack_name	
   attack_damage	
                                 162	
            2013/2/22 10:00	
2	
                いあいぎり           30	
                                 162	
            2013/2/22 10:00	
2	
                いあいぎり           30	
                                 162	
            2013/2/22 10:00	
5	
                ふぶき             80	
                    battle	
 ?   161	
              2013/2/22 8:00	
                                                                   1	
                たいあたり           10	
                    attack       161	
              2013/2/22 8:00	
                                                                   2	
                いあいぎり           30	
                                 160	
            2013/2/21 23:00	
4	
                そらをとぶ           40	
key:	
 ?battle_id                160	
            2013/2/21 23:00	
4	
                そらをとぶ           40	
                                 160	
            2013/2/21 23:00	
8	
                うたう             0	



                                 battle_id	
   player_id	
    player_name	
      battle_type	
                                 162	
         3	
            飯塚修平               normal	
                    player       161	
         5	
            川上和也               boss	
                                 160	
         5	
            川上和也               normal	



   2013/02/23                                  18                                                UT Startup Gym
技名「いあいぎり」を「ばっとうぎり」にしたい!




                   battle_id	
 battle_at	
         attack_id	
                attack_name	
   attack_damage	
                   162	
          2013/2/22 10:00	
2	
                        いあいぎり           30	
                   162	
          2013/2/22 10:00	
2	
                        いあいぎり           30	
                   162	
          2013/2/22 10:00	
5	
                        ふぶき             80	
                   161	
            2013/2/22 8:00	
                                                   1	
                        たいあたり           10	
             変更箇所が複数にまたがってしまう!
                   161	
            2013/2/22 8:00	
                                                   2	
                        いあいぎり           30	
                   160	
          2013/2/21 23:00	
4	
                        そらをとぶ           40	
                   160	
          2013/2/21 23:00	
4	
                        そらをとぶ           40	
                   160	
          2013/2/21 23:00	
8	
                        うたう             0	



                             battle_id	
   player_id	
   player_name	
   battle_type	
                             162	
         3	
           飯塚修平            normal	
                             161	
         5	
           川上和也            boss	
                             160	
         5	
           川上和也            normal	



2013/02/23                                 19                                            UT Startup Gym
第2正規形
第1正规形から部分関数従属性を取り除くこと"
ex. 「attack_id = 1 」→「たいあたり」



battle_id	
   battle_at	
         player_id	
   player_name	
   battle_type	
162	
            2013/2/22 10:00	
3	
           飯塚修平            normal	
161	
              2013/2/22 8:00	
                                  5	
           川上和也            boss	
160	
            2013/2/21 23:00	
5	
           川上和也            normal	

                                                                                変更箇所が1箇所で済む
battle_id	
   attack_id	
    num	
              attack_id	
     attack_name	
   attack_damage	
162	
         2	
            2	
                1	
             たいあたり           10	
162	
         5	
            1	
                2	
             いあいぎり           30	
161	
         1	
            1	
                4	
             そらをとぶ           40	
161	
         2	
            1	
                5	
             ふぶき             80	
160	
         4	
            2	
                8	
             うたう             0	
160	
         8	
            1	




                                                       20                                         UT Startup Gym
まだバトルをしていないプレイヤーが	
 ?
      登録したんだけど???	
 ?



                                                                どこに入れればいいの????

battle_id	
   battle_at	
         player_id	
   player_name	
   battle_type	
162	
            2013/2/22 10:00	
3	
           飯塚修平            normal	
161	
              2013/2/22 8:00	
                                  5	
           川上和也            boss	
160	
            2013/2/21 23:00	
5	
           川上和也            normal	




battle_id	
   attack_id	
    num	
              attack_id	
     attack_name	
   attack_damage	
162	
         2	
            2	
                1	
             たいあたり           10	
162	
         5	
            1	
                2	
             いあいぎり           30	
161	
         1	
            1	
                4	
             そらをとぶ           40	
161	
         2	
            1	
                5	
             ふぶき             80	
160	
         4	
            2	
                8	
             うたう             0	
160	
         8	
            1	




                                                       21                                         UT Startup Gym
第3正規形
第2正規形から推移関数従属性を取り除くこと"
ex. 「battle_id = 162 」→「player_id = 3」→「飯塚修平」


                             battle                                                 player
battle_id	
   battle_at	
         player_id	
     battle_type	
       player_id	
       player_name	
162	
            2013/2/22 10:00	
              3	
                                                  normal	
                            3	
                                                                                        飯塚修平
161	
              2013/2/22 8:00	
             5	
                                                  boss	
                              5	
                                                                                        川上和也
160	
            2013/2/21 23:00	
              5	
                                                  normal	


              battle_attack                                        attack
battle_id	
   attack_id	
    num	
               attack_id	
      attack_name	
 attack_damage	
162	
         2	
            2	
                 1	
              たいあたり 10	
未バトルのプレイヤーを	
 ?
162	
         5	
            1	
                 2	
                マスタに追加しておくことができる
                                                                  いあいぎり 30	
161	
         1	
            1	
                 4	
              そらをとぶ 40	
161	
         2	
            1	
                 5	
              ふぶき           80	
160	
         4	
            2	
                 8	
              うたう           0	
160	
         8	
            1	




                                                        22                                              UT Startup Gym
実際に使うときは
?? LEFT JOIN でくっつけていく"
?? もっとも使われている技名ランキング"
    –? SELECT ba.attack_id, SUM(ba.num) FROM battle_attack ba
       GROUP BY ba.attack_id;"
    –? やっぱり技名も欲しい???→ LEFT JOIN attack"
    –? SELECT a.attack_name, SUM(ba.num) FROM battle_attack ba
       LEFT JOIN attack a ON ba.attack_id = a.attack_id GROUP BY
       ba.attack_id;"




2013/02/23                     23                       UT Startup Gym
さきほどの例なら
??   Google の従業員一覧"
??   まず Google が ID = なんちゃらだとして"
     –? SELECT user_id ?
        FROM user_employment ?
        WHERE company_id = なんちゃら;"
??   社名で指定したいので LEFT JOIN company"
     –? SELECT user_id ?
        FROM user_employment ue ?
        LEFT JOIN company c ON ue.company_id = c.id ?
        WHERE c.name = 'Google';"
??   さらに従業員の名前を出したいので LEFT JOIN user"
     –? SELECT u.id, u.name ?
        FROM user_employment ue ?
        LEFT JOIN company c ON ue.company_id = c.id ?
        LEFT JOIN user u ON ue.user_id = u.id ?
        WHERE c.name = 'Google';"




2013/02/23                             24               UT Startup Gym
実際の設計の手順
?? 正規化は、冗長なところがないかをチェックするための
   もの。
?? 設計時はエンティティを考えて、それらの関係を考えて
   いく。
    –? エンティティ→マスターテーブル
    –? 関係→トランザクションテーブル
?? たとえば掲示板サイトなら
    –? マスタ
         ?? スレッドマスタ
         ?? コメントマスタ
         ?? ユーザマスタ(匿名性なら不要)
    –? トランザクション
         ?? 投稿テーブル(誰が、どのスレッドに、なんというコメントをしたか)


2013/02/23               25             UT Startup Gym
2013/02/23   26   UT Startup Gym
チューニング
?? 高速にデータを取得するためにインデックスを張る、SQL を書き換
   えるなどの工夫をする。
?? EXPLAIN コマンド
    –? 詳細は http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html
?? サブクエリは使わない
    –? 詳細は http://nippondanji.blogspot.jp/2009/03/mysql_25.html




2013/02/23                             27                              UT Startup Gym
参考文献
??   データベースを使おう @UT Startup Gym by @amachang?
     http://www.slideshare.net/tushuhei/ss-16506218
??   第3回?素早く正規形を見抜く実践テクニック – @IT?
     http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html
??   MySQLのEXPLAINを徹底解説!! – 漢のコンピュータ道?
     http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html
??   なぜMySQLのサブクエリは遅いのか。 – 漢のコンピュータ道?
     http://nippondanji.blogspot.jp/2009/03/mysql_25.html




2013/02/23                            28                           UT Startup Gym

More Related Content

What's hot (20)

お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
Monta Yashi
?
20201102 postgresql unconference_debility
20201102 postgresql unconference_debility20201102 postgresql unconference_debility
20201102 postgresql unconference_debility
Satoshi Hirata
?
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオン
Kana SUZUKI
?
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
Kana SUZUKI
?
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
?
My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話
saiken3110
?
はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会
Noritsugu Suzuki
?
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方
Ryoji Kurosawa
?
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
?
础尘别产补の惭辞苍驳辞顿叠活用事例
础尘别产补の惭辞苍驳辞顿叠活用事例础尘别产补の惭辞苍驳辞顿叠活用事例
础尘别产补の惭辞苍驳辞顿叠活用事例
Akihiro Kuwano
?
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
Kentaro Yoshida
?
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
Kentaro Yoshida
?
Yokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しましたYokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しました
Takashi Sogabe
?
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
?
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
Takahiro Iwase
?
惭辞苍驳辞顿叠?その性质と利用场面?
惭辞苍驳辞顿叠?その性质と利用场面?惭辞苍驳辞顿叠?その性质と利用场面?
惭辞苍驳辞顿叠?その性质と利用场面?
Naruhiko Ogasawara
?
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorksElasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
?
惭辞苍驳辞顿叠のアレをアレする
惭辞苍驳辞顿叠のアレをアレする惭辞苍驳辞顿叠のアレをアレする
惭辞苍驳辞顿叠のアレをアレする
Akihiro Kuwano
?
新しくなったPg monzて?postgre sqlのクラスタを監視しよう
新しくなったPg monzて?postgre sqlのクラスタを監視しよう新しくなったPg monzて?postgre sqlのクラスタを監視しよう
新しくなったPg monzて?postgre sqlのクラスタを監視しよう
Yoshinori Nakanishi
?
惭辞苍驳辞顿叠か?遅いときの切り分け方法
惭辞苍驳辞顿叠か?遅いときの切り分け方法惭辞苍驳辞顿叠か?遅いときの切り分け方法
惭辞苍驳辞顿叠か?遅いときの切り分け方法
Tetsutaro Watanabe
?
お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
お見合いて?趣味を聞かれたときに 「IoTとヒ?ック?テ?ータを少々」と答えたいSEか?読む資料
Monta Yashi
?
20201102 postgresql unconference_debility
20201102 postgresql unconference_debility20201102 postgresql unconference_debility
20201102 postgresql unconference_debility
Satoshi Hirata
?
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオン
Kana SUZUKI
?
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
Kana SUZUKI
?
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
?
My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話
saiken3110
?
はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会はじめての検索エンジン&Solr 第13回Solr勉強会
はじめての検索エンジン&Solr 第13回Solr勉強会
Noritsugu Suzuki
?
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方
Ryoji Kurosawa
?
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
?
础尘别产补の惭辞苍驳辞顿叠活用事例
础尘别产补の惭辞苍驳辞顿叠活用事例础尘别产补の惭辞苍驳辞顿叠活用事例
础尘别产补の惭辞苍驳辞顿叠活用事例
Akihiro Kuwano
?
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
惭测厂蚕尝ユーザ视点での小さく始める贰濒补蝉迟颈肠蝉别补谤肠丑
Kentaro Yoshida
?
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
惭测厂蚕尝と组み合わせて始める全文検索プロダクト&辩耻辞迟;别濒补蝉迟颈肠蝉别补谤肠丑&辩耻辞迟;
Kentaro Yoshida
?
Yokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しましたYokozuna 日本語検索機能を評価しました
Yokozuna 日本語検索機能を評価しました
Takashi Sogabe
?
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
?
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
20131113冲尘测蝉辩濒冲辞苍冲分散蹿蝉セミナー资料
Takahiro Iwase
?
惭辞苍驳辞顿叠?その性质と利用场面?
惭辞苍驳辞顿叠?その性质と利用场面?惭辞苍驳辞顿叠?その性质と利用场面?
惭辞苍驳辞顿叠?その性质と利用场面?
Naruhiko Ogasawara
?
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorksElasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
?
惭辞苍驳辞顿叠のアレをアレする
惭辞苍驳辞顿叠のアレをアレする惭辞苍驳辞顿叠のアレをアレする
惭辞苍驳辞顿叠のアレをアレする
Akihiro Kuwano
?
新しくなったPg monzて?postgre sqlのクラスタを監視しよう
新しくなったPg monzて?postgre sqlのクラスタを監視しよう新しくなったPg monzて?postgre sqlのクラスタを監視しよう
新しくなったPg monzて?postgre sqlのクラスタを監視しよう
Yoshinori Nakanishi
?
惭辞苍驳辞顿叠か?遅いときの切り分け方法
惭辞苍驳辞顿叠か?遅いときの切り分け方法惭辞苍驳辞顿叠か?遅いときの切り分け方法
惭辞苍驳辞顿叠か?遅いときの切り分け方法
Tetsutaro Watanabe
?

Similar to データベースを使おう (20)

かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
Shuhei Iitsuka
?
かんたんキレイなウェブデザイン
かんたんキレイなウェブデザインかんたんキレイなウェブデザイン
かんたんキレイなウェブデザイン
Shuhei Iitsuka
?
ウェブから情报をあつめる
ウェブから情报をあつめるウェブから情报をあつめる
ウェブから情报をあつめる
Shuhei Iitsuka
?
【第3回初心者勉强会】テ?ータヘ?ースを使おう
【第3回初心者勉强会】テ?ータヘ?ースを使おう【第3回初心者勉强会】テ?ータヘ?ースを使おう
【第3回初心者勉强会】テ?ータヘ?ースを使おう
Shuhei Iitsuka
?
ペルソナシナリオとプロトタイプ2
ペルソナシナリオとプロトタイプ2ペルソナシナリオとプロトタイプ2
ペルソナシナリオとプロトタイプ2
Shuhei Iitsuka
?
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
Wataru NOGUCHI
?
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
Daisuke Nagao
?
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
IIJ
?
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
dstn
?
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
Nobuyuki Tamaoki
?
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Daisuke Masubuchi
?
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
Daisuke Masubuchi
?
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
Shinsuke Sugaya
?
Osc spring 20220311
Osc spring 20220311Osc spring 20220311
Osc spring 20220311
Yasuaki Sera
?
Tips for passing AZ-103 once
Tips for passing AZ-103 onceTips for passing AZ-103 once
Tips for passing AZ-103 once
Oshitari_kochi
?
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
真治 米田
?
滨罢技术者でも1から学べるビジネスモデルキャンバス入门
滨罢技术者でも1から学べるビジネスモデルキャンバス入门滨罢技术者でも1から学べるビジネスモデルキャンバス入门
滨罢技术者でも1から学べるビジネスモデルキャンバス入门
陽一 滝川
?
かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう かんたん Twitter アプリをつくろう
かんたん Twitter アプリをつくろう
Shuhei Iitsuka
?
かんたんキレイなウェブデザイン
かんたんキレイなウェブデザインかんたんキレイなウェブデザイン
かんたんキレイなウェブデザイン
Shuhei Iitsuka
?
ウェブから情报をあつめる
ウェブから情报をあつめるウェブから情报をあつめる
ウェブから情报をあつめる
Shuhei Iitsuka
?
【第3回初心者勉强会】テ?ータヘ?ースを使おう
【第3回初心者勉强会】テ?ータヘ?ースを使おう【第3回初心者勉强会】テ?ータヘ?ースを使おう
【第3回初心者勉强会】テ?ータヘ?ースを使おう
Shuhei Iitsuka
?
ペルソナシナリオとプロトタイプ2
ペルソナシナリオとプロトタイプ2ペルソナシナリオとプロトタイプ2
ペルソナシナリオとプロトタイプ2
Shuhei Iitsuka
?
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
できる!碍颈肠办蝉迟补谤迟と础苍蝉颈产濒别!
Wataru NOGUCHI
?
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
Daisuke Nagao
?
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
IIJ
?
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
2015年2月26日 dsthHUB 『DataSpiderインターナル プラガブルアーキテクチャで広がる可能性』
dstn
?
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
ベアメタル翱辫别苍厂迟补肠办で始めるクラウド环境构筑
Nobuyuki Tamaoki
?
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Daisuke Masubuchi
?
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
Daisuke Masubuchi
?
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
贰尘产耻濒办と顿颈驳诲补驳とデータ分析基盘と
Toru Takahashi
?
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
贰濒补蝉迟颈肠蝉别补谤肠丑で作る形态素解析サーバ
Shinsuke Sugaya
?
Tips for passing AZ-103 once
Tips for passing AZ-103 onceTips for passing AZ-103 once
Tips for passing AZ-103 once
Oshitari_kochi
?
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
真治 米田
?
滨罢技术者でも1から学べるビジネスモデルキャンバス入门
滨罢技术者でも1から学べるビジネスモデルキャンバス入门滨罢技术者でも1から学べるビジネスモデルキャンバス入门
滨罢技术者でも1から学べるビジネスモデルキャンバス入门
陽一 滝川
?

More from Shuhei Iitsuka (20)

Online and offline handwritten chinese character recognition a comprehensive...
Online and offline handwritten chinese character recognition  a comprehensive...Online and offline handwritten chinese character recognition  a comprehensive...
Online and offline handwritten chinese character recognition a comprehensive...
Shuhei Iitsuka
?
Inferring win–lose product network from user behavior
Inferring win–lose product network from user behaviorInferring win–lose product network from user behavior
Inferring win–lose product network from user behavior
Shuhei Iitsuka
?
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
Shuhei Iitsuka
?
Procedural modeling using autoencoder networks
Procedural modeling using autoencoder networksProcedural modeling using autoencoder networks
Procedural modeling using autoencoder networks
Shuhei Iitsuka
?
Generating sentences from a continuous space
Generating sentences from a continuous spaceGenerating sentences from a continuous space
Generating sentences from a continuous space
Shuhei Iitsuka
?
ウェブサイト最适化のためのバリエーション自动生成システム
ウェブサイト最适化のためのバリエーション自动生成システムウェブサイト最适化のためのバリエーション自动生成システム
ウェブサイト最适化のためのバリエーション自动生成システム
Shuhei Iitsuka
?
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Shuhei Iitsuka
?
Machine learning meets web development
Machine learning meets web developmentMachine learning meets web development
Machine learning meets web development
Shuhei Iitsuka
?
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめる
Shuhei Iitsuka
?
リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門
Shuhei Iitsuka
?
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
Shuhei Iitsuka
?
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web DataAsia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Shuhei Iitsuka
?
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
Shuhei Iitsuka
?
UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話
Shuhei Iitsuka
?
ウェブサイトで収益を得る
ウェブサイトで収益を得るウェブサイトで収益を得る
ウェブサイトで収益を得る
Shuhei Iitsuka
?
HTML で自己紹介ページをつくる
HTML で自己紹介ページをつくるHTML で自己紹介ページをつくる
HTML で自己紹介ページをつくる
Shuhei Iitsuka
?
ウェブサービスの企画とデザイン
ウェブサービスの企画とデザインウェブサービスの企画とデザイン
ウェブサービスの企画とデザイン
Shuhei Iitsuka
?
テ?ータヘ?ースを使おう
テ?ータヘ?ースを使おうテ?ータヘ?ースを使おう
テ?ータヘ?ースを使おう
Shuhei Iitsuka
?
第3期キックオフ説明会+勉强会
第3期キックオフ説明会+勉强会 第3期キックオフ説明会+勉强会
第3期キックオフ説明会+勉强会
Shuhei Iitsuka
?
ペルソナシナリオとプロトタイプ
ペルソナシナリオとプロトタイプペルソナシナリオとプロトタイプ
ペルソナシナリオとプロトタイプ
Shuhei Iitsuka
?
Online and offline handwritten chinese character recognition a comprehensive...
Online and offline handwritten chinese character recognition  a comprehensive...Online and offline handwritten chinese character recognition  a comprehensive...
Online and offline handwritten chinese character recognition a comprehensive...
Shuhei Iitsuka
?
Inferring win–lose product network from user behavior
Inferring win–lose product network from user behaviorInferring win–lose product network from user behavior
Inferring win–lose product network from user behavior
Shuhei Iitsuka
?
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
バリエーションの提示がもたらす長期的効果に着目したウェブサイト最適化手法 @第31回人工知能学会全国大会
Shuhei Iitsuka
?
Procedural modeling using autoencoder networks
Procedural modeling using autoencoder networksProcedural modeling using autoencoder networks
Procedural modeling using autoencoder networks
Shuhei Iitsuka
?
Generating sentences from a continuous space
Generating sentences from a continuous spaceGenerating sentences from a continuous space
Generating sentences from a continuous space
Shuhei Iitsuka
?
ウェブサイト最适化のためのバリエーション自动生成システム
ウェブサイト最适化のためのバリエーション自动生成システムウェブサイト最适化のためのバリエーション自动生成システム
ウェブサイト最适化のためのバリエーション自动生成システム
Shuhei Iitsuka
?
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-E...
Shuhei Iitsuka
?
Machine learning meets web development
Machine learning meets web developmentMachine learning meets web development
Machine learning meets web development
Shuhei Iitsuka
?
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめる
Shuhei Iitsuka
?
リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門リミックスからはじめる DTM 入門
リミックスからはじめる DTM 入門
Shuhei Iitsuka
?
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
【DBDA 勉強会 2013 夏】Chapter 12: Bayesian Approaches to Testing a Point (‘‘Null’’...
Shuhei Iitsuka
?
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web DataAsia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Asia Trend Map: Forecasting “Cool Japan” Content Popularity on Web Data
Shuhei Iitsuka
?
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
【DBDA 勉強会 2013 夏】Doing Bayesian Data Analysis Chapter 4: Bayes’ Rule
Shuhei Iitsuka
?
UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話UT Startup Gym で人生が変わった話
UT Startup Gym で人生が変わった話
Shuhei Iitsuka
?
ウェブサイトで収益を得る
ウェブサイトで収益を得るウェブサイトで収益を得る
ウェブサイトで収益を得る
Shuhei Iitsuka
?
HTML で自己紹介ページをつくる
HTML で自己紹介ページをつくるHTML で自己紹介ページをつくる
HTML で自己紹介ページをつくる
Shuhei Iitsuka
?
ウェブサービスの企画とデザイン
ウェブサービスの企画とデザインウェブサービスの企画とデザイン
ウェブサービスの企画とデザイン
Shuhei Iitsuka
?
テ?ータヘ?ースを使おう
テ?ータヘ?ースを使おうテ?ータヘ?ースを使おう
テ?ータヘ?ースを使おう
Shuhei Iitsuka
?
第3期キックオフ説明会+勉强会
第3期キックオフ説明会+勉强会 第3期キックオフ説明会+勉强会
第3期キックオフ説明会+勉强会
Shuhei Iitsuka
?
ペルソナシナリオとプロトタイプ
ペルソナシナリオとプロトタイプペルソナシナリオとプロトタイプ
ペルソナシナリオとプロトタイプ
Shuhei Iitsuka
?

データベースを使おう

  • 2. UT Startup Gym とは? アイデアをカタチにするプログラム l??プロジェクト ? l??企画から実装まで ? l??スタートアップ 2013/02/23 2 UT Startup Gym
  • 3. スケジュール Keywords: ? ??プログラミング入門 ソーシャルウェブアプリケーション, ?API, ? Oct, ?12 bot, ?HTML5 ??プラニング リーンスタートアップ, ?ビジネスプラニン Nov, ?12 ??プロジェクトスタート グ, ?HTML, ?CSS, ?PHP, ?javascript ??開発開始 Dec, ?12 ??冬季開発合宿 チーム結成, ?企画, ?ディスカッション ? git, ?フレームワーク, ?MySQL, ?Apache ? ??ウェブデザイン Jan, ?13 ??週間報告会 シナリオ, ?ペルソナ, ?ワイヤフレーム, ? ? サイトマップ, ?DB ?スキーム ? ??jQuery, ?中間発表 Feb, ?13 ゲーミフィケーション, ?仮説検証, ?データマ イニング, ?アクセシビリティ ? ??作業会 Mar, ?13 レスポンシブデザイン, ?プレゼンテーション ? ??リリース会 Apr, ?13 2013/02/23 3 UT Startup Gym
  • 4. M D 講師(敬称略) タイトル 要素 飯塚 10 13 かんたん Facebook アプリをつくる HTML, CSS, js ? 飯塚 21 かんたん Twitter アプリをつくる UNIX, vim, PHP ? 27 川上 かんたん アンケートフォームをつくる MySQL, MVC 11 AWS 高山様 4 サーバを立てよう AWS ? 飯塚?石村 10 スタートアップの心構え ビジネスプラン、リーンスタートアップ ? 飯塚?佐藤 17 プロダクトデザイン シナリオ、ペルソナ、ワイヤフレーム? ? 24 お休み(飯塚@ジャカルタ) 12 ゆーすけべー様 ウェブサービスの企画のコツ 1 企画プロセス、ウェブサービス運用 ? 8 飯塚 ウェブから情报をあつめる クローラ, XPath, 正規表現 ? 15 プロジェクトキックオフ アンカンファレンス ? 22 飯塚 チームで協力して開発するために git 飯塚 1 13 かんたんキレイなウェブデザイン Twitter Bootstrap, Web Fonts, LESS ? 石村 19 ゲーミフィケーション ? 松尾、川上 26 中間発表 2 2 未定 ? ぱろすけさん 9 AV顔画像認識とその周辺 画像認識、機械学習 ? 松尾?川上 16 中間発表会 2 23 飯塚? データベース MySQL ? 作業 ? ? ? 27 リリース会 ? 2013/02/23 4 UT Startup Gym
  • 5. 4/27(土)&辩耻辞迟; UT Startup Gym ! リリース会 2013/02/23 5 UT Startup Gym
  • 6. 今回使うデータ ?? データベース: MySQL –? RDBMS: Relational Database Management System ?? SQL という言語でデータの出し入れをするシステム –? 世界で最も普及しているオープンソースデータベース ?? データの中身: 架空の SNS –? ユーザー 約 50 万件 –? 会社情報 約 15 万件 –? 友人情報 約 1,000 万件 MySQL – Wikipedia http://ja.wikipedia.org/wiki/MySQL 2013/02/23 6 UT Startup Gym
  • 7. テーブル设计 user friend id VARCHAR(128) user_id VARCHAR(128) name VARCHAR(256) friend_id VARCHAR(128) gender_id INT UNSIGNED" nakayoshi INT lang VARCHAR(10)" PRIMARY KEY (user_id, friend_id)" created_at DATETIME" UNIQUE KEY (friend_id, user_id)" ..." PRIMARY KEY (id)" company id BIGINT(20) UNSIGNED name VARCHAR(256) PRIMARY KEY (id)" 2013/02/23 7 UT Startup Gym
  • 8. データベースを叩いてみよう ?? 普通の SELECT 文" –? SELECT * FROM user LIMIT 10;" –? SELECT * FROM user;" ?? 条件指定" –? SELECT * FROM user WHERE id = '109092915251428393573';" –? SELECT * FROM user WHERE name = ‘飯塚修平';" –? SELECT id, name FROM user WHERE created_at > DATE_SUB(NOW(), INTERVAL 10 MINUTE);" ?? 同姓同名ランキング" –? SELECT user.name, COUNT(id) FROM user GROUP BY user.name ORDER BY COUNT(id) DESC LIMIT 10;" 2013/02/23 8 UT Startup Gym
  • 9. データベースを叩いてみよう ?? 従業員数ランキング" –? SELECT company.id, company.name, COUNT(user_employment.id) FROM user_employment LEFT JOIN company ON user_employment.company_id = company.id GROUP BY company.id ORDER BY COUNT(user_employment.id) DESC LIMIT 10;" ?? Google の従業員一覧" –? SELECT user.id, user.name FROM user LEFT JOIN user_employment ON user.id = user_employment.user_id LEFT JOIN company ON user_employment.company_id = company.id WHERE company.name = 'Google';" ?? 共通の友達" –? SELECT * FROM friend AS f1 LEFT JOIN friend AS f2 ON f1.friend_id = f2.user_id WHERE f1.user_id = '109092915251428393573' AND f2.friend_id = '113100517422007103669’" 2013/02/23 9 UT Startup Gym
  • 10. SQL ムズい??? そもそもなんでデータベースを 使うの? 2013/02/23 10 UT Startup Gym
  • 11. ファイルじゃダメなの? ファイルじゃダメなの? ぶっちゃけファイルでもよい。 こんなのとか こんなの これとか これとか こんなかんじ こんなかんじ ただ、データベースの利点がある もちろんファイルでもOKです。ただ??? もちろんファイルでもOKです。ただ??? 2013/02/23 11 UT Startup Gym
  • 12. データベースの利点 ?? SQL言語(かんたん) –? いちいち入出力書いてたら面倒 –? SQL で統一的に記述できる! ?? とはいえ方言はある (PostgreSQL, sqlite etc.) ?? インデックス(はやい) –? バイナリツリーによる探索速度向上 ?? 詳しくは後述 ?? トランザクション(あんしん) –? 処理途中の中途半端な状態を許さない –? 複数のクエリをひとつのユニットにまとめる ?? 失敗したらロールバック 2013/02/23 12 UT Startup Gym
  • 13. インデックス 普通に探索すると SELECT name FROM user WHERE id = 1468; id = 1468" のやつが見つ id name かるまで探す 1 Shuhei ?Iitsuka ぜ! 2 Kazuya ?Kawakami ... ... 1468 Taro ?Tanaka ... ... 探索時間" O(n)." おそいね 2013/02/23 13 UT Startup Gym
  • 14. インデックス バイナリツリーのインデックスが張られていると SELECT name FROM user WHERE id = 1468; 2分木探索で" 1000 探すぜ! 500 1500 250 750 1250 1750 ... 探索時間 O(log(n))." はやいね 2013/02/23 14 UT Startup Gym
  • 15. データベースつかうといいこと は分かったけど、 うちのサービスではどうすれ ばいいの? 2013/02/23 15 UT Startup Gym
  • 16. テーブル设计をしてみよう ?? たとえばこんな RPG ゲームの戦闘データ –? どのバトルでどのユーザによってどんな技が繰り出されたか battle_id battle_at attack_id attack_name attack_damage player_id player_name battle_type 2 いあいぎり 30 162 2013/2/22 10:00 2 いあいぎり 30 3 飯塚修平 normal 5 ふぶき 80 1 たいあたり 10 161 2013/2/22 8:00 5 川上和也 boss 2 いあいぎり 30 4 そらをとぶ 40 160 2013/2/21 23:00 4 そらをとぶ 40 5 川上和也 normal 8 うたう 0 この形では RDBMS に格納することは出来ない。 2013/02/23 16 UT Startup Gym
  • 17. 正規化 ?? 1 事実 1 カ所(1 fact in 1 place)を目指して、 テーブルの整合性を保ったまま、テーブルの冗 長性を排除して、データを効率的に管理できる ようにすること –? 更新すべき項目の重複を防ぐことができる ?? あんなところやこんなところに「○○」が! データベースエンジニアへの道 – @IT http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html 2013/02/23 17 UT Startup Gym
  • 18. 第1正规形 -?‐ ?テーブルにキーを設定する -?‐ ?テーブルの繰り返しグループを別のテーブルに分離する -?‐ ?導出項目を削除する battle_id battle_at attack_id attack_name attack_damage 162 2013/2/22 10:00 2 いあいぎり 30 162 2013/2/22 10:00 2 いあいぎり 30 162 2013/2/22 10:00 5 ふぶき 80 battle ? 161 2013/2/22 8:00 1 たいあたり 10 attack 161 2013/2/22 8:00 2 いあいぎり 30 160 2013/2/21 23:00 4 そらをとぶ 40 key: ?battle_id 160 2013/2/21 23:00 4 そらをとぶ 40 160 2013/2/21 23:00 8 うたう 0 battle_id player_id player_name battle_type 162 3 飯塚修平 normal player 161 5 川上和也 boss 160 5 川上和也 normal 2013/02/23 18 UT Startup Gym
  • 19. 技名「いあいぎり」を「ばっとうぎり」にしたい! battle_id battle_at attack_id attack_name attack_damage 162 2013/2/22 10:00 2 いあいぎり 30 162 2013/2/22 10:00 2 いあいぎり 30 162 2013/2/22 10:00 5 ふぶき 80 161 2013/2/22 8:00 1 たいあたり 10 変更箇所が複数にまたがってしまう! 161 2013/2/22 8:00 2 いあいぎり 30 160 2013/2/21 23:00 4 そらをとぶ 40 160 2013/2/21 23:00 4 そらをとぶ 40 160 2013/2/21 23:00 8 うたう 0 battle_id player_id player_name battle_type 162 3 飯塚修平 normal 161 5 川上和也 boss 160 5 川上和也 normal 2013/02/23 19 UT Startup Gym
  • 20. 第2正規形 第1正规形から部分関数従属性を取り除くこと" ex. 「attack_id = 1 」→「たいあたり」 battle_id battle_at player_id player_name battle_type 162 2013/2/22 10:00 3 飯塚修平 normal 161 2013/2/22 8:00 5 川上和也 boss 160 2013/2/21 23:00 5 川上和也 normal 変更箇所が1箇所で済む battle_id attack_id num attack_id attack_name attack_damage 162 2 2 1 たいあたり 10 162 5 1 2 いあいぎり 30 161 1 1 4 そらをとぶ 40 161 2 1 5 ふぶき 80 160 4 2 8 うたう 0 160 8 1 20 UT Startup Gym
  • 21. まだバトルをしていないプレイヤーが ? 登録したんだけど??? ? どこに入れればいいの???? battle_id battle_at player_id player_name battle_type 162 2013/2/22 10:00 3 飯塚修平 normal 161 2013/2/22 8:00 5 川上和也 boss 160 2013/2/21 23:00 5 川上和也 normal battle_id attack_id num attack_id attack_name attack_damage 162 2 2 1 たいあたり 10 162 5 1 2 いあいぎり 30 161 1 1 4 そらをとぶ 40 161 2 1 5 ふぶき 80 160 4 2 8 うたう 0 160 8 1 21 UT Startup Gym
  • 22. 第3正規形 第2正規形から推移関数従属性を取り除くこと" ex. 「battle_id = 162 」→「player_id = 3」→「飯塚修平」 battle player battle_id battle_at player_id battle_type player_id player_name 162 2013/2/22 10:00 3 normal 3 飯塚修平 161 2013/2/22 8:00 5 boss 5 川上和也 160 2013/2/21 23:00 5 normal battle_attack attack battle_id attack_id num attack_id attack_name attack_damage 162 2 2 1 たいあたり 10 未バトルのプレイヤーを ? 162 5 1 2 マスタに追加しておくことができる いあいぎり 30 161 1 1 4 そらをとぶ 40 161 2 1 5 ふぶき 80 160 4 2 8 うたう 0 160 8 1 22 UT Startup Gym
  • 23. 実際に使うときは ?? LEFT JOIN でくっつけていく" ?? もっとも使われている技名ランキング" –? SELECT ba.attack_id, SUM(ba.num) FROM battle_attack ba GROUP BY ba.attack_id;" –? やっぱり技名も欲しい???→ LEFT JOIN attack" –? SELECT a.attack_name, SUM(ba.num) FROM battle_attack ba LEFT JOIN attack a ON ba.attack_id = a.attack_id GROUP BY ba.attack_id;" 2013/02/23 23 UT Startup Gym
  • 24. さきほどの例なら ?? Google の従業員一覧" ?? まず Google が ID = なんちゃらだとして" –? SELECT user_id ? FROM user_employment ? WHERE company_id = なんちゃら;" ?? 社名で指定したいので LEFT JOIN company" –? SELECT user_id ? FROM user_employment ue ? LEFT JOIN company c ON ue.company_id = c.id ? WHERE c.name = 'Google';" ?? さらに従業員の名前を出したいので LEFT JOIN user" –? SELECT u.id, u.name ? FROM user_employment ue ? LEFT JOIN company c ON ue.company_id = c.id ? LEFT JOIN user u ON ue.user_id = u.id ? WHERE c.name = 'Google';" 2013/02/23 24 UT Startup Gym
  • 25. 実際の設計の手順 ?? 正規化は、冗長なところがないかをチェックするための もの。 ?? 設計時はエンティティを考えて、それらの関係を考えて いく。 –? エンティティ→マスターテーブル –? 関係→トランザクションテーブル ?? たとえば掲示板サイトなら –? マスタ ?? スレッドマスタ ?? コメントマスタ ?? ユーザマスタ(匿名性なら不要) –? トランザクション ?? 投稿テーブル(誰が、どのスレッドに、なんというコメントをしたか) 2013/02/23 25 UT Startup Gym
  • 26. 2013/02/23 26 UT Startup Gym
  • 27. チューニング ?? 高速にデータを取得するためにインデックスを張る、SQL を書き換 えるなどの工夫をする。 ?? EXPLAIN コマンド –? 詳細は http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html ?? サブクエリは使わない –? 詳細は http://nippondanji.blogspot.jp/2009/03/mysql_25.html 2013/02/23 27 UT Startup Gym
  • 28. 参考文献 ?? データベースを使おう @UT Startup Gym by @amachang? http://www.slideshare.net/tushuhei/ss-16506218 ?? 第3回?素早く正規形を見抜く実践テクニック – @IT? http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html ?? MySQLのEXPLAINを徹底解説!! – 漢のコンピュータ道? http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html ?? なぜMySQLのサブクエリは遅いのか。 – 漢のコンピュータ道? http://nippondanji.blogspot.jp/2009/03/mysql_25.html 2013/02/23 28 UT Startup Gym