論理データ・モデルのキーのマイグレーション

論理データ・モデルの主キーまたは関係のプロパティーを修正すると、それに関連したすべての外部キーのプロパティーも修正されます。
以下の表は、キー・マイグレーションのアクションがとられる原因になる、オブジェクトに対するアクションを説明しています。 キーのマイグレーションのアクションがとられると、表示図またはデータ・プロジェクト・エクスプローラー内のデータ・オブジェクトを表わすアイコンが、それに応じて変更されます。
ユーザー処置 キー・マイグレーションの結果
主キーに対する属性の追加

主キーが関係の一角をなす場合、属性は、外部キー属性として子エンティティーにマイグレーションされます。

その関係が依存型である場合、マイグレーション後の属性は、子エンティティーの主キー属性の一部としても組み入れられます。

属性がすでに外部キーの一部であり、外部キーの残りの属性はすでに主キーの一部になっていて、関係が非依存型である場合、関係は依存型に変更されます。

主キーからの属性の除去

主キーが関係の一角をなす場合、外部キーとして子エンティティーにマイグレーションされた属性は、外部キー属性リストから削除されます。

その関係が依存型である場合、マイグレーション後の属性も、子エンティティーの主キー属性リストから削除されます。

属性がすでに外部キーの一部である場合に、関係が依存型であると、関係は非依存型に変更されます。

主キーの属性の再配列 主キーが関係の一角をなす場合、外部キー内のマイグレーション後の属性は、主キーに合わせて再配列されます。
主キーの削除 主キーが関係の一角をなす場合、それに関連した関係と空の外部キーが保管されます。
属性のデータ・タイプの修正 属性が主キーの一角をなし、主キーが関係の一角をなす場合、子エンティティーのマイグレーション後の属性のデータ・タイプも変更されます。
属性のデータ・タイプの長さ、精度、または位取りの修正 属性が主キーの一角をなし、主キーが関係の一角をなす場合、子エンティティー上のマイグレーション後の属性のデータ・タイプの長さ、精度、または位取りも変更されます。
属性の削除

属性が主キーまたはその代替キーの一角をなし、しかも主キーまたは代替キーが関係に属する場合、子エンティティー上のマイグレーション後の属性は、子の外部キー属性リストから削除されます。

その関係が依存型である場合、子エンティティー上のマイグレーション後の属性も、子の主キー属性リストから削除されます。

代替キーに対する属性の追加

代替キーが関係の一角をなす場合、属性は、外部キー属性として子エンティティーにマイグレーションされます。

その関係が依存型である場合、マイグレーション後の属性も、子エンティティーの代替キー属性の一部として組み入れられます。

属性がすでに外部キーの一部であり、外部キーの残りの属性はすでに代替キーの一部になっていて、関係が非依存型である場合、関係は依存型に変更されます。

代替キーの属性の再配列 キー・マイグレーションは発生しません。
代替キーからの属性の除去

主キーが関係の一角をなす場合、子エンティティー上のマイグレーション後の属性は、子の外部キー属性リストから削除されます。

その関係が依存型である場合、子エンティティー上のマイグレーション後の属性は、子エンティティーの主キー属性リストから削除されます。

代替キーの削除 代替キーが関係の一角をなす場合、それに関連した関係と空の外部キーが保管されます。
外部キーに対する属性の追加 キー・マイグレーションは発生しません。
外部キーの属性の再配列 キー・マイグレーションは発生しません。
外部キーからの属性の除去 属性が主キーまたはその代替キーの一角をなし、しかも主キーまたは代替キーが関係に属する場合、子エンティティー上のマイグレーション後の属性は、子の外部キー属性リストから削除されます。 それ以外の場合、キー・マイグレーションは発生しません。
外部キーの削除 関連した関係が、子エンティティーから削除されます。
関係の追加

関係が依存型の関係である場合、マイグレーション後の属性は、子エンティティーの外部キーおよび主キーの一部になります。

関係が非依存型の関係である場合、マイグレーション後の属性は、子エンティティーの外部キーの一部になります。

関係が多対多の関係である場合、キーのマイグレーションは発生しません。

依存型の関係の削除 関連した外部キーが、子エンティティーから削除されます。
非依存型の関係の削除 関連した外部キーが、子エンティティーから削除されます。
関係の親エンティティーの削除 マイグレーション後のすべてのキー属性が、子エンティティーの外部キーから削除されます。
関係のタイプの修正

関係を依存型から非依存型に変更すると、子エンティティーの主キーから外部キー属性が削除されます。

関係を非依存型から依存型に変更すると、子エンティティーの主キーに外部キー属性が追加されます。

2 つのエンティティー間の汎化の作成
  1. スーパータイプ・エンティティーの主キー属性が、サブタイプ・エンティティーにマイグレーションされます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが既存の関係で親である場合、キー属性が関係に沿ってマイグレーションされます。
汎化の削除
  1. マイグレーション済みキー属性が、サブタイプ・エンティティーから削除されます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性削除が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性削除が関係に沿ってマイグレーションされます。
スーパータイプ・エンティティーの削除
  1. スーパータイプ・エンティティーを参照するすべての汎化が削除されます。
  2. マイグレーション済みキー属性が、サブタイプ・エンティティーから削除されます。
  3. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性削除が汎化に沿ってマイグレーションされます。
  4. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性削除が関係に沿ってマイグレーションされます。
スーパータイプ主キーの削除
  1. マイグレーション済みキー属性が、サブタイプ・エンティティーから削除されます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性削除が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性削除が関係に沿ってマイグレーションされます。
スーパータイプ・エンティティーの主キー属性の削除
  1. マイグレーション済みキー属性が、サブタイプ・エンティティーから削除されます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性削除が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性削除が関係に沿ってマイグレーションされます。
スーパータイプ・エンティティーへの新しい主キー属性の追加
  1. スーパータイプ・エンティティーの新しいキー属性が、サブタイプ・エンティティーにマイグレーションされます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、新しいキー属性が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、新しいキー属性が関係に沿ってマイグレーションされます。
スーパータイプ・エンティティーの主キー属性の変更
  1. スーパータイプ・エンティティーのキー属性に加えた変更が、サブタイプ・エンティティーの同等の属性にマイグレーションされます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性に加えた変更が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性に加えた変更が関係に沿ってマイグレーションされます。
スーパータイプ・エンティティーの主キー属性の再配列
  1. スーパータイプ・エンティティーの主キー・リストのキー属性に加えた位置変更が、汎化に関連付けられている外部キーの属性リストに含まれるマイグレーション済みキー属性に適用されます。
  2. サブタイプ・エンティティーがスーパータイプとして既存の汎化に関与している場合、前のステップに続いて、キー属性に加えた位置変更が汎化に沿ってマイグレーションされます。
  3. サブタイプ・エンティティーが親として既存の関係に関与している場合、キー属性に加えた位置変更が関係に沿ってマイグレーションされます。

フィードバック