解釋泛化和特化(DBMS)的設計約束。
在資料庫管理系統 (DBMS) 中設計泛化和特化時,我們需要考慮的不同型別如下:
條件定義
屬性定義
使用者定義
不相交定義
重疊約束
完整性約束
讓我們逐一瞭解它們。
條件定義
建立一個數據庫,並在一個屬性(例如出勤率)上設定條件。這種約束定義在單個屬性上,該屬性進一步將實體劃分為兩個子實體集,這些子實體集將提供關於給定屬性的資訊。
示例
以下是條件定義資料庫的示例:
屬性定義
這是指在多個屬性上指定條件。
示例
考慮一個關於分數和出勤率的資料庫。
這種約束定義在給定實體的兩個或多個屬性上,該實體進一步被劃分為子類實體。
此處可以在兩個以上屬性上指定條件。
例如,賬戶型別——儲蓄賬戶和活期賬戶。
對於儲蓄賬戶和活期賬戶,我們可以執行餘額查詢、取款和存款等相同操作,但型別不同。
使用者定義
在這種約束中,決定權留給超類,由超類決定有多少超類例項將參與子類。
在上面的例子中,團隊領導決定哪些團隊根據技能加入。
不相交約束
不相交就是交集,為給定超類指定的例項數只能參與一個子類。
賬戶使用者可以參與儲蓄賬戶和活期賬戶,但兩者不同,因此一次只能參與一個。
它就像一個減法,如下所示:
重疊約束
如果超類的兩個或多個例項參與兩個或多個子類,則稱為重疊約束。
示例
瞭解 Java 和 PHP 的人可以同時參與這兩個團隊。
完整性約束
每個例項都參與一個關係。超類的所有例項都必須參與一個關係或子類。
廣告