說起數(shù)據(jù)模型大部分人就會想到數(shù)據(jù)庫的表結(jié)構(gòu),就是用一張圖把數(shù)據(jù)庫里表的結(jié)構(gòu)給畫一遍。
數(shù)據(jù)模型的作用之一確實(shí)是這樣,準(zhǔn)確來說是用圖的方式描述數(shù)據(jù)庫里的表結(jié)構(gòu)。但是,數(shù)據(jù)模型的用途不應(yīng)該被局限于這個(gè)范圍之內(nèi),根據(jù)設(shè)計(jì)的流程、產(chǎn)出模型目的的不同,作用不一樣,叫法也不一樣。
舉個(gè)栗子!
就拿地圖來說,假設(shè)我想知道地球上有多少個(gè)國家、位置都在什么地方。
我發(fā)現(xiàn)地球這么大,自己一個(gè)人管的話根本管不過來,所以決定找?guī)讉€(gè)小弟幫我管,就按照一個(gè)人一個(gè)一個(gè)基準(zhǔn)來安排。
為了讓小弟們知道各自管理的國家里都有啥,還需要給他們各自一張國家地圖,而他們根本不需要知道別人管的國家里都有什么。
所以,這時(shí)候我的需求是,其他國家都不關(guān)注了,每人給他們搞一張國家地圖。
這樣不斷劃分和細(xì)化,最后就有了各個(gè)級別不同的地圖,隨時(shí)想知道啥都能找到。
最終的級別肯定是最最詳細(xì)的,我想從望京到三里屯怎么走都能告訴我,甚至是給我好幾條路,各種交通工具要怎么走耗費(fèi)多長時(shí)間我都可以提前知道個(gè)大概,無比方便啊~
這些圖跟數(shù)據(jù)模型一個(gè)套路,林子大了不好管,有這么個(gè)圖,我心里更清楚我有啥。
再按這個(gè)套路看看企業(yè)數(shù)據(jù)的模型管理的需求。
概括模型(主題域模型)
從企業(yè)級的角度告訴管理者企業(yè)都有哪些數(shù)據(jù),這樣的數(shù)據(jù)大部分都是按主題劃分,主題跟業(yè)務(wù)是緊密關(guān)聯(lián)的,所以,不同行業(yè)之間的主題域會有些許的不同。
這就好比世界地圖,不需要過于詳細(xì)的信息,只需要知道地球上(企業(yè)里)有哪些國家(主題域)就行。
比如說,通信行業(yè)中有TFM的SID(Shared Information Data Model),金融行業(yè)有Teradata的FS-LDM等。
概念模型
概念模型是根據(jù)主題域模型,將某一個(gè)主題域進(jìn)行細(xì)化的模型圖,比如說客戶主題域里包含了客戶的基本信息、客戶的詳細(xì)信息(聯(lián)系方式、興趣愛好等)和與客戶相關(guān)的一些關(guān)系信息等。
中國是一個(gè)國家,就相當(dāng)于一個(gè)主題域,這個(gè)國家里有哪些省,就相當(dāng)于詳細(xì)描述主題域里有哪些數(shù)據(jù)。道理是一樣的,只是針對某一個(gè)特定主題的詳細(xì)描述。
邏輯模型
這樣看來邏輯模型是不是就是某個(gè)省的地圖了呢?這樣比喻雖然沒啥問題,但是,這樣的比喻有點(diǎn)不大恰當(dāng)。數(shù)據(jù)管理和地圖的管理還是有點(diǎn)不同。
不過邏輯模型是對某個(gè)主題域的概念模型進(jìn)行細(xì)化的產(chǎn)物這一點(diǎn)是沒錯的。
只是,數(shù)據(jù)模型最詳細(xì)的一層就定義為邏輯模型了,具體定義了每一個(gè)實(shí)體、實(shí)體中的每一個(gè)屬性、實(shí)體和實(shí)體之間的詳細(xì)關(guān)系等。
如果要拿地圖打比方的話,就相當(dāng)于不光劃分了每個(gè)省,每個(gè)省內(nèi)的每一個(gè)城市,城市中的每一條街道和城市之間的聯(lián)系都定義在了這一級別。
有了這么一張圖的話,任何一個(gè)地址的信息都能被找到。也就是說,邏輯模型當(dāng)中能夠方便地找到每一個(gè)屬性的具體位置和定義。
物理模型
物理模型的目的是根據(jù)邏輯模型考慮具體某種數(shù)據(jù)庫的具體配置方式,展現(xiàn)物理層面的設(shè)計(jì)。比如說,具體的字段數(shù)據(jù)類型、長度,對分區(qū)、索引和系統(tǒng)字段設(shè)計(jì)等,都屬于物理模型設(shè)計(jì)的范圍之內(nèi)。
所以,同一個(gè)邏輯模型,根據(jù)數(shù)據(jù)庫管理系統(tǒng)的不同可以有多個(gè)不同數(shù)據(jù)庫的物理模型。
最終根據(jù)設(shè)計(jì)好的物理模型,就可以根據(jù)模型生成SQL腳本或者直接在庫中創(chuàng)建數(shù)據(jù)庫對象。
總結(jié)
概括模型(主題域模型)是提供一個(gè)企業(yè)級數(shù)據(jù)管理視角的模型。
概念模型是對某個(gè)主題域中數(shù)據(jù)描述的框架,提供了主題域中數(shù)據(jù)的管理視角,同時(shí)也是設(shè)計(jì)某個(gè)主題域邏輯模型的初始流程,搭好某個(gè)主題域的框架之后,再詳細(xì)化成邏輯模型。
邏輯模型和物理模型是同一級別的,從特征來看,邏輯模型以中文展示實(shí)體和屬性,并且融入了具體的業(yè)務(wù)邏輯,是最細(xì)粒度的模型設(shè)計(jì)產(chǎn)物。也可以作為業(yè)務(wù)和技術(shù)交流的工具。
邏輯模型設(shè)計(jì)的時(shí)候往往是跟物理模型是一一對應(yīng)的,也就是說邏輯模型中的一個(gè)實(shí)體對應(yīng)物理模型中的一個(gè)表,邏輯模型中的一個(gè)屬性也對應(yīng)了物理模型中的一個(gè)字段。
物理模型除了詳細(xì)定義了每一個(gè)字段的具體數(shù)據(jù)類型和長度之外,還會在設(shè)計(jì)階段融入分區(qū)、索引、約束關(guān)系等的設(shè)計(jì)要素,保證邏輯模型中設(shè)計(jì)的結(jié)果能夠真正落地到某個(gè)具體的數(shù)據(jù)庫當(dāng)中。
而根據(jù)物理模型創(chuàng)建的數(shù)據(jù)庫對象來說,它們和物理模型也是一一對應(yīng)的,物理模型當(dāng)中設(shè)計(jì)的每一張表和每一個(gè)索引,在實(shí)際數(shù)據(jù)庫中都有且僅有一個(gè)與其相對應(yīng)的對象。