實體是數(shù)據(jù)模型的最為核心的要素。實體是基礎(chǔ),一切所有的都構(gòu)筑于實體之上。市面上常見的E-R模型中的E就指的是實體。
實體定義
實體——Entity,是業(yè)務(wù)中非常重要的事務(wù)。每一個實體都是由一個名詞或者名詞詞組定義的。一般符合6大種類:Who,What,When,Where,Why,How。實體可以是抽象的也可以是具體的。比如,人,書,課程都可以是實體。實體是一個非常易于理解的概念。如果對關(guān)系型數(shù)據(jù)庫Mysql比較熟悉的可以這樣理解,一個規(guī)范的數(shù)據(jù)表就是一個實體。
在數(shù)據(jù)建模的過程中,一般使用矩形表示實體。
實體實例
實體實例就是實體的具體呈現(xiàn)或者是實體的值。比如人是實體,那么Bob、James都是實體實例。
實體集
同屬于一個實體的實體實例組成的集合。
實體在三種數(shù)據(jù)模型上的表現(xiàn)
(1)在概念數(shù)據(jù)模型層
在創(chuàng)建概念數(shù)據(jù)模型的時候,實體對應(yīng)的就是概念。
(2)在邏輯數(shù)據(jù)模型層
在創(chuàng)建邏輯數(shù)據(jù)模型層的時候,實體就是最完善的了。包含了具體屬性、鍵和關(guān)系。
(3)在物理數(shù)據(jù)模型層
在物理數(shù)據(jù)模型層,實體對應(yīng)于某種具體的技術(shù)對象。比如,在RDBMS數(shù)據(jù)庫,實體就是對應(yīng)的數(shù)據(jù)表或者數(shù)據(jù)視圖;在NOSQL數(shù)據(jù)庫,如在MongoDB對應(yīng)的就是集合(Collections);在Elasticsearch上對應(yīng)的就是索引(Indexes);在Redis中,對應(yīng)的就i是Key-Values。
強實體與弱實體
可以單獨存在,用來表示相對獨立的人、事或者地點的成為強實體。弱實體必須依賴至少一個其他的實體才可以存在,如果不引用其他實體中的實例,就無法檢索到弱實體的實例。即弱實體是依賴強實體的。理解了二者的關(guān)系之后,在實際的建模過程中,確定實體間的關(guān)系和依賴的時候,必須首先創(chuàng)建強實體。