【後編】正規化ってなんだ_非正規形について【ノンビン塾:第7回】
※「ノンビンとは?」となった方へ
へいしゃのやんちゃボーイです
前回の記事に引き続きです。
この記事では前回伝えきれなかった
正規化の第1~第3形態についてまとめていきます。
kintoneを使って実践していきながら解説するぜ🌞
はじめに
今回の内容は、以下も参考にして作成しています。
正規化の種類
- 非正規形
- 第一正規形
- 第二正規形
- 第三正規形
※これ以外にもある
第一正規形 とは
こういうヤツです
非正規形をデータベースに格納できるよう、各データを独立させた形態です。
でも、このままではまだまだイケてないテーブルです。
例えば、↑の画像で「消しゴム」というデータが重複していますよね🤔
さらに、「鉛筆」「消しゴム」「筆箱」以外に購入したものが増えてきた場合は
それを購入しないとデータとして登録されてきません。
それは困りますよね😎
それを、第二正規形として更に正規化していきます。
第二正規形 とは
非正規形のデータを、第一正規形でデータベースに収められるようにしました。
第一正規形で一意(ユニーク)なデータと判断するには、なんの項目を見るべきでしょうか?
細かくデータを分析してみましょう。
わたしが今 例 としてカキカキしているデータベースは、
「株式会社コラボスタイル」のななさんが
「文房具」をいくつ「いつ」買ったのかを、格納していますよね。
上記でいけば、以下のように分割することができます。
- 文房具の商品情報を格納するテーブル
- 文房具の購入情報を格納するテーブル
文房具リスト
購入リスト
こうなります。
ユニークなデータと判断するには、さっき角括弧「」で示した
データがダイジになってきます。
- 取引先名
- 商品名
- 購入日
第三正規形 とは
では、これで正規化は完璧でしょうか?
ええそうです、そうやって聞くということは実はまだ未完成なのです👩🦳
取引先の担当者が変化した場合は?
現状だと、1つの1つのレコードを修正していくほかありません。
あ、いざという時のために電話番号も保管しておきたいなぁ。
現状だと、1つの1つのレコードを修正していくほかry
主となる値以外に紐づくものも、別テーブルとする必要性が出てきました。
ここで登場するのが第三正規形です。
取引先リスト
担当者リスト
これで取引先が変更になっても、担当者が変わっても、
緊急時に電話をかけたくなってもおkな状況ができました。
改めて、購入リストを見てみましょう
赤枠で示されている部分が、実際には別テーブルからデータを持ってきたものです。
※レコードで値をベタ書きしていない状態
「購入リスト」という名にふさわしく(?)
純粋に「購入日」と「購入した数量」を手入力しているのみです。
ここまでデータが細かく分けられていると、
今度は逆引きも容易になります。
逆引きとは、
例えばGoogleで自分の名前を調べてみたとき。
色んな同名さんが出てきますが、
その中にコラボスタイルの石川ナナさんが出てきたりします。
これが逆引きです。
「いしかわなな」というワードから「コラボスタイル」という単語をひけてます。
こうしたように、関連するデータ(レコード)を作れるのは
主キーがあるからだったりします。
主キーまじだいじ、データ設計まじだいじ ですネ!
おわり
今回のノンビン塾は「データベースについて」「正規化について」でした。
いかがだったでしょうか?
わたしは当日フンフンと聞きながらメモも取っていたのに、
実際に書き起こしてみるとけっこう難しくて
色んなサイトを見ながら復習をしていました🐸
特に、主となるデータ、そうでないデータの切り分けが難しかったです。
ノンビンがよくいってますが、「難しいなぁ」と感じたときこそ
シンプルに考えてみることが大切です。
シンプルに考える とは、 カッコイイことをしない こと。(だと思う)
今回でいうと、いきなり「綺麗にデータベースをつくろう」と
むりに正規化から始めるのではなく。
泥臭くても、遠回りでもいいから、必要なデータを洗い出したり
非正規形で組んでみること。
必要・不要を考えるのは情報が揃ってからでも問題ないと感じます。
いきなり頭の中でやれたら、そりゃかっちょいいですが👍
背伸びせずにまずは手を動かしてみたいですね😎
Discussion