第6回「漢のDB講座」


漢とはなんぞや…。

 

かつて万針房で三号生の独眼鉄先輩は問いかけました。

全ての漢がこの問いかけに明確な回答を見いだせないまま、時は流れ、草食系等という言葉も最早、定着してしまった2013年冬…。

 

我がTBKにて、漢のDB講座 〜設計編〜 が開催されるに至りました。

 

 

今回参加した精鋭は3名(>_<)

 

う〜ん…。師走の寒さが身にしみます…。

 

ただ、この寒さも吹き飛ばすほど、熱く、汗臭いプレゼンが開始されるのでありました。

 

プレゼンの概要は以下

1.データベースとは

2.リレーションとは

3.設計手法とは

4.キーとは

5.正規形とは

6.質疑応答

7.演習

 

データベースはデータを格納するものって目線であれば、どんな形態でも良いんですが、

無駄なく効率的にかつ効果的に格納する場合、正しいルールに則って行わないと、

後々、問題が発生します。

 

時間が経てば、そのBADノウハウがローカルルールになり、

そのローカルルールしか知らないモンスターが産み落とされ、

さらに悪循環に陥ることもしばしば…。

 

そんな不幸の連鎖を断ち切るそんな大義名分を抱えながら、

会は進んでいきました(?)

 

そして、86枚のスライドが漢を感じる資料のもと

活発な(?)意見も多くいただき、

レゼン資料にも沢山突っ込みをいただきました。

感謝です。

アップしたファイルはその辺は修正したものを配置しております。

 

質疑や意見が出たものをチョイスします。

 

Q1.

キーの値が変わる場合が多々ありますが、こういう場合はどうしたら良いでしょうか?

A1.

リレーショナルモデルの厳密性から言えば、変化しうる値をキーとした時点で、設計の誤りです。

数値など変化がないものをキーとして設定しましょう。

 

Q2.

マテリアライズドビューをは何でしょうか?

A2.

ビューが実体を伴わない仮想的なテーブルであるのに対して、マテリアライズドビューはテーブルを保持するものです。

自動作成されるワークテーブルと考えると分かりやすいかもしれません。

更新されるタイミングは任意で変更可能です。

 

Q3.

クエリーリライト機能とは何でしょうか?

A3.

Oeacle Enterprise Editionに搭載されている、SQL(クエリー)の読み替え機能です。

設定しておく事で、Oracleのオプティマイザがより高速な実行になる、有効なマテリアライズドビューがあれば、

プログラムのSQLを修正する事なく自動的にそのマテリアライズドビューを参照してくれます。

 

(補足)

クエリー・リライト – オラクル・Oracleをマスターするための基本と仕組み

Oracle 基本的なクエリー・リライト

 

Q4.

NoSQLって何ですか?

A4.

(サンプルとしてキーバリューストア型で)

行指向とも言われますが、キーとなる項目を特定して、CSVのようなカンマ区切りで残りの項目が入っているイメージです。

これは大量データを取り扱うときにRDBでは速度に難があるため、作られたモノです。

※リレーショナルモデルでは非正規形

高速に表示される反面、リレーショナルモデルにあるAトランザクションACID特性を犠牲にしている場合があります。

 

…説明下手のため、以下に補足

 

NTTデータ クラウド時代のデータベース選択

@IT NoSQLはRDBMSに取って代わるものなのか?

 

 

 

演習については、皆さん業務でDB操作経験も豊富なため、割とすんなり…。

一応、スーパータイプ/サブタイプ問題をチョイスしたのですが、簡単すぎたかもしれませんね。

 

 

と言った感じで、漢臭い会は終了しました。

 

今回一番言いたかったのは

『引き出しを多く持つ!』

ってことです。

 

 

独眼鉄先輩こんな回答でいかがでしょうかwww

 

 

 

次回は1月10日かも…。

第5回「Webサービスのプロトタイプをつくろう」


みなさんこんばんは。前回に引き続き、F田です。

 

前回は「色々なWeb APIを利用して、地図に印をつけてみよう」という宿題が出て終了しました。

さぁ、みなさん、ちゃんと宿題をやってきましたか?

因みに、F田は挫折しました・・・

 

「ダメだ・・・考えることを放棄している・・・」

 

正解その通り!だって「考えることが・・・怖いんだ!」もの。

 

という、どうでもいい言い訳は置いておきまして、宿題をきちんとやってきたのは、ボスも含めて2名!

しかし、さすが御両方!PHPに関して「echo」しか知らないF田とは違って、とても勉強になるソースを書いてきて下さいました。

そのサンプルソースを使って、具体的な処理の解説。その前に、生意気にもF田が「xmlHttpRequestとは、Levelが二つありまして・・・」なんて、偉そうに説明をしましたが、その部分は割愛!『xmlHttpRequest クロスドメイン』などで検索すると、より分かり易く説明してくれている方々があふれているので、そちらをご覧頂ければ、と思います。

 

というわけで、お二方のサンプルソースを見ながら、ご本人に解説して頂きました。結果は同じなのに、そこに至るまでの処理の記述が微妙に異なる。これがプログラミングの醍醐味ですね!

 

そんな中、ちょっと話題に挙がったのが、いわゆる「アフィリエイト」!日本語で言うと「成果報酬型広告」だそうです。直接TBKと関連は無いのですが、F田は今回初めて知りました。そんなおいしい物があるんですね。

そして、「Mashup Awards」について。様々なWebAPIを駆使して作成したWebアプリのコンテストです。今回は9回目だそうで、作品の応募は既に締め切られています。次回の開催時に、応募できたらいいですね。こうした目標があると、モチベーションも上がります!!

 

と、色々話が盛り上がって今回は終了。プログラムのソースとかが出てくると、一気に勉強会っぽくなった気がします。

また、F田は今回も世の中の凄さに驚かされました。本当に勉強になります。

 

さ~て、次回のTBKは・・・

「ボスによる『漢のDB講座』」です!

全3部作(予定)の第1部です!果たして、物語はどのような幕開けを迎えるのか、乞うご期待!というわけで次回も、サービスサービス~!

 

最後に、今回のTBKで使用させて頂いたプログラムのソースはウプして頂きましたので、勉強の参考に是非活用しましょう!

 

以上、F田でした!!

第4回「Webサービスのデザインを考えよう」


こんにちわ!今回のブログはわたくし「F田」が書かせていただきます!

 

21013年10月11日、わたくしを司会者として、第四回の勉強会を開催致しました。

 

当日は、業務の都合などにより参加者が激減!

いつもとは違う会場に一人で向かうことになってしまいました。こんなこと全く想定していなかったので、かなり焦りましたよ!

 

いきなり路線を間違えたり(正確には誤情報を流されたのですが・・・)しながらも、どうにか会場に到着!結局、5分程の遅刻をしてしまいました。

 

さてさて、そんな感じで始まった今回の勉強会。参加者は五名。

テーマは「Webシステムのレイアウトを決めよう!」

 

正直、ほとんど前準備らしい準備を行わずに行き当たりばったり的な感じでしたので、のっけからぼろぼろ。

しかし、参加者の皆様のお力添えによりどうにかこうにか進行。

 

というわけで、「レイアウトを決めよう!」から、「色んなWebページが提供しているAPIを知ろう!」てな感じの話へ。

本当に驚きました!世の中には便利なサービスがあふれているんですね。もう材料は揃いきっているので、あとはそれをどう組み合わせて物を作るかだけ、って感じです。

 

今回使ってみましょ、という話になったのは

・駅の位置情報を教えてくれるサービス

・位置情報を入れると周辺のお店情報を提供してくれるサービス

・指定の位置にマークを付けて地図を表示してくれるサービス

これらを組み合わせれば・・・おぅ!なかなかいい感じのが出来そうではないですか!

 

更に、見た目のいいページを作るためのCSS集とかも世の中にはごろごろ存在しているようですし、もう自分で考えるというより、そういった情報をどこまでうまく使いこなせるかにかかっている感じですね。情報化社会恐るべし・・・

 

というわけで、なんだかんだで時は過ぎ、今回の勉強会は無事に終了。

次回までに、上記のサービスを使って、実際に動くページを作ってみましょうよ、という話になりました。駅を指定すると、周辺のお店の位置を地図上に表示してくれる、みたいなページですね。

駅名のチェックや曖昧検索は置いといて、とりあえずはドロップダウンリストから駅を選択させるインターウェースで実現を試みてみましょう!

 

そんな訳で、次回までの宿題が出されて第四回の勉強会は閉幕!

次回の司会者は・・・

 

因に、たいへん私事ですが、昨日「iPad2」を購入いたしました。

正規整備品でけっこうお得な感じでゲットです。で、このブログもそれで書き込もうとしたのですが・・・なんか色々手こずって入力不可!!結局諦めて、最近ご機嫌斜めのiMac君をどうにかなだめて、そちらで書き込みました。やっぱり新しいPCを購入しないとな・・・