キムラデービーブログキムラデービーブログオープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。データベース実践入門」読書会(20)覚書-20一昨日の続きです。トリガーはデータベースリファクタリングによく使われる。(これはまた別途まとめたい)makopi23さんが話してくれたSQLアンチパターンでの忍者屋敷おもしろかった。NULL制約の導入たとえばフォームなどであらかじめNULLが予定され、その数が知れているような場合は、そのままひとつのテーブルにすることもあるけど、不定や数がわからないような場合は表分割するね。NULLについてはOracleのVARCHAR2に長さゼロの文字列をいれるとNULL扱いという方言がある詳しくは以下のスライドを参照。NULLとの戦いRDBMS実装編ちょっとはずれるけど「データのクレンジング」も必要。文字列型に見えない文字(半角スペースや、タブ、コントロールコード、全角スペース(!)を入れて一致しないとかある。きたみりゅうじさんの漫画でもあったけど、NULLのかわりに'NULL'という文字列を入れている人とか。(ちなみに漫画の公開は最新五本だけなので、この話は現在みれません)http://gihyo.jp/dev/serial/01/funny-play/NULLは値ではないので、NULL値と呼ぶの禁止。・主キーが既約ではない場合。「既約」ってナニ(?)→読書会の後みつけた。p.79の真ん中あたり。本の索引にないので、ほしい。MySQLでは主キーは必ずクラスターインデックス(他のRDBMSでは必ずしもそうでない)なので、結構変更には時間がかかる。アプリ側ではさまざまなレベルの人がいるので、アプリ側て担保するのは難しい。使えるならRDBMSの機能の制約を使う。SQLアンチパターンの和田さんいわく「悩んだら寿命の長い方にあわせる」ということらしい。ミドルとアプリで悩んだらミドル。ウワモノは頻繁に変わるけれどもバックエンド、特にデータはなかなか変わらない、ので。(人づての伝聞なので詳細違うかも。トリガーと外部参照制約を使った2テーブルの同期これは実装にあたりいろいろと考慮点がありそうなので、また別の機会に。次回は2016-03-02(wed)予定です。データベース実践入門」読書会(20)覚書-10結局放置しておくと、いろいろなものがスタックしてかけなくなるので、なるはや、で覚書として残します。ベンチマークテストから、p.314あたりまで。■ベンチマーク...といえば、@sh2さんのまとめしか思い出せない。以下の私のブログエントリから参照できます。Firebirdのパフォーマンス学習のためにTPC-Cを使うsh2さんのまとめと、松信さんの「正しいベンチマークをするための10のポイント」は必読です。■マイグレーション旧世代の「ひとつのDBから、他社のDBに移行する」という意味ではなく、RoRのマイグレーションイメージです。・逆に遅くなるのがこわい。DDLと、インデックス追加・削除「中」の扱いも改善されています。基本現場でやらせてくれない。変なローマ字(KAIINBANGO)とか、ミススペル(NANBER)とかがそのままリリースされ十年さらしものの刑とかになる。ASE)は文レベルのサポートのみ。Serverからの移行のための追加情報リリース3.0)文レベルで複数の行が対象になった場合の扱いは以下のような感じで行います。DB2/PostgreSQlが文レベル、行レベル、両方つかえる。Firebird/MySQLは行レベルのみ。日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」0毎月届く日経SYSTEMSをお風呂で読んでいる木村です。私の同僚にはきっと日経SYSTEMSを読んでいる人はいない(いると、わたしと同じ?かもやもやがつのるとおもうので)らしいので、?がmaxになった今ここで書きますね。いまコラムで石田裕三という方が、ITアーキテクチャーの真髄、というコラムを毎月A4一ページ書かれているのです。他にも特集や記事があるので、お風呂で「ふんふん」いいながら毎月読んでいるのですが、あるときからこの「ITアーキテクチャの真髄」が気になってしかたないのです。第7正規化の話がちょくちょくでてくるのですが、残念ながら私はそれを知らず、ググっても、知り合いのおーがみさんの以下の資料がでてくるだけで。300秒で高度正規化を紐解け..なさそう「石田裕三」という名前で検索しても、一冊しか本がでてこないため、悶々としています。12月号(本日届いた)にはついて、前月に続いて有名人の名前をあげて「また、本連載でおなじみの「第7正規化」のデータ構造では」といういいまわしがでてきて、お風呂で卒倒しそうになりました。SYSTEMSを見ていても、まったくわかんないんですけど。本を出していたりしたら、とりよせて勉強するので、誰か教えてもらえませんか?(切実)まったくもって詳細がわからないんですけど。わかんない上に「おなじみの」とかいわれたらずっこけます。ONLY」のテーブル設計と呼ぶ」あたりくらいで、後は次の号(2015-09)の見出し「RDBの性能問題"第7正規化"で根本解決で、第7正規化の名前がでてきて。うーんんでもって、中盤「ここでも徹底した正規化が効果を発揮する。Shapiroが言及され、ビッグネームを出されてもやはらわかったようなわかんないような話で、正直困っています。いうか実生活では困らないのですが、もやもやがつのっています。Ishida)正規化」とかなら、まぁ「おれおれ正規化」だと思っていればいいんですが、天下の日経SYSTEMSで第7正規化、という名前をつけるならば、当然定義は明確化されており、少なくとも英語で何がしかの手法で世に問うており、第七を名乗るにたる「なにか」があるんですよね?残念ながら、私は日本語のしかも日経SYSTEMSの2015-08から2015-12までの計5ページの日本語コラムしか見つけられませんでした。_)mもしくは、第7正規化の定義を募集しています。Thursday祝!「おうちで学べるデータベースのきほん」増刷0今年の二月に出版したミックさんとの共著「おうちで学べるデータベースのきほん」、めでたく十月に増刷になりました。自分の書いた本ではじめての増刷です。Thursday「理論から学ぶデータベース実践入門Night」に参加してLTしました。0前回荒天で中止になった首記のイベント。再調整された日程で参加しました。定員いっぱいでLT枠で申し込んだのですが、(LTやると確実に参加できる)再調整された日は一般参加でもよかったのですが、そのままLTに申し込んで直前は資料作成にあたふたしていました。くわしくはmakopi23さんのブログでどうぞー。「理論から学ぶデータベース実践入門Night」に参加しました(makopi23のブログ)奥野さんのセッションのあと、ビールの見ながら気楽にLTしようとしたらひらぽんさん、さらに続くLTが面白すぎて「これはトリになると危険だ」と思って、なんとかトリ前にLTできました。6,911(2014-12-16)日本語版は第四版が最新ですが、すでに英語版は5thがでてます。4版との章立ての違いはいずれまた。第2刷)をざっと通して読んだ0以前、こんなことをいってたのですが、なかなか時間がとれず。今回時間がとれて通してみたので、気になった点だけを以下メモ書きです。ほとんど重箱の隅をつつくようなものです。以下も追記してもらえるとありがたいですね。5.5に対応した第3版が出版され邦訳もでています。なじみない人もいるかもしれません。REGEXPも含めた正規表現は、MySQLではマルチバイト未対応です。演算子はバイト単位で機能するためマルチバイトに対して安全ではなく、マルチバイトキャラクタセットで予期しない結果が発生する可能性があります。2.1も加えていただけると助かります。DB2の方言だったからです。入れ子区間モデルに英語も併記してほしい。Editionの記述とプログラマのためのSQL新版にも言及してもらえるとありがたいですね。Smarties』[Cel04]は第二版が出版されましたが、初版・第二版ともに邦訳は残念ながらありません。階層構造の扱いに関して日本語で読めるセルコの著作には『プログラマのためのSQL第二版』[Cel01]と第四版があります。CACHEが有効なのはMyISAM型テーブルのみです。NULLがTRUEやFALSEを返します。Serverの祖先であるSybaseの仕様からきています。ASEでもANSINULL=OFFにすると同様に=NULLがNULLではなくTRUEやFALSEを返します。REGEXP)は日本語を含むマルチバイトに対応していません。Karwin)のほうは以前紹介していたのですけど、邦訳は紹介してなかったみたいですので、ここで紹介を。データベース界のハンセン親子(ってこのネタ通じるのかな。)、和田卓人&省二氏監訳そして邦訳ではMySQLのオトコである奥野幹也氏書下ろしネタ(第25章砂の城)という贅沢な構成の本書はSQLにかかわるすべての人々にオススメです。内容については原著を紹介したブログとその参照先でおおまかにわかりますし、邦訳については次のブログエントリ群ですでに語られつくされていますので、それを紹介するにとどめます。「SQLアンチパターン」。DatabaseエンジニアのBlog)私自身は原著を持っているので邦訳買うかどうかまよってましたが、和田卓人さんと奥野幹也さん、それぞれにご献本いただきました。さんに『SQLアンチパターン』を献本できたので、静内に行ってよかったなと思います。エンジニアが次々に集まってくる不思議な店でした。14ありがとうございました。2014-04-03(thu)にはじめて勉強会に参加したところ、和田さんはかなり翻訳とか、例題としてとりあげているクエリに注意しているみたいですので、私ももういちど細かく見てみようと思います。スパゲッティクエリ0ミックさんに↓んなこといわれてから、参加する機会をうかがっていたアンチパターン勉強会。約半年後に何も予定のない週に募集がかかり、さらり参加できました。30読書会といっても、その場でとうとうと読むのではなく、参加者は該当する章をさらりと読み、発表者がひとりさらりと発表して、あとはおおきめの付箋に語りたいことを書き、模造紙に貼りグルーピングして、参加者で座談会。「(ネタ)コード生成の実例」MySQLやFirebirdでは複雑なクエリを一つ書くよりは、簡単なクエリ複数発行のほうが理にかなっている感じがします。古いMySQLではストアドが利用できなかったので、テンポラリテーブルに逃げるしかなかったのですが、いまだとストアドも使えますし。具体的な例については、また日をあらためて書きます。Table)」の話もでました。確かにググるとOracle関連ばかりヒットするので、方言かもしれませんねぇ。これもまた日をあらためて。読書会(勉強会)終了後は、会場であるアルティネット様(会場提供ありがとうございます)近くの中華料理屋でバカ話炸裂。次回以降も都合がつけば参加しますので、みなさまよろしくお願いします。参加者makopi23さんのメモが公開されました。キムラデービーのスローガンです。体現していくこと、それがキムラデービーのテーマです。いつも「SQL」自体を応援し、「SQL」を元気にしていくことこそがキムラデービーの社会に対する姿勢・責任であると考えます。あなたも、ちまたにあふれる'%SQL%'からあなた自身のSQLを見つけてください。SQLがあればデータベース本体は不要であるといっても過言ではありません。Server)のバージョンごとの違いを楽しめるようになれば、一生費やして楽しめます。LIFEの意味ではございませんとも、そうですとも。»)100人のうちの一人としてミックさんの本を推薦しています。克信ここにきてまさかの復刊。システム構築の新スタンダード。Bini大場夫妻渾身の一冊。内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。幹也これまでにない構築、そして構築後のMySQLのための本。Gehrkeミックさん連載の参考書籍です。いいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。SX260のHD換装用に購入。SX260の換装用に購入。SX260の換装用に購入。今はコチラのほうが安いですね。FowlerOSC2010神戸に出展されたジュンク堂で買いました。»)メガトン級の過去記事。