SQLアンチパターン読書会参加記録7章と8章
2週間に一回ギークラボ長野で開催されているSQLアンチパターン読書会のメモです。
今までも時々参加していましたが、個人的にはアウトプットは必ずしていきたいので今回参加分からメモを残していきたいと思います。
マルチカラムアトリビュート(複数列属性)
連絡先テーブルに電話番号を持たせる場合、自宅、携帯電話、職場、FAX等の4つ分電話番号のエリアを用意すれば良さそうですが、携帯の2台目とか4つだけでは収まりきれない場合はどうすればよいのか?というのがテーマです。
本書では電話番号の話は最初だけで バグに対するタグ付けの情報をどう持たすかという例で進みます。
バグ情報にタグ付け(パフォーマンス、クラッシュ、印刷機能)をしたいということです。
〇アンチパターンな設計
これだとタグを4つ以上付けたいときどうするのか、また、パフォーマンスに影響するバグを探したいときに
where 'パフォーマンス' = タグ1 or 'パフォーマンス' = タグ2 or 'パフォーマンス' = タグ3;
などと検索しなければならずめんどくさいSQLになってしまうなどの欠点があります。
結論としては別の従属TBLを作成して解決になります。
まぁそうだよねって話ですが、少なくとも最初の例で出てきた電話番号の例ですと連絡先TBL.電話番号1〜3のような設計は普通にしてしまいそうだし、電話番号を別TBLに出すような設計を出した際に、上司を説得出来るかどうかはよく分かりません。
目的としてはデータの量が増え続けるTBLに対する速度低下をどうやって防ぐかというものになります。
バグテーブルにいつそれが発生したのかという日付を持ちたい場合で話が進みます。
テーブルの容量はどんどん数が増えるのでそれを年単位で分けて持ちたいという話です。
色々な例がでてきますが、解決策としてはパーティショニングと正規化を行おうというもの
〇水平パーティショニング
バグTBLを報告日の年単位でいくつかのテーブルに分けるように設定ができるようです。(これはしらなかったので普通にすごい!)
〇垂直パーティショニング
別の例として、Blob型やtext型を別の従属テーブルに切り離すことで処理を軽くすると言う話もありました。
(今回の例では直接関係なさそうですが)
〇解決
解決は7章と同じく従属テーブルの導入、、なんですが、バグ管理の話なのに突然違うTBLがでてきたのでよく分からないですね!!
バグの親にあるプロジェクトを年単位の子を持たせることで、その子であるバグも取りやすくなるよ??ということでしょうか??
注にはサマリーテーブルの改善であることに注意とありますが実は欲しかったのはバグのフィックス数だけで2016年に発生したバグの詳細はいらないということでしょうか??
最後よく分からなかったのですが(というかよく分からないことに今気付いたのですが、)とりあえず正規化しようぜ!って話でいいのかな・・とも思ったり(^0^;)
うーん、どこかで本書で想定されているTBL全体が分かってないとちょっとついて行けないですね。。
追記
テーブル全体の構成は本書の最初の方に乗っているという指摘を頂きました。
@nakajidamedeath "どこかで本書で想定されているTBL全体が分かってないとちょっとついて行けない"
— とみたまさひろ (@tmtms) 2017年3月16日
「はじめに」の「サンプルデータベース」を見るんだ!
BugsTBLはProductsTBLと多対多の関係を持っているので、Productの子に新たに作ったProductHistoryBugsを作ってそこでバグの件数を持つようにすればいいんだよという話のようです。
結局欲しかったのは ある年のバグの総件数だけってことなんですね〜
詳細も含めたある年のバグ一覧が欲しいのかなぁとおもっていたのでちょっと認識相違があったみたいです。
理解してないのに読み飛ばしてしまうことがあるので、やっぱり読書会はためになります。
余談ですが
とみたまさひろ (@tmtms) さんがSQLアンチパターンに参加されますと面白い話や補足的な話がかなり聞けるので大変面白いです!
途中からでもデータベース設計を仕事でやりそうだ!って人は是非ご参加下さい!
落合陽一さん、澤円さん、ちょまどさん登壇決定!CodeIQ感謝祭~聞いて触って感じるデジタルアートな1日!に参加してきた
2017/03/13 追記
アジャイルなブログを目指してるので内容をアップデートしました
いい加減技術ブログ始めたいなぁと思っていて刺激的なタイトルが良いなと思ったので脱職エントリーというタイトルにしてみました。
東京のエンジニアにとって退職エントリーを書くことはステップアップを意味するのでいつか僕も書いてみたいのですが、地方に住むとなかなか人の流動性は低いですね。
最初の記事がcodeIQという転職サービス会社のイベントの記事というのも意味深すぎてあれですね。
イベントはこんな感じ。そうそうたるメンバーです。
基調講演:落合 陽一さん 「ミクスドリアリティからデジタルネイチャーへ」
#codeiq39 楽しかった! pic.twitter.com/QPTbIZollL
— 落合陽一/Dr.YoichiOchiai (@ochyai) 2017年3月11日
ミクスドリアリティについてはMS社等の見解では仮想現実と物理的実体の間にある壁を取り払うことと定義されているようです。
デジタルネイチャーについては落合陽一氏によると
人間の感覚を超越した設計を行うことで、メディアが物質世界自体をプログラミングできるようになります。そして僕は、コンピュータが制御するモノとモノ、あるいは場と場の新しい相互関係によって作られ、人間とコンピュータの区別なくそれらが一体として存在すると考える新しい自然観そしてその性質を「デジタルネイチャー」と呼んでいます。(『魔法の世紀』p.179)
「魔法の世紀」はリアルとバーチャルの対比構造が、コンピュータによって踏み越えられ、作り替えられた世界です。(『魔法の世紀』p.180)
ざっくり言って氏がやりたいことは今まで映像でみてきた世界をどうやって現実に引っ張り出してくるかをテーマに研究されている方です。
有名なものに電子パルスで作った蝶々を現実世界に投影するというアートがあります。
hololensについては
触る必要がないものからMR化されてくるのではないかというお話でした。
例)飼ってる金魚を触る人はいないのだから金魚はMRに置き換えられるのではないか。またすごくリアルに作られた金魚なら本物の金魚と見分けが付かないからそれでよいのではないか
一方で飼い犬はもふりたいのでMR空間でモフモフできないとあまり意味がない。
これからの時代に求められるのは以下のようなものではないかという話で締められました。(結構早口で色々な話があって追い切れないので色々漏れてるかも知れません)
・筋肉ロボ
・介護の自動遠隔
・メディアアート
・ファブリケーション
落合陽一氏の 話を聞くと未来というものに対してすごく肯定的になるので話の内容以上にモチベ維持になるので刺激があっていいですね。
(余談ですが氏は人間と機械の違いについてモチベの有無と上げています)
セッション:伊藤 直也さん 「問題にフォーカスする」
ソフトウェア開発の文脈でマネジメントの話です。
この話は非常に実践的で面白かったです。
問題(issue)を見極める→要求をこなしていても良いものはできあがらない、まずは問題を正しく認識することが必要(木のブランコの絵で言うところの顧客が本当に求めていたもの、というやつですね)
参考文献
マネージャーの必要性についての話がありましたが、マネージャーというのは管理職だけではなく、開発もして良いし、それぞれの役割のスコープを狭めちゃいけないというのも新鮮な話でした。
まずは問題を対処するという最終的なゴールから考えよう!という根本を改めて認識させられたいい話でした。
経験談として、技術的負債には問題を正しく把握することに時間を掛け、問題を整理して言語化して行くことで少しずつ直していけるという話がありました。
技術的負債というものはどんな現場にもあり得ることですので、参考にしていきたいです。
余談ですがアニメネタがとても多いので面白かったです。
エンジニアにとってアニメはリベラルアーツになってきてるなぁと感じました。
VR tech Tokyo 諸星 一行さん VR体験ブース紹介
VRブースに出展されていたいくつかのコンテンツの紹介です。
イベント中は行けなかったので懇親会中に参加しました。
全部は体験出来ませんでしたが、以下を体験してきました。
・ゴジラ体験出来るアプリ
・オキュラスタッチを使った音ゲー
http://www.wandv.jp/service/product/seiya
・オキュラスを使ってチャットができるアプリ
VR VoiceChat with MUN - モノビットエンジン公式サイト
・オキュラスタッチを使ってゾンビと戦うゲーム
オキュラスタッチは本当に凄くて、これを使って体を動かすことでVR酔いという問題がだいぶ解消されるのではないでしょうか?
弊社にもoculusRiftDK2がありますが、CV1にしてタッチも欲しいなぁと思ってみたり。
高橋 忍さん(日本マイクロソフト株式会社) 「Microsoft HoloLens による Mixed Reality の世界」
弊社エバンジェリストの
— ちょまど@MS入社して11ヶ月 (@chomado) 2017年3月11日
高橋 忍さんによる、
MRデバイス Microsoft ホロレンズ のセッション! #codeiq39 pic.twitter.com/WlzkwGQ7aD
MRについてはフィジカルとヴァーチャルの融合とMS社では定義
基本的な説明とデモを行い
いくつかの事例紹介
こんな感じで検索すると事例がたくさん出てくるのでそちらを参考にとのこと
やはり社員教育(例えば飛行機のエンジンのメンテナンス方法など)や車のカタログ的な使い方(現実に車を投影)がされているようです。
hololensについては個人的に追っていきたいところですので、また詳しく調査します!
特別対談:澤 円さん、ちょまどさん (千代田まどか) 「まどかxまどかの『自分で創るエンジニアキャリア』
大変笑える面白いイベントでした。
澤さんは保険会社のCOBOL、千代田さんはエクセルスクショがエンジニアのスタートだったようで、両方だった僕はとてもシンパシーを感じております。
また、二人とも文系と言うことで、元々エンジニアの世界は理系エリートではなくても活躍出来る実例となっていて、個人的にはとても励まされました。
お二人のキャリアについて、苦労したことについて等を話されていました。
澤円さんはすごい話の収集力がある方でなんでも相談出来るすごい人って感じでした。
懇親会でも質問・相談者が列を成してました。
アウトプットの重要性については何度も話されていたので、自分もブログ等を通してアウトプットに努めていきたいと思います。
よく覚えているのは質問コーナーでの壊れてしまったエンジニアの再生方法で、とにかく自信を付けさせて、その人が活躍出来るフィールドを用意して上げることが大切と言うことでした。
総評
無料イベントなのにこれだけのメンバ-の話を拝聴出来た上に料理にお酒にレッドブルまでつくのだから東京のイベントはもうなんか色々と桁違いだな!と思いました。
懇親会の様子
懇親会結構色々あった。
— NYRL(ナイル) (@nyrl2010) 2017年3月11日
あとレッドブルお姉さんも三人ほどいて、SEIYA体験後にじーっと見られてレッドブル貰った。#codeiq39 pic.twitter.com/tUBaYe6EAP
地方の勉強会によく参加する身としてはなかなか地方勉強会の厳しさを感じずにはいられません。
人口は力であると同時に地方にしかできないことってなんなんだろうってやはり考えてしまいます。
本日のコードIQ感謝祭、ありがとうござきました✨
— きゃんち (@kyanchiaki) 2017年3月11日
まさかの可愛いケーキを頂きズゴック嬉しいです😂
落合陽一さん、伊藤直也さん、ちょまどちゃん、澤円さん、素晴らしい講演ありがとうございました!面白いこと沢山聞けたから役立てていきたい😆#codeiq #codeiq39 pic.twitter.com/XR649VCwND