データモデルの変更とその影響レベル
データモデルの変更は、データモデルへの影響に応じて次の3つのレベルに分類されます: [Low] (低)、[Medium] (中)、[High] (高)。
データモデルに変更を加えると、それに合わせてデータベーススキーマがアップデートされます。
以下は、データモデルの変更、対応する影響レベル、データベースにおける結果の例です。
アクション |
影響レベル |
結果 |
---|---|---|
新しい必須エレメントを デフォルト値なしで追加 |
高 |
エンティティテーブルがドロップされ、新しいカラムが追加された状態で再作成されます。 |
匿名タイプを追加または削除 |
高 |
匿名タイプを使用しているすべてのエンティティタイプがドロップされ、再作成される場合があります。 |
オプションの単純型エレメントをデフォルト値なしで必須タイプに変更(特定エレメントにnull値が存在する) |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
オプションの複合型エレメントを必須タイプに変更 |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
エレメントのタイプを単純型から別の単純型に変更 |
高 |
N/A |
エレメントの最大出現を1からnに、またはその逆に変更 |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
小数エレメントのtotalDigitsまたはfractionDigitsの値を変更 |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
継承に変更を加える |
高 |
継承ツリーに含まれているすべてのテーブルがドロップされ、再作成されます。 |
外部キー関係のあるエンティティに影響の大きい変更を加える |
高 |
このエンティティとの間に外部キーの関係があるその他すべてのテーブルと共に、エンティティテーブルがドロップされ、再作成されます。 |
複合型エレメント内の必須またはオプションの単純型エレメントを削除 |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
必須またはオプションの複合型エレメントを削除 |
高 |
エンティティテーブルがドロップされ、再作成されます。 |
オプションの単純型エレメントをデフォルト値を使用して必須タイプに変更(特定エレメントにnull値が存在する) |
中 |
エンティティテーブル内のカラムがデフォルト値を使用してアップデートされます。 |
エンティティのすぐ下にある必須またはオプションの単純型エレメントを削除 |
中 |
エンティティテーブル内のカラムが削除されます。 |
必須またはオプションの外部キーエレメントを削除 |
中 |
エンティティテーブル内のカラムが削除されます。 |
エンティティを削除 |
中 |
エンティティテーブルが削除されます。 |
オプションのエレメントの名前を変更 |
中 |
古い名前のカラムが残り、新しいカラムが新しい名前で作成されます。 |
オプションの単純型エレメントを新規に追加 |
低 |
新しいカラムがエンティティテーブルに追加されます。 |
オプションの複合型エレメントを新規に追加 |
低 |
新しいカラムがエンティティテーブルに追加され、複合型に新しいテーブルが作成されます。 |
文字列、ブール値、または数値タイプの新しいエレメントをデフォルト値で追加 |
低 |
新しいカラムがデフォルト値でエンティティテーブルに追加されます。 |
必須のシンプルまたは複合型エレメントをオプションのタイプに変更 |
低 |
エンティティテーブル内のカラム定義が、それに合わせて変更されます。 |
オプションの単純型エレメントを必須タイプに変更(特定エレメントにnull値が存在する) |
低 |
エンティティテーブル内のカラム定義が、それに合わせて変更されます。 |
オプションの複数出現エレメントを必須の複数出現エレメントに、またはその逆に変更 |
低 |
エンティティテーブル内のカラム定義が、それに合わせて変更されます。 |
DB2/Oracleの文字列エレメントの長さを増す 元の長さはデータベースVARCHAR型の最大長以下で、アップデート後の長さは最大長を上回っています。1 |
高 | エンティティテーブルがドロップされて再作成され、エレメントのタイプがデータベース内でVARCHARからCLOBに変換され、それに合わせてカラムが長くなります。 |
MS SQL Server/MySQL/PostgreSQLの文字列エレメントを長くする 元の長さはデータベースVARCHAR型の最大長以下で、アップデート後の長さは最大長を上回っています。1 |
低 | エレメントのタイプがデータベース内でVARCHARからNVARCHAR(MAX)/TEXT/TEXTに変換され、それに合わせてカラムが長くなります。 |
文字列エレメントの長さを増す(上記の2つのケースを除く) | 低 | それに合わせてカラムの長さが増します。 |
文字列エレメントの長さを減らす 元の長さはデータベースVARCHAR型の最大長を超えており、アップデート後の長さは最大長以下になっています。1 |
高 | エンティティテーブルがドロップされて再作成され、エレメントのタイプがデータベース内でVARCHARに変換され、それに合わせてカラムが短くなります。 |
文字列エレメントの長さを減らす 元の長さとアップデート後の長さがどちらも、データベースVARCHAR型の最大長以下です。1 |
高 | エンティティテーブルがドロップされて再作成され、それに合わせてカラムが短くなります。 |
文字列エレメントの長さを減らす(上記の2つのケースを除く) | 低 | それに合わせてカラムの長さが減ります。 |
1 サポートされている各データベースのVARCHAR型の最大長:
データベース | VARCHAR型の最大長(バイト) |
---|---|
H2 | 255 |
DB2 | 255 |
MySQL | 255 |
MS SQL Server | 4000 |
Oracle | 4000 |
PostgreSQL | 255 |