正規化とは、データなどを特定のルールに基づき変更して利便性を向上させる手法である。
※当解説ではサロゲート・キーを使用して解説をおこなっていることと、第3正規形まで解説しています。
第4および第5はワケがわからないよ・・・
まずは正規化が行われていない下のデータを見てほしい(消費税は5%)
| 商品名 | 値段 | 税込価格 | 売先 | 売却個数 |
| テレビ | 1000円 | 1050円 | ニコニコ本社 | 10個 |
| パソコン | 3000円 | 3150円 | 5個 | |
| 大百科ニュース | 3個 | |||
| 洗濯機 | 1500円 | 1575円 | 2個 | |
| 冷蔵庫 | 2000円 | 2100円 | ドワンゴ | 2個 |
データの正規化を行う上で重要なことは、「重複性の排除」と「関係性の明確化」である。
よくExcelで見られるクソみたいなデータ形式だがなんとかして利便性を向上する必要がある。
それが後述する第3正規形までの方法である。
まずは関係性を明確にするため計算により求められる要素の排除と、繰り返し要素の排除を行う。
| 商品名 | 値段 | 売先 | 売却個数 |
| テレビ | 1000円 | ニコニコ本社 | 10個 |
| パソコン | 3000円 | ニコニコ本社 | 5個 |
| パソコン | 3000円 | 大百科ニュース | 3個 |
| 洗濯機 | 1500円 | 大百科ニュース | 2個 |
| 冷蔵庫 | 2000円 | ドワンゴ | 2個 |
次に、項目と関連する値の要素を抜き出す。
ここでは「商品名」と「値段」が関連しているためこれを個別に抜き出し、「商品」テーブルに。
元のテーブルを「取引」テーブルとする。
その際に「商品」テーブルで一意な番号として商品番号を付与する。
「商品」テーブル
| 商品番号 | 商品名 | 値段 |
| 0001 | テレビ | 1000円 |
| 0002 | パソコン | 3000円 |
| 0003 | 洗濯機 | 1500円 |
| 0004 | 冷蔵庫 | 2000円 |
「取引」テーブル
| 商品番号 | 売先 | 売却個数 |
| 0001 | ニコニコ本社 | 10個 |
| 0002 | ニコニコ本社 | 5個 |
| 0002 | 大百科ニュース | 3個 |
| 0003 | 大百科ニュース | 2個 |
| 0004 | ドワンゴ | 2個 |
「取引」テーブルではまだ重複性が残っているため、これを解消する。
売先の情報を「売先」テーブルとして取り出すことにより解決できるため実行する。
なお、「商品」テーブルには変化がないためここでは割愛する。
「売先」テーブル
| 売先番号 | 売先名 |
| 0001 | ニコニコ本社 |
| 0002 | 大百科ニュース |
| 0003 | ドワンゴ |
「取引」テーブル
| 商品番号 | 売先番号 | 売却個数 |
| 0001 | 0001 | 10庫 |
| 0002 | 0001 | 5個 |
| 0002 | 0002 | 3個 |
| 0003 | 0002 | 2個 |
| 0004 | 0003 | 2個 |
第3正規形まで整えることによりデータの関係性や繰り返し要素の排除が行えるため、考え方としては中々に便利である。
各テーブル間の関係性は下のとおりである。
Unicodeでは、文字の合成という概念があり、複数の文字を1つの文字として扱う手段がある。また、すでに合成された文字の一部については、それ独自で文字コードを持っている。また、一部の文字は互換性のための文字の形の変化であり、いざとなればフォントやリッチテキストで代用可能である。ここでいくつか問題が発生する。
それらを解決するのが正規化である。正規化には以下の3つの概念を覚えておく必要がある。
そのうえで、以下の4つの正規化形式が定義されている。
例を挙げる。
| 元の文字 | 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である。並び替えの例がないが、要するに複数のダイアクリティカルマークがある場合、所定の順序に並び替えないといけないという規則があるためである。
掲示板
1 ななしのよっしん
2018/01/27(土) 08:47:16 ID: vE7pSQuDtj
ニコニコ大百科の記事名は正規化されるのでニコ百編集者をたびたび悩ませる
2 ななしのよっしん
2022/06/13(月) 04:46:48 ID: 9wOq+5mfId
macサイドがファイル名の文字を分解する方向で正規化する一方で、winやlinuxは合成した文字を扱うのが慣習になってるせいで、ファイルのやりとりでトラブルが起きる
3 ななしのよっしん
2024/01/25(木) 09:23:56 ID: 6GT1vb3GuL
ユニコードコンソーシアム公式の文書と変換デモ
https://
https://
急上昇ワード改
最終更新:2025/12/16(火) 12:00
最終更新:2025/12/16(火) 12:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。