正規化 【regularization】 ノーマライズ / normalize / カノニカライズ / canonicalize / ノーマライゼーション / normalization / カノニカライゼーション / canonicalization
概要
正規化(regularization)とは、データなどをある基準や形式に適合するように、一定の手順や規則に従って変形・変換すること。様々な分野で用いられる概念であり、それぞれ目的や方法などが大きく異なる。リレーショナルデータベースの正規化
リレーショナルデータベース(RDBMS)では、データの保守性向上や処理の高速化を図るため、データベース内で同じ情報が複数の箇所に重複して記録されず、個々のテーブルは主キーから直接連想されるデータのみで構成されるよう設計するのが理想とされている。
この基準に基づいてデータ構造を再編する作業や操作のことをデータベースの正規化と呼び、正規化の度合いによって第1正規化から第5正規化、およびボイスコッド正規化などの種類に分類されている。
浮動小数点数の正規化
浮動小数点数を符号部、仮数部、指数部に分けてビット列で表す場合、同じ数を同じ符号化方式で表す場合でも仮数と指数の取り方によって複数の表現が可能となるが、標準となる形式を定めてこれに合わせて表現することを正規化という。
IEEE 754などの標準規格では有効数字の桁数が最大限に確保される表現に正規化するよう定められている。具体的には仮数部のビット列の左端の値が0以外になるように仮数を決め、それに合わせて指数が算出される。
XML文書の正規化
XML文書はテキスト形式を採用しているため、ホワイトスペースの扱いや要素の出現順序などに非常に寛容である。しかし、ソフトウェアにXML文書のデータを渡す場合や、データが改竄されていないことを証明するための署名などを行う場合には、XML文書を一定のルールに従って整形しなおす必要がある。
XMLの正規化は「Canonicalized XML」規格に定められたカノニカライズ(canonicalize)と、「XML Normalization」規格に定められたXML文書のノーマライズ(normalize)、XML規格本体に定められた属性値のノーマライズ(Attribute-Value Normalization)の3種類がある。
カノニカライズは論理的に同等の文書がバイナリデータのレベルで完全に一致するように整形する手順を定めており、XML文書が改竄されていないことを証明するための電子署名を有効に機能させるために必要となる。
XML文書のノーマライズは、ソフトウェアが文書の解釈や変換などを行いやすいように表記法を統一する処理を指す。XMLは名前空間を使用する場合などに意味的に同じ内容を複数の表記で書くことができるが、XML Normalization規格ではこれを一定の基準に基づいて統一された表記にすることを求めている。
属性値のノーマライズは、人間の入力の都合や見やすさなどのために様々な表記が混在する属性値を一定の基準で変換し、ソフトウェアが表記の揺れに影響されないようにする処理である。文字参照表現を参照先の文字自体で置き換えたり、改行文字やタブ文字を空白文字(16進数で20)に置き換えたり、連続する複数の空白を一文字に短縮するといった変換が行われる。