LoginSignup
0
0

More than 1 year has passed since last update.

初心者が第3正規化までまとめました。

Posted at

正規化の前提知識として

テーブルとは

テーブルとは、共通点を持ったレコードの集まりです。 なので、テーブル名は英語名で複数形で書けます。複数形で書いてみてどこか不自然を感じたら、そのテーブルにはどこか間違いがあるということです。 ex. Employees Orders

キーとは

キーとは、リレーショナルデータベースのテーブルになくてはならない物の1つです。キーとは、あるレコード(1行とは限らない)を特定するための列の組み合わせ、という意味です。特に重要なキーとして、主キーと外部キーがあります。

主キーとは

主キーはテーブルにおいて必ず1つ存在しなければならず、かつ1つしか存在しません。主キーはその値を指定すれば必ず1行のレコードを特定できるような列の組み合わせのことです。 「1行を特定する」 → 「一意に識別する」 → unique 主キーが存在しなければならないということは、テーブルには重複行は存在できない、ということです。 場合によっては、複数列を組み合わせなければ主キーを作れないこともあります。その場合は、複数の列を組み合わせて作るキーを複合キーと呼びます。

外部キーとは

外部キーは2つのテーブルの間の列同士で設定します。 外部キーは人間の親子関係と同じ。 外部キーが設定されている場合は、データの削除は子から順に操作するのが吉。 外部キーとなる列には、コードやIDなど表記体系の定まった固定長文字列を用いる。

NULLとは

データベースにデータを登録する時に、その値が定まらない時があります。その時にデータをNULLという扱いにすることができます。つまり、空欄です。 主キーとなる列には、DBMS側で暗黙にNOT NULL制約が付与されます。重複が許されないため、NULLも許されないのです。

第1正規形

第1正規形の定義とは、1つのセルの中には1つの値しか含まないです。 この値のことをスカラ値と言います。スカラ(scalar)とは単一のという意味です。 なぜ、1つのセルに複数の値を入れることが認められていないのか?その理由は、セルに複数の値を許せば、主キーが各列の値を一意に決定できないからです。 これは、主キーの定義に反しています。

第2正規形

第2正規形とはテーブル内で部分関数従属を解消し、完全関数従属のみのテーブルを作ることです。 やり方は、部分関数従属の関係にあるキー列と従属だけ独立のテーブルにすれば良いです。 第2正規化は必ず正規化する前の状態にテーブルを戻ることができるようになっています。これを可逆的(reversible)と呼びます。 情報を完全に保存したままテーブルを分割する操作のことを無損失分解と言います。

※正規化の逆操作は結合

第3正規形

テーブル内部に存在する段階的な従属関係のことを推移的関数従属といいます。 第3正規化は推移的関数従属によるデータ登録時の不都合を解消するためにする。 テーブルを分割していくことで、非キー列はキー列に対してのみ従属するようになります。 第3正規化も無損失分解です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0