
數(shù)據(jù)模型的探討與分析
在工作中,關(guān)于概念模型、邏輯模型和物理模型三個(gè)數(shù)據(jù)模型的探討中,發(fā)現(xiàn)大家都有自己的見解,但是卻沒有一個(gè)人能真正的說清楚這三個(gè)模型的涵義與差異。
雖說由于這三個(gè)模型在軟件開發(fā)的過程中,由于其功能與作用的差異,結(jié)合項(xiàng)目規(guī)模等實(shí)際情況,不一定會(huì)全部使用以節(jié)省項(xiàng)目時(shí)間(有時(shí)候直接設(shè)計(jì)物理模型),但我認(rèn)為不應(yīng)該被冠以“大家對這個(gè)概念的理解不同”不同之名而歪曲數(shù)據(jù)模型的定義。事實(shí)上,這三個(gè)模型的概念是清晰的、標(biāo)準(zhǔn)化的。
1.2約定
本文中討論的概念模型、邏輯模型和物理模型,主要是針對數(shù)據(jù)模型而言,也就是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型,而不是系統(tǒng)分析與設(shè)計(jì)中泛義的概念模型、邏輯模型和物理模型。
2數(shù)據(jù)模型的定義與分析
2.1概念模型
2.1.1定義
概念模型,是面向數(shù)據(jù)庫用戶的真實(shí)世界的模型,主要用來描述真實(shí)世界中的概念化結(jié)構(gòu),它使數(shù)據(jù)庫的設(shè)計(jì)人員在設(shè)計(jì)的初始階段,擺脫計(jì)算機(jī)系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)(Database Management System,簡稱DBMS)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在DBMS中實(shí)現(xiàn)?!俣劝倏?
概念數(shù)據(jù)模型是最終用戶對數(shù)據(jù)存儲(chǔ)的看法,反映了最終用戶綜合性的信息需求,它以數(shù)據(jù)類的方式描述企業(yè)級的數(shù)據(jù)需求,數(shù)據(jù)類代表了在業(yè)務(wù)環(huán)境中自然聚集成的幾個(gè)主要類別數(shù)據(jù)?!狫erome's BI BLOG
我簡單化歸納一下:概念模型,就是利用自然語言對真實(shí)世界的業(yè)務(wù)數(shù)據(jù)的抽象化描述,是面向終端用戶的數(shù)據(jù)架構(gòu)。
2.1.2作用
概念數(shù)據(jù)模型的目標(biāo)是統(tǒng)一業(yè)務(wù)概念,作為業(yè)務(wù)人員和技術(shù)人員之間溝通的橋梁,確定不同實(shí)體之間的最高層次的關(guān)系。
2.1.3實(shí)例分析
下面舉兩個(gè)例子來說。
例一:
先進(jìn)行一番業(yè)務(wù)描述:我們的項(xiàng)目計(jì)劃,一般包括年計(jì)劃和月計(jì)劃,年計(jì)劃可分解為月計(jì)劃。
我們來理解一下這句業(yè)務(wù)上的描述,可以把它分解為兩部分:“計(jì)劃包括年計(jì)劃和月計(jì)劃”和“年計(jì)劃可分解為月計(jì)劃”。我們從業(yè)務(wù)層面上,可以抽象出兩個(gè)數(shù)據(jù)對象:年計(jì)劃和月計(jì)劃。
再用概念模型E-R圖表示如下:
概念數(shù)據(jù)模型一:
概念數(shù)據(jù)模型二:
概念數(shù)據(jù)模型一是不完整的概念模型,概念數(shù)據(jù)模型二就是完整的概念模型。
原因:從概念數(shù)據(jù)模型一里面無法判斷其中有多少隱藏的信息,當(dāng)然你可以在另一個(gè)地方描述存在年計(jì)劃或月計(jì)劃這種業(yè)務(wù)情景,但是在這里你沒有描述出來,所以至少在這里它是不完整的?我想問:此時(shí)不說,更待何時(shí)?
例二:
對于概念模型有一種典型的情況。例如,下面是一組關(guān)于財(cái)務(wù)審計(jì)系統(tǒng)中的概念數(shù)據(jù)模型:
姑且勿論這個(gè)概念模型是否正確,至少它是粒度很粗很不完整的。
對于“財(cái)務(wù)數(shù)據(jù)”來說,它并不能做為一個(gè)實(shí)體,而是其中包含了多個(gè)實(shí)體(包括賬套,憑證,科目等相關(guān)實(shí)體),把它們(財(cái)務(wù)數(shù)據(jù)、審計(jì)數(shù)據(jù)與結(jié)果數(shù)據(jù))定義為數(shù)據(jù)域(財(cái)務(wù)數(shù)據(jù)域、審計(jì)數(shù)據(jù)域與結(jié)果數(shù)據(jù)域)也許更加準(zhǔn)確,而不是把它定義為一個(gè)數(shù)據(jù)(實(shí)體)。
“財(cái)務(wù)數(shù)據(jù)”域完整的概念模型,應(yīng)該如下圖:
(這里我假設(shè)這個(gè)概念模型里的實(shí)體是完整的,實(shí)際的財(cái)務(wù)系統(tǒng)當(dāng)然不止這三個(gè)實(shí)體。)
這里也許有個(gè)疑問:這沒問題啊,先系統(tǒng)性,再結(jié)構(gòu)化嘛。
在此,我也真的很糾結(jié),想想還是先不對這一句話解釋太多,我們先進(jìn)入概念模型的設(shè)計(jì)原則的討論。完了之后,希望大家能找到“先系統(tǒng)性,再結(jié)構(gòu)化”這句話的真諦。
2.1.4設(shè)計(jì)原則
我們先來引用一下數(shù)據(jù)庫設(shè)計(jì)范式里面第三范式的描述:第三范式(3NF)要求一個(gè)數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。
在系統(tǒng)分析中對于數(shù)據(jù)架構(gòu)的分析,一般原則是以數(shù)據(jù)實(shí)體為基本元素,即每個(gè)實(shí)體不可再分解為止。這也正符合數(shù)據(jù)庫設(shè)計(jì)三范式里面第三范式的定義。
如果在分析階段數(shù)據(jù)對象沒有細(xì)化到最小粒度的數(shù)據(jù)實(shí)體,那么相當(dāng)于把系統(tǒng)分析的工作留給了下一階段的設(shè)計(jì)人員,從某種角度上來講,這是不符合系統(tǒng)分析與設(shè)計(jì)的原則的。因?yàn)橄到y(tǒng)設(shè)計(jì)人員的工作是根據(jù)分析結(jié)果進(jìn)行設(shè)計(jì),而不是還要進(jìn)行系統(tǒng)分析。
一:分析階段要清楚問題的所有內(nèi)容,即系統(tǒng)做什么。也就是:What to do.
二:設(shè)計(jì)階段的設(shè)計(jì)工作是根據(jù)系統(tǒng)分析的結(jié)果而進(jìn)行的,不完整的系統(tǒng)分析結(jié)果無法得到一個(gè)完整的系統(tǒng)設(shè)計(jì)結(jié)果。I don't know what to do, I don't know how to do.
對于結(jié)構(gòu)化的分析我們一般的原則是:
一、使用一個(gè)總體結(jié)構(gòu)圖來描述各個(gè)數(shù)據(jù)域之間的關(guān)系,然后對數(shù)據(jù)域里面的所有數(shù)據(jù)實(shí)體進(jìn)行結(jié)構(gòu)化的分析與設(shè)計(jì)。
二、對于同一個(gè)數(shù)據(jù)域的結(jié)構(gòu)化層次最多不超過三層結(jié)構(gòu),最好不超過兩層;對于不同數(shù)據(jù)域由于系統(tǒng)規(guī)模較大,如果在同一個(gè)篇幅里面無法完全描述出來,則可以切片分章節(jié)對不同的數(shù)據(jù)域進(jìn)行結(jié)構(gòu)化的描述。
2.1.5小結(jié)
概念模型設(shè)計(jì)階段,主要處于系統(tǒng)分析的階段,屬性可以不完全描述,但也可以描述一些主要的屬性。如果你在E-R圖上不給出屬性,可以選擇一個(gè)專門的表格來描述。另一方面,同一個(gè)實(shí)體的詳細(xì)信息,在一個(gè)地方描述就好了,不要每一個(gè)涉及該實(shí)體的地方都描述一番。因?yàn)槿绻麑?shí)體有變化的時(shí)候,我想有些實(shí)體會(huì)在幾百上千個(gè)點(diǎn)上,你也不會(huì)每一個(gè)地方都去維護(hù)一次。
下面引用Jerome's BI BLOG里面的一句,這一句話很重要,也是理解概念模型與邏輯模型之間的區(qū)別的關(guān)鍵。
概念數(shù)據(jù)模型的內(nèi)容包括重要的實(shí)體及實(shí)體之間的關(guān)系。在概念數(shù)據(jù)模型中不包括實(shí)體的屬性,也不用定義實(shí)體的主鍵。這是概念數(shù)據(jù)模型和邏輯數(shù)據(jù)模型的主要區(qū)別?!狫erome's BI BLOG
2.2邏輯模型
2.2.1定義
邏輯模型,是用戶從數(shù)據(jù)庫所看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型(Network Data Model)、層次數(shù)據(jù)模型(Hierarchical Data Model)等等。此模型既要面向用戶,又要面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實(shí)現(xiàn)。——百度百科
2.2.2作用
邏輯模型是概念模型從真實(shí)世界向計(jì)算機(jī)世界的轉(zhuǎn)換,加入了系統(tǒng)設(shè)計(jì)的相關(guān)內(nèi)容。
邏輯數(shù)據(jù)建模不僅會(huì)影響數(shù)據(jù)庫設(shè)計(jì)的方向,還間接影響最終數(shù)據(jù)庫的性能和管理。如果在實(shí)現(xiàn)邏輯數(shù)據(jù)模型時(shí)投入得足夠多,那么在物理數(shù)據(jù)模型設(shè)計(jì)時(shí)就可以有許多可供選擇的方法。
2.2.3實(shí)例分析
例如:接著上面“計(jì)劃表”的設(shè)計(jì),“計(jì)劃表”的邏輯結(jié)構(gòu),如下圖所示。
其中:
1.計(jì)劃標(biāo)識:這是由于系統(tǒng)設(shè)計(jì)的需要而加進(jìn)來的,與業(yè)務(wù)無關(guān)的屬性。
2.計(jì)劃類型:0:年計(jì)劃;1:月計(jì)劃;2:季度計(jì)劃。(這里使用整型表示,當(dāng)然可以是字符、字符串或其他自定義類型,這完全是設(shè)計(jì)上的事,一般不要在系統(tǒng)分析階段啰嗦這些,客戶不關(guān)心的事兒。)
雖然計(jì)劃在業(yè)務(wù)概念上來講,存在年計(jì)劃、月計(jì)劃,甚至于季度計(jì)劃,但是在計(jì)算機(jī)世界中,計(jì)劃的類型除了在概念上不一樣之外,其他屬性都是一樣的,那么邏輯模型設(shè)計(jì)的時(shí)候可以把計(jì)劃數(shù)據(jù)定義為一個(gè)實(shí)體,而使用其中的一個(gè)字段來標(biāo)識某一份計(jì)劃是年計(jì)劃、月計(jì)劃,還是季度計(jì)劃。
2.2.4設(shè)計(jì)原則
邏輯數(shù)據(jù)模型反映的是系統(tǒng)分析設(shè)計(jì)人員對數(shù)據(jù)存儲(chǔ)的觀點(diǎn),是對概念數(shù)據(jù)模型進(jìn)一步的分解和細(xì)化。邏輯數(shù)據(jù)模型是根據(jù)業(yè)務(wù)規(guī)則確定的,關(guān)于業(yè)務(wù)對象、業(yè)務(wù)對象的數(shù)據(jù)項(xiàng)及業(yè)務(wù)對象之間關(guān)系的基本藍(lán)圖。
邏輯數(shù)據(jù)模型的內(nèi)容包括所有的實(shí)體和關(guān)系,確定每個(gè)實(shí)體的屬性,定義每個(gè)實(shí)體的主鍵,指定實(shí)體的外鍵,需要進(jìn)行范式化處理。
例如,在“計(jì)劃表”邏輯模型中可能加入了由于系統(tǒng)設(shè)計(jì)需要的一些字段(屬性),這些字段可能是在業(yè)務(wù)概念上不存在或不需要的。
2.2.5小結(jié)
邏輯數(shù)據(jù)模型的目標(biāo)是盡可能詳細(xì)的描述數(shù)據(jù),但并不考慮數(shù)據(jù)在物理上如何來實(shí)現(xiàn)。——這一句話很重要,也是理解邏輯模型與物理模型之間區(qū)別性的關(guān)鍵。
2.3物理模型
2.3.1定義
物理模型,是面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實(shí)現(xiàn)時(shí)都有起對應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨(dú)立性與可移植性,大部分物理數(shù)據(jù)模型的實(shí)現(xiàn)工作由系統(tǒng)自動(dòng)完成,而設(shè)計(jì)者只設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。 ——百度百科
2.3.2作用
物理數(shù)據(jù)模型的目標(biāo)是指定如何用具體的數(shù)據(jù)庫模式來實(shí)現(xiàn)邏輯數(shù)據(jù)模型,以及真正的保存數(shù)據(jù)。
2.3.3實(shí)例分析
例如:對于計(jì)劃表,基于SQL Server數(shù)據(jù)庫管理系統(tǒng)為存儲(chǔ)介質(zhì)的物理模型結(jié)構(gòu)。如下圖所示:
字段對照表:
數(shù)據(jù)表名:Plan(計(jì)劃表)
當(dāng)基于Oracle數(shù)據(jù)庫模式的時(shí)候,這個(gè)物理模型則是不一樣的。
例如:字符串,在Oracle上為varchar2,在Sql Server上為varchar等。
2.3.4設(shè)計(jì)原則
物理數(shù)據(jù)模型是在邏輯數(shù)據(jù)模型的基礎(chǔ)上,考慮各種具體的技術(shù)實(shí)現(xiàn)因素,進(jìn)行數(shù)據(jù)庫體系結(jié)構(gòu)設(shè)計(jì),真正實(shí)現(xiàn)數(shù)據(jù)在數(shù)據(jù)庫中的存儲(chǔ)。
物理數(shù)據(jù)模型的內(nèi)容包括確定所有的表和列,定義外鍵用于確定表之間的關(guān)系,基于用戶的需求可能進(jìn)行范式化等內(nèi)容。在物理實(shí)現(xiàn)上的考慮,可能會(huì)導(dǎo)致物理數(shù)據(jù)模型和邏輯數(shù)據(jù)模型有較大的不同。
2.3.5小結(jié)
物理模型跟邏輯模型的區(qū)別就是,邏輯模型并不指出特定的數(shù)據(jù)存儲(chǔ),僅限于系統(tǒng)邏輯上的描述。物理模型是邏輯模型在具體存儲(chǔ)介質(zhì)上的表現(xiàn),直接與具體的數(shù)據(jù)庫管理系統(tǒng)或存儲(chǔ)介質(zhì)相關(guān)的數(shù)據(jù)模型。例如:Oracle、SQL Server、XML File或文件文件等。
物理模型給出了在數(shù)據(jù)庫系統(tǒng)的字段名稱,與具體數(shù)據(jù)庫管理系統(tǒng)相關(guān)的數(shù)據(jù)類型的定義。而邏輯模型與具體的數(shù)據(jù)庫管理系統(tǒng)或存儲(chǔ)介質(zhì)無關(guān),僅為使用計(jì)算機(jī)系統(tǒng)概念中的一種邏輯結(jié)構(gòu)。
2.4總結(jié)
概念模型是對真實(shí)世界的一種概念結(jié)構(gòu)的描述;
邏輯模型是計(jì)算機(jī)系統(tǒng)上一種邏輯結(jié)構(gòu)的描述;
物理模型則是與具體的計(jì)算機(jī)物理介質(zhì)直接關(guān)聯(lián)的一種結(jié)構(gòu)化的表達(dá)。
總的來說,我的理解是:概念模型、邏輯模型和物理模型是系統(tǒng)分析與設(shè)計(jì)中同一類型工具中三個(gè)不同層面的工具,一般應(yīng)用于對同一個(gè)對象面向不同層面的用戶而做不同的描述。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03