スキーマ・アグリゲーションの例

型:

  • String: 文字列、特にバリデーション〈検査〉しない。
  • MailAddr ⊆ String: バリデーションする。
  • ZipCode ⊆ String: バリデーションする。

旧スキーマ:

(
  givenName : String,
  familyName : String,
  mailAddr : MailAddr, 
  userId: String, 
  geoAddr : String, 
  zipCode: ZipCode, 
)

スキーマ・アグリゲーション=ベースマップ を次のように定義する。

{
  givenName |→ givenName,
  familyName |→ familyName,
  mailAddr |→ accountId,
  userId |→ accountId,
  geoAddr |→ location,
  zipCode |→ location
}

新スキーマ: 前送り+直和構成+新規追加

(
  givenName : String,
  familyName : String,
  birthDate : Date + {⊥},
  accounntId : MailAddr + String,
  location : String + ZipCode
)

データ以降方針:

割愛