Cardinality在資料模型中的意思

2021-09-22 05:04:46 字數 1234 閱讀 7461

最近在翻譯一本資料庫的教材,碰到cardinality這個詞,這個詞在許多國內的資料庫教材中不常見。查了一下英文資料覺得很有必要翻一下,

內容如下:

基數是寫在關係線兩端 ,表明實體從一邊通過關係可以得到另一邊實體的數量。

(翻譯的太爛。。)

link這是0:0可選的關係,這樣表達的意思就是:乙個person可以占用乙個停車位(parking space),但是沒必要乙個person有乙個停車位,也沒必要乙個停車位必須有乙個人。雖然這個概念很簡單,但是在資料庫中實現卻並不直接。你可能得令乙個實體作為主表,使用觸發器或者程式來限制在另一張表裡關聯的記錄數目。

subtype這是1:0的關係;只有一方有選擇性。意思就是說乙個人可能是乙個程式設計師,那麼乙個程式設計師一定是乙個人。關係中強制方必須作為主表。跟前面一樣,用觸發器和程式來控制資料庫。

physical segment這是1:1的強制型關係。乙個人必須有且僅有乙個dna序列,乙個dna序列也必須對應且僅對應乙個人。

possession這是0:m(0對多)的可選型關係,意思就是乙個人可能有0個**,1個,或多個**;某個**可能沒有主人,但是最多只能屬於乙個人。資料庫裡的實現方式:在phone表裡設定乙個可以為空的外來鍵列,用這個列來關聯person表。

child這是1:m的強制型關係,這是在資料庫裡最常見的一種關係型別,乙個人可能是或者不是乙個會員,但是有可能對應好幾個club的會員(假如member實體表述的是多個club裡的所有會員記錄),毫無疑問,乙個會員必須是乙個人。資料庫裡,會員表必須有乙個強制不為空的外來鍵。實現二實體間的關聯。

這個例子不太好,假設所有人的名字不重複。

characteristic這是0:m的關聯,在m的一端是強制性的。這意思是說,乙個人必須有至少乙個名字,可以有多個名字,乙個名字可能屬於某乙個人(或沒主人)。在資料庫裡,可以再name表裡設定乙個可以為空的外來鍵指向person表,使用觸發器或者程式來強制乙個person必須至少有乙個名字。

paradox這是1:m實體兩邊都是強制型的關係。

association這是m:m(多對多)的可選型關係。概念上是這樣的:乙個人可以選擇為0個,1個或多個老闆工作,乙個老闆可以有0個,1個或多個員工。一般對於m:m這種多對多關係在資料庫裡面拆分成兩個0:m的關係。中間實體表名可以叫做employee,因為它是用來將person實體聯絡到老闆實體的。

在資料視窗中檢索資料

在 資料視窗中檢索資料 我們往往需要資料視窗僅顯示我們需要的資料。在 資料視窗中檢索資料的方法很多,常用的是設定setfilter和使用sql語句來實現。1 使用setfilter進行資料過濾 首先需要構造條件語句。如資料視窗中有一列名為xyh,我們需要檢索xyh等於 葉秋楓 的資料。那麼可寫語句如...

Apache Cassandra 資料儲存模型

我們在 apache cassandra 簡介 文章中介紹了 cassandra 的資料模型類似於 google 的 bigtable,對應的開源實現為 apache hbase,而且我們在 hbase基本知識介紹及典型案例分析 文章中簡單介紹了 apache hbase 的資料模型。按照這個思路,...

在資料層實現分頁技術

sqlserver2005 有乙個row number函式,他針對select返回的每一行,從1開始編號,賦予其連續的編號。因為在查詢上應用了乙個排序的標準後,只有通過編號才能夠保證其順序是一致的。select row number over order by 列名 as row,列名 from 表...