正規化単語

セイキカ
  • 0
  • 0pt
掲示板へ

正規化とは、データなどを特定ルールに基づき変更して利便性を向上させる手法である。

データベースの正規化

※当解説ではサロゲートキーを使用して解説をおこなっていることと、第3正規形まで解説しています。
第4および第5はワケがわからないよ・・・

非正規的なデータ

まずは正規化が行われていない下のデータを見てほしい(消費税は5%)

商品名 値段 税込価格 売先 売却個数
テレビ 1000円 1050円 ニコニコ本社 10個
パソコン 3000円 3150 5個
大百科ニュース 3個
洗濯機 1500円 1575円 2個
冷蔵庫 2000円 2100円 ドワンゴ 2個

データの正規化を行う上で重要なことは、「重複性の排除」と「関係性の明確化」である。
よくExcelで見られるクソみたいなデータ形式だがなんとかして利便性を向上する必要がある。
それが後述する第3正規形までの方法である。

第1正規形

まずは関係性を明確にするため計算によりめられる要素の排除と、繰り返し要素の排除を行う。

商品名 値段 売先 売却個数
テレビ 1000円 ニコニコ本社 10個
パソコン 3000円 ニコニコ本社 5個
パソコン 3000円 大百科ニュース 3個
洗濯機 1500円 大百科ニュース 2個
冷蔵庫 2000円 ドワンゴ 2個

第2正規形

次に、項と関連する値の要素を抜き出す。
ここでは「商品名」と「値段」が関連しているためこれを個別に抜き出し、「商品」テーブルに。
元のテーブルを「取引」テーブルとする。
その際に「商品」テーブルで一意な番号として商品番号を付与する。

「商品」テーブル

商品番号 商品名 値段
0001 テレビ 1000円
0002 パソコン 3000円
0003 洗濯機 1500円
0004 冷蔵庫 2000円

「取引」テーブル

商品番号 売先 売却個数
0001 ニコニコ本社 10個
0002 ニコニコ本社 5個
0002 大百科ニュース 3個
0003 大百科ニュース 2個
0004 ドワンゴ 2個

第3正規形

「取引」テーブルではまだ重複性が残っているため、これを解消する。
売先の情報を「売先」テーブルとして取り出すことにより解決できるため実行する。
なお、「商品」テーブルには変化がないためここでは割愛する。

「売先」テーブル

売先番号 売先名
0001 ニコニコ本社
0002 大百科ニュース
0003 ドワンゴ

「取引」テーブル

商品番号 売先番号 売却個数
0001 0001 10庫
0002 0001 5個
0002 0002 3個
0003 0002 2個
0004 0003 2個

最終的な関係性

第3正規形まで整えることによりデータの関係性や繰り返し要素の排除が行えるため、考え方としては中々に便利である。

テーブル間の関係性は下のとおりである。

  • 売先:取引=1:多
  • 商品:取引=1:多

Unicodeの正規化

Unicodeでは、文字の合成という概念があり、複数の文字を1つの文字として扱う手段がある。また、すでに合成された文字の一部については、それ独自で文字コードを持っている。また、一部の文字は互換性のための文字の形の変化であり、いざとなればフォントやリッチテキストで代用可である。ここでいくつか問題が発生する。

  1. 文字が等しいとはどういうことなの
  2. 扱いやすい形にできないか
  3. 文字の形の変化を抜いたらどういう形になるのか

それらを解決するのが正規化である。正規化には以下の3つの概念を覚えておく必要がある。

  • 正準分解 - 文字の形を崩さない限りにおいて、可な限り分解し所定の順序に並び替える
  • 正準合成 - 隣接した合成文字を可な限り合成する
  • 互換分解 - 文字の形の変化を取り除き、さらに可な限り分解し所定の順序に並び替える

そのうえで、以下の4つの正規化形式が定義されている。

  • NFD(正規化形式D) - 正準分解を行う
  • NFC(正規化形式C) - 正準分解後、正準合成を行う
  • NFKD(正規化形式KD) - 互換分解を行う
  • NFKC(正規化形式KC) - 互換分解後、正準合成を行う

例を挙げる。

元の文字 NFD NFC NFKD NFKC
ガ(U+30AC) U+30AB U+3099 U+30AC U+30AB U+3099 U+30AC
⑨(U+2468) U+2468 U+2468 U+0039 U+0039

U+30ABはカタカナのカ、U+3099は合成用濁点、U+0039半角数字の9である。並び替えの例がないが、要するに複数のダイクリティカルマークがある場合、所定の順序に並び替えないといけないという規則があるためである。

関連項目

【スポンサーリンク】

  • 0
  • 0pt
スマホ版URL:
https://dic.nicovideo.jp/t/a/%E6%AD%A3%E8%A6%8F%E5%8C%96

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

正規化

1 ななしのよっしん
2018/01/27(土) 08:47:16 ID: vE7pSQuDtj
ニコニコ大百科の記事名は正規化されるのでニコ百編集者をたびたび悩ませる

急上昇ワード

スマホで作られた新規記事

こちらの記事に加筆・修正してみませんか?

ムネアカハラビロカマキリ カッコウの許嫁 ワンタイムイベント