データベース テーブルの正規化は、リレーショナル データベースの正規化とは異なります。この文脈では、テーブルの正規化とは、一致または重複する2つのPERIOD値または派生PERIOD値をCOALESCEすることです。一致または重複する2つの入力PERIOD値または派生PERIOD値に対する正規化操作の結果、2つの入力PERIOD値のリレーショナルUNIONである3番目のPERIOD値が生成されます。
データベース テーブルはいずれも、正規化テーブルとして作成できます。テーブルを正規化するためにユーザーが実行する必要があるのは、テーブル内のPERIOD列を正規化対象の列として指定することだけです。このPERIOD列は、テーブルの正規化列と呼ばれます。正規化されたテーブルには、その正規化列の値が一致または重複する、同じデータ値を持つ行が2つ含まれることはありません。つまり、正規化されたテーブルで、新しい行が挿入されるか既存の行が更新されると、その行は、新しい行と同じ値を持ち、正規化列値が重複または一致する既存のテーブルの行すべてとCOALESCEされます。正規化されたテーブルとして定義されているテーブルでのすべてのDML更新は、そのテーブルにすでに存在する行で新規行を正規化します。
正規化を目的として、行の等価な値を決定するときにデータベースによって無視される必要がある一連のテーブルの列をオプションで指定できます。
例えば、次のCREATE TABLE文では、正規化の対象となるデータ値にdept_id列の値が含まれないNORMALIZEオプションを指定しています。
CREATE TABLE project ( emp_id INTEGER, project_name VARCHAR(20), dept_id INTEGER, duration PERIOD(DATE), NORMALIZE ALL BUT (dept_id) ON duration ON OVERLAPS);
DML文を使用した正規化テーブルの処理および更新の詳細について、 <Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。