ER模型域在RDBMS中

时间:2014-10-03 07:18:11

标签: entity-relationship rdbms

在ER模型中,域是属性的一组值(即,实体的属性或特征)。值集符合域的通用定义(例如,类型,格式,语法,含义)。 我的问题是:域是否像数据库中的检查约束?

1 个答案:

答案 0 :(得分:0)

域以及定义一组允许值,还定义了可以对这些值执行的操作。例如,您可以定义逻辑域

  • EMPLOYEE_NUMBERS = {n∈Z∧0< = n< = 99999}
  • NUMBER_OF_DAYS = {n∈Z∧0< = n< = 99999}

对于 EMPLOYEE_NUMBERS 域,加法和减法的数学运算没有意义,因此没有为域定义。但是,对于 NUMBER_OF_DAYS 域,这些数学运算确实有意义且已定义。

当在物理(SQL)DBMS上实现逻辑域时,除了基本数据类型定义之外,还可以使用检查约束。但是,这仅限制列中允许的值,而不是可以执行的操作。因此,您可以使用检查约束来定义列:

  • EMP_NO INTEGER(5)CHECK(EMP_NO> = 0 AND EMP_NO< = 99999)
  • NO_OF_DAYS INTEGER(5)检查(NO_OF_DAYS> = 0和NO_OF_DAYS< = 99999)

虽然这限制了可以以相同方式存储在这些列中的值,但它不会阻止您对所有 EMP_NO 进行求和,尽管获得的答案没有意义。然而, NO_OF_DAYS 的总和可能会产生合法的结果。