今週はマジで疲れた。3行で済むwhere句を使ったSQL文なんかでは、現場では通用しなかったな…。
テーブルが何十個に分かれたデータを、小難しいSQL文書いて、結合させたり、条件に該当するデータだけを抽出して一覧表示とかさせてたが。
Excelの世界で生きてきた自分にとってはどうも、RDBMSの世界についていけなかったりする。
一番、理解しがたいのは「SQLの正規化」とかいうのを行って、やたら表を増やしたがる感じだ。
だがその風潮に俺はアゲインストしていきたいな。
判りやすく正規化の弱点、単純なモデルでそれを提示してやるとだな。
店名 | 郵便番号 | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 茨城県守谷市野木崎97−3 |
みたいなデータがあるとするよ。
ほんでこれを正規化するとなると、まあ住所だな。
住所をDividedして、県名と住所に分けるとするわ。
店名 | 郵便番号 | 県名 | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 茨城県 | 守谷市野木崎97−3 |
ってなる。正規化はこれで終わりじゃないんだよ。
セル、値を別のテーブル(表)から定義するから、こんな感じでデータが分かれる。
表1(本体テーブル)
店名 | 郵便番号 | 県名コード | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 1 | 守谷市野木崎97−3 |
表2(県名テーブル)
県名コード | 県名 |
1 | 茨城県 |
そしたらどうよ!?
余計な列が増えてるやろ。正規化には共通項、2つのテーブルを紐づけるための共通の列が必要だからな。
まさに「正規化の失敗」というやつではないだろうか。
だって列が4から5に、表だって1から2に増えてるんだから。
データが肥大化して複雑化したってことだからな。
しかも、しかもですよ。ここから何と、データを確認するときは、
select * from 本体テーブル h
lelft outer join 県名テーブル k
on h.県名コード=k.県名コード
みたいな小難しい文を入れてだな。したら、
店名 | 郵便番号 | 県名コード | 県名 | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 1 | 茨城県 | 守谷市野木崎97−3 |
みたいにデータが全部出てくるってことで、
select 店名,郵便番号,県名,住所 from 本体テーブル h
lelft outer join 県名テーブル k
on h.県名コード=k.県名コード
ってな感じで書き換えて、ようやく…
店名 | 郵便番号 | 県名 | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 茨城県 | 守谷市野木崎97−3 |
みたいに、正規化する前の最初の状態を表示させて、確認するのよ。
ちなみにleft outer joinってのは「左表で結合相手が見つからず、NULLであっても必ず出力せよ」みたいな感じだ。
こんな単純なモデルならjoin句でもよかったのかもな。
閑話休題。
最初から分けなくてよかっただろ?
わざわざ表を2つに分けて、確認するときは小難しいコード打ち込んで、何をやってるんだと。
だがここでメリットが見える場合もある。
これをやることで県名が入ってない住所をあぶりだせることだってある。
店名 | 郵便番号 | 住所 |
とんかつまい泉守谷下り線 | 302-0117 | 茨城県守谷市野木崎97−3 |
とみかつ古市店 | 536-0001 | 大阪市城東区古市3丁目21−19 |
みたいにな、「"大阪府"が無い」ってことが、正規化する過程で見つかったりするだろ。
まあ他にも、こんな単純なモデルでは見えてこないメリットもあるっぽいんだがな。
あと主キーがどうこう、っていうのも大事みたいだが。
集中力切れた、もう今日は勉強しねえぞ。
そんな感じで、仕事に疲れた時、癒されたい時に最近これを聴いてる。
う〜ん、何と甘美な。
美しいヴァイオリンの調べとともに、それに相反するまではいかないまでも、哀愁と郷愁を掻き立てるような繊細なギターとヴォーカルが調和してる。コントラバスが少しだけ重厚感を与えて、響き渡るというか寄り添うような乾いたドラム、プリミティブな口笛で生み出すメロディも、更にこの音楽に奥行きを付与してる感じだ。
しかもこれ、野外でやってるんだよ。"anpuragudo"(アンプラグド)だよ。
この文明社会、電力に依存した生活を過ごしている中で、それ無しでこんな素晴らしい音楽を創り出せるってのは、すごいことよほんとに。
ロケ地が東京?(クレジットに「national astronomical observatory of japan」と出てる)なのか、どこか判らんけども「こんな美しい緑が残っている場所があったなんて!」と、音楽の良さで周りの風景まで引き立ってる。
もっと評価されるべき。5万回再生なんてじゃなくて、俺からすれば、500万回再生されてほしいぐらいの音楽だな。
何がアム活だよほんとに。安室奈美恵の音楽は確かに、「Don't wanna cry」とか「Baby Don't Cry」とかよ、いい曲もあるよ。
でも神聖化されすぎだろ、と思うんですわ。紅白の時だって、違和感があった。
笑顔はあったか、感情表現は豊かだったか?90年代の青春時代が沸き上がるような、思い出を喚起してくたか?
我々の人生に寄り添うようなステージだったか?
俺は「否!」だと言いたいね。
安室ちゃんと同じぐらい素晴らしい音楽創ってる人もいる。
単に運悪くメディアに取り上げられなかったり、宣伝がうまくいかなかったり、口コミで広がらなかったりとかね。
探せばあるんだよ。好奇心が欠如してると思ってる、俺は。
音楽が好きならば、もっといろんな音楽をdigするだろうし、そしたら安室ちゃんへのリスペクトは、他のアーティストにも向くだろうから。
決して一アーティストだけ、とはならないはずなんですわ。
とか何とか思うに至ったのは、安室ちゃんにちなんだこんな記事を見つけたからよ。
こんなクビの言われ方ってあるか…湘南のイメージ変わるなぁ。
でも行ってみたくなったな、湘南国際村。
葉山のマーロウのプリンも食べてみたい。
オンラインでも売ってるみたいだけどな、知らんかった。
古川麦のGreen Turquoiseは本当にアンプラグド音楽の2010年代のアンセムだわ、是非聞いてちょうだい。
古川麦 FAR/CLOSE(「Green Turquoise」収録)