T-SQLの勉強をしている.正規化は「まさのり」化ではないことを卒業前に知ったほど計算機に関しては劣等生な私である.それだから開発の仕事をしていても時給の非正規雇用なのである.ともかく,参考書を読んでいてすっきりしたことがある.それは,正規化とはデータの冗長性をなくすことである,ということだ.
よく正社員のことを正規雇用,派遣やアルバイトを非正規雇用という.それは,正規雇用とは替えが利かない,非正規雇用とは替えが利くという意味らしい.正規のデータは何かに代えてしまうとそのデータが失われてしまう重要なデータである一方,「非正規データ」つまり冗長なデータとは,「解雇」つまり削除しても替えが利くつまり「社内」つまりデータベースに代えのデータが残っているので,削除してよい,むしろ削除したほうが良いと判断されるデータのことなのだ.
正規形とはそのような「人員配分」に無駄がないように,各々の「部署」つまりテーブルを構成する手続きのことである.正規化は非正規雇用から正規雇用への格上げだと思ってよい.正規形に首にならないヒントを見出したい.
第一正規形では全く同じタプルを削除している.同じ仕事をする人が同じ部署に2人もいらないのだ.第二正規形では同じデータをテーブルに書き出している.同じ仕事をしている人たちをまとめれば外から分かりやすい.第三正規形では同じ関係をテーブルに書き出している.同じ仕事をしていると同じ人に聞きたくなるが,その情報の流れでチーム分けすれば流れやすい.
正規化は第三正規化までで充分だという.誰かと同じ仕事をしない,同じ仕事同士でまとまる,仕事の流れをまとめられる.この3つで充分に正社員になれるかもしれない.そんなわけはなくても仕事のできる人になれそうである.
