はじめに
今回はデータベースについてです。まったく知らなかった内容なのですが、データサイエンス100本ノックで、必要となったので調べました。せっかくなので備忘録で残しておきます。以下のページを参考にさせていただきました。
テーブル正規化の種類
正規化が行われておらず、一つのテーブルの中に同じような値が複数回登場するような表(テーブル)を、非正規形と呼びます。
ProEngineer https://proengineer.internous.co.jp/content/columnfeature/6480#section400
人の目で見てわかりやすいですが、繰り返し項目が存在する状態です。データが追加されるたびに横方向に伸びていってしまいます。
第1正規形
第1正規化では、横方向の繰り返しを整理します。横方向に繰り返しになっている部分を特定して、繰り返しが縦に並ぶようにします。このようにすることで、データが追加になるたびに縦にデータが追加されるようになります。
この形にした後は、候補キーを探します。 テーブルの中で1つのレコード(ユニーク)を特定できるカラム。またはカラムの組み合わせが候補キーです。
候補キーを洗い出したのち、レコードを一意に決めることができる主キーを決める、というプロセスをふみます。※主キーではNullは許されない、という制約があります。
第2正規形
主キーを構成する一部のカラムによって決まるもの(部分関数従属)を別テーブルにすると第2正規形となります。 これは、第1正規形では、同じデータが繰り返される部分を、別テーブルに切り離す作業になります。
第3正規形
主キー以外のカラム(非キー)によって決まるものを別テーブルにすると第3正規形となります。 ステップとして、まずは主キーとの主従関係で決まるものの対応(第2正規形)、それ以外で決まるもの(第3正規形)ということなんですね。
まとめ
普段、なにげなく利用しているだけでしたが、いろいろと考えられてテーブルが構成されているのですね。ただ、正規化しすぎると、結局データを扱うときに結合する手間が増える、という側面もありそうですね。利用シーンまで考慮するのがよさそうです。
コメント