2014-10-03 81 views
0

在ER模型中,域是屬性(即實體的屬性或特徵)的一組值。值集符合域的通用定義(例如,類型,格式,語法,含義)。 我的問題是:是否像數據庫中的檢查約束域?ER模型域在RDBMS中

回答

0

域以及定義一組允許的值也定義了可以對這些值執行的操作。例如,你可以定義邏輯域

  • EMPLOYEE_NUMBERS = {N ∈Ž = N < = 99999}
  • NUMBER_OF_DAYS = {N ∈Ž = 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)CHECK(NO_OF_DAYS> = 0 AND NO_OF_DAYS < = 99999)

雖然這限制了可以存儲在這些列以同樣的方式它不會阻止你所有的EMP_NO小號相加的數值,雖然得到的答案是沒有意義的。然而,總計NO_OF_DAYS可能會產生合法結果。