2016年11月11日

伝票と結束バンドって同じなのか!?

来春にIPAのデータベーススペシャリスト試験を受けるため、勉強用のノートとして残しておきます。
3
平田凡斎 @HBonsai

デスペに備えて基本応用セスペとスルーしてきた正規化理論をやってるんだけど純粋に数学みたいで面白い(でもデスペ専用のテキストぇ30P以上割いてやっと説明が足りて理解できる感じだからそりゃー基本や応用のテキストでは不十分だわなって感じ)

2016-11-11 11:48:27
平田凡斎 @HBonsai

数学みたいというよりは数学そのものだな

2016-11-11 15:55:15
平田凡斎 @HBonsai

デスペH25春午後IQ1の「名寄せIDの候補キーをすべて答えよ」という問題。図を丸呑みすれば答えは{プロパイダID,利用者ID}になるけど、名寄せIDからプロパイダIDや利用者IDも求まりそうだしそうなると{名寄せID}も候補キーにならんのかしら? pic.twitter.com/sG3kXAYNGf

2016-11-11 14:18:51
拡大
平田凡斎 @HBonsai

問題文の図に忠実に考えるなら確かに一通りしかないけど少しモヤっとするぞ〜〜〜!

2016-11-11 14:19:40
平田凡斎 @HBonsai

@randou_n 名寄せ作業をやったことがないからかもしれませんが、名寄せIDがどういう時に発行されていつ更新・破棄されるのかイメージが掴めないのです(TwitterのHBonsaiとgmailのhbonbyakuに対して同じ名寄せIDが発行されるということでいいんでしょうか)

2016-11-11 14:34:25
平田凡斎 @HBonsai

プロパイダID:利用者IDの組うちTwitter:HBonsaiとBlogger:bonbyakuanとgmail:hbonbyakuに対して同じ名寄せID:HirataBonsaiが発行され、『名寄せ』関係に取り込まれるということでいいのかな pic.twitter.com/kXz8GQyhJB

2016-11-11 14:41:22
拡大
ランドウ @randou_n

@HBonsai 私も詳しくないながらざっくり申し上げますと、HBonsaiはスクリーンIDであって変更可能です。それに対して、ユーザーID(一般的でないが、設定ページで確認可能な数字の羅列)は1アカウントに1つ固定です。これが名寄せIDかと。

2016-11-11 14:42:12
ランドウ @randou_n

@HBonsai 故に、ユーザーID(名寄せID)から引くと、過去の名前とかもヒットしてしまい一意に決まらないのです。

2016-11-11 14:43:14
ランドウ @randou_n

@HBonsai 現実で言うと、結婚などで変わる名前に対してのマイナンバーが名寄せIDに近いかと。

2016-11-11 14:43:56
平田凡斎 @HBonsai

@randou_n ありがとうございます。どうやらプロパイダIDと利用者IDの組は同一人物に対して一つしかないと思い込んでいたようですね。スーパキーやら候補キーやら慣れない概念が多いので混乱します。ただデスペは手を動かしていくうちに分かる事も多いそうなので演習積むしかなさそうです

2016-11-11 14:47:12
喚く狂人 @wamekukyouzin

@HBonsai もう答えでてるけど名寄せIDは同一人物の各プロバイダに対する利用者IDを関連付けるために付与するものになり、複数の行が同一の名寄せIDをもちうる。だから名寄せID単体では候補キーになれんよ。

2016-11-11 15:03:14
喚く狂人 @wamekukyouzin

@HBonsai 利用者IDとプロバイダIDは多対多でありRDB上で表せない。なので間に名寄せIDを挟む。すると一対多、多対一になり、RDBで表せる。

2016-11-11 15:13:18
喚く狂人 @wamekukyouzin

@HBonsai 同一の手法のわかりやすい例に「売上」と「商品」がある。一つの売り上げは複数の商品をもち、一つの商品は複数の売り上げをもつ。なので間に「売上明細」、有り体にレシートを作ることで、一つの売り上げに複数の明細、一つの商品に複数の売り上げ明細とする。

2016-11-11 15:14:26
喚く狂人 @wamekukyouzin

@HBonsai ごめん後半二つへんなこと言ったから忘れて

2016-11-11 15:20:44
平田凡斎 @HBonsai

@wamekukyouzin いや、大体分かる気が……つまり名寄せID・特性IDと言った一見曖昧で実体がないように見えるものは、顧客-商品のようにお互いに分散しあっている関係を注文伝票のように二つに分割してまとめ上げるための媒介だと疑った方がいいということですね?(抽象的ですが)

2016-11-11 15:23:09
喚く狂人 @wamekukyouzin

@HBonsai うんそこは間違いない。ただ今回の場合、名寄せIDは「人」に対して割り振られるという見方もできる(というかそっちの方がわかりやすい?)。解答の根拠の話に戻るけど、名寄せIDはプロバイダIDと利用者IDに関数従属してるので候補キーにはならんっていう話もあるよ

2016-11-11 15:37:50
平田凡斎 @HBonsai

@wamekukyouzin 商品番号→商品名の関係と商品名→商品番号の関係が同時に成り立つように従属項でも同時に決定項でもあれば(1対1なら)候補キーにはなりうるが、名寄せID→{プロパイダID,利用者ID}は成立しないのでこの場合はダメということですね(ありがとうございます)

2016-11-11 15:52:12
平田凡斎 @HBonsai

@wamekukyouzin テキストを読めばほぼ同じ文章が書いてありますけど、辞書引きながら自分で導き出すまでに数時間……(本番までに5分で書けるようにならないといけないので大変ですね)

2016-11-11 16:00:22
平田凡斎 @HBonsai

顧客-商品のような多対多の関係に伝票を挟んで1対多*2に分割するのって、いろんなポートをつなぐケーブルがぐちゃぐちゃに混ざっててどこからどこにつながっているのかわかんねえ!という時でもデバイス-デバイスごとに結束バンドでまとめあげてしまえば扱いやすくなるという話に似ている気がする

2016-11-11 15:32:02
平田凡斎 @HBonsai

デスペは演習が命だと言われるのも分かる気がするぞ……もともと抽象的な概念を扱っているから手を動かして直感的に操作できるようにしておかないと太刀打ちできん(本当に高校数学に似ている)

2016-11-11 15:24:57

オマケ

平田凡斎 @HBonsai

@HBonsai 出典:株式会社わくわくスタディワールド 瀬戸美月『徹底攻略データベーススペシャリスト教科書 平成29年度』P23 amzn.to/2faxWKc

2016-10-25 11:12:59

コメント

コメントがまだありません。感想を最初に伝えてみませんか?