SlideShare a Scribd company logo
1 of 12
Download to read offline
Miyazaki流SQL
     宮崎翔平
     @htid46


 2012/5/26 ML名古屋
自己紹介

宮崎翔平 @htid46

SQLやF#が好き

Androidも少々
2年前のおれ

     何この見難くて遅くて
   どうしようもないSQLは?!

   書き直してくれるわ!
簡潔で高速になりました!
でも実行結果が変わってしまいました。
      ごめんなさい。
何故こんなことに

● テストデータを作成せず、実行結果が変化して
  いないことを確認しなかった。
● テストデータを準備した場合でもパターンが不
  十分だった。

    テストデータ必須
  でもテストデータの作成は
   難しい上に面倒だよね
ということでライブラリを開発してます

名前: Rinron
  https://github.com/hafuu/Rinron
種類: テストデータ作成支援ライブラリ
特徴:
  ○ データ間の関係を記述する
  ○ F#による言語内DSL
  ○ RDBMS以外にも対応(可能)
    ■ KeyValueStore
    ■ File
    ■ 等々
Rinron で作成可能なデータ

● 定義域内のランダムな値で
  ○ 2012/5/1 08:00:00 ~ 2012/6/1 08:00:00の間
  ○ 10文字のランダムな文字列
● 様々なリレーションの
  ○ テーブルAとテーブルBは1:N
  ○ テーブルBとテーブルCはM:N
● バラつきのあるデータ
  ○ 平日昼間にポストが多い、他は少ない
  ○ 正規分布
テストデータ作成の流れ

1. データ定義
  ○ Peopleテーブルの……
    ■ Id 列は 連番
    ■ Name 列は10文字のランダムな文字列
    ■ Age 列は平均25
2. 関係を定義
  ○ Person は Skill を平均3個持っている
  ○ Person には二人の Parent が居る
3. 実行
  ○ 定義した関係で 100 件作成する
ケース 1

● 検索画面を作ったのでテストしたい。
● だが、検索項目が多い。
● ある程度の量のデータをテストに使いたい。
 ○ テストケース1のデータを20件
 ○ テストケース2のデータを30件
ケース 2

● 負荷テストを行いたい。
● 均一なデータではテストにならない。
 ○ 5000人のユーザがそれぞれ20件の買い物をした。
● リアルなデータを使いたい。
 ○ よく買い物をするユーザ、あまり買い物をしないユーザ
 ○ 人気のある商品、人気のない商品
 ○ 売れる時期、売れない時期
まとめ

●   打倒テストデータ
●   テストデータ作成支援ライブラリ Rinron
●   まだ開発中
●   APIなど改善したいのでご意見ください
ご清聴ありがとうございました

More Related Content

What's hot

レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦Soudai Sone
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返りOda Shinsuke
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返ってOda Shinsuke
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!__john_smith__
 
地方における勉強会事情
地方における勉強会事情地方における勉強会事情
地方における勉強会事情Soudai Sone
 
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編Kazumi Ohhashi
 
DBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎるDBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎるSoudai Sone
 
IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索Ryusei Yamaguchi
 

What's hot (14)

レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返って
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
NoNoSQL
NoNoSQLNoNoSQL
NoNoSQL
 
地方における勉強会事情
地方における勉強会事情地方における勉強会事情
地方における勉強会事情
 
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編
OSC2015 Tokyo/Spring セミナー「初めてのLibreOffice L10N UI/ヘルプ翻訳」予告編
 
DBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎるDBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎる
 
Database smells
Database smellsDatabase smells
Database smells
 
IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索
 
データベース2.0
データベース2.0データベース2.0
データベース2.0
 
ENGINEER WORK!!
ENGINEER WORK!!ENGINEER WORK!!
ENGINEER WORK!!
 

Viewers also liked

エベレスト山で雪合戦
エベレスト山で雪合戦エベレスト山で雪合戦
エベレスト山で雪合戦Naoya Kashima
 
Howtoよいプログラマー
HowtoよいプログラマーHowtoよいプログラマー
HowtoよいプログラマーHiroki Yagita
 
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」Daisuke Hiraishi
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010Hiroh Satoh
 
グロースハックのマインドセット
グロースハックのマインドセットグロースハックのマインドセット
グロースハックのマインドセットしくみ製作所
 
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccampこれからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccampKyo Ago
 
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-Asuka Nakajima
 

Viewers also liked (8)

エベレスト山で雪合戦
エベレスト山で雪合戦エベレスト山で雪合戦
エベレスト山で雪合戦
 
Howtoよいプログラマー
HowtoよいプログラマーHowtoよいプログラマー
Howtoよいプログラマー
 
Defcon
DefconDefcon
Defcon
 
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」
1000のユーザーテストから見えた「良いアプリ」と「悪いアプリ」
 
映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010映画にでてくるハッカーになりたい - YAPC Asia 2010
映画にでてくるハッカーになりたい - YAPC Asia 2010
 
グロースハックのマインドセット
グロースハックのマインドセットグロースハックのマインドセット
グロースハックのマインドセット
 
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccampこれからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
 
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
 

Similar to Miyazaki流sql

今から始めるDocument db
今から始めるDocument db今から始めるDocument db
今から始めるDocument dbKazunori Hamamoto
 
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ一希 大田
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation libraryKouta Shiobara
 
Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃららOda Shinsuke
 
非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長Keiko Inagaki
 
Filesystem via MySQL
Filesystem via MySQLFilesystem via MySQL
Filesystem via MySQLTomoya Kabe
 
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51civicpg
 
20140418 info talkセミナー資料
20140418 info talkセミナー資料20140418 info talkセミナー資料
20140418 info talkセミナー資料Takahiro Iwase
 
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化tetsuro ito
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?Soudai Sone
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦CO-Sol for Community
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介Ryo Iinuma
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術Oda Shinsuke
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようDaisuke Masubuchi
 
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会sakaik
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020Daisuke Masubuchi
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)Takahiro Iwase
 

Similar to Miyazaki流sql (20)

今から始めるDocument db
今から始めるDocument db今から始めるDocument db
今から始めるDocument db
 
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation library
 
Apex Test Plusの紹介
Apex Test Plusの紹介Apex Test Plusの紹介
Apex Test Plusの紹介
 
Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃらら
 
非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長
 
Filesystem via MySQL
Filesystem via MySQLFilesystem via MySQL
Filesystem via MySQL
 
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
 
20140418 info talkセミナー資料
20140418 info talkセミナー資料20140418 info talkセミナー資料
20140418 info talkセミナー資料
 
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
 
About NoSQL
About NoSQLAbout NoSQL
About NoSQL
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
Shimane2008
Shimane2008Shimane2008
Shimane2008
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
 
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 

Miyazaki流sql