熱線電話:13121318867

登錄
首頁精彩閱讀數據模型的探討與分析
數據模型的探討與分析
2017-11-09
收藏

數據模型的探討與分析

在工作中,關于概念模型、邏輯模型和物理模型三個數據模型的探討中,發現大家都有自己的見解,但是卻沒有一個人能真正的說清楚這三個模型的涵義與差異。

雖說由于這三個模型在軟件開發的過程中,由于其功能與作用的差異,結合項目規模等實際情況,不一定會全部使用以節省項目時間(有時候直接設計物理模型),但我認為不應該被冠以“大家對這個概念的理解不同”不同之名而歪曲數據模型的定義。事實上,這三個模型的概念是清晰的、標準化的。

1.2約定

本文中討論的概念模型、邏輯模型和物理模型,主要是針對數據模型而言,也就是概念數據模型、邏輯數據模型和物理數據模型,而不是系統分析與設計中泛義的概念模型、邏輯模型和物理模型。

2數據模型的定義與分析

2.1概念模型

2.1.1定義

概念模型,是面向數據庫用戶的真實世界的模型,主要用來描述真實世界中的概念化結構,它使數據庫的設計人員在設計的初始階段,擺脫計算機系統及DBMS的具體技術問題,集中精力分析數據以及數據之間的聯系等,與具體的數據管理系統(Database Management System,簡稱DBMS)無關。概念數據模型必須換成邏輯數據模型,才能在DBMS中實現?!俣劝倏?

概念數據模型是最終用戶對數據存儲的看法,反映了最終用戶綜合性的信息需求,它以數據類的方式描述企業級的數據需求,數據類代表了在業務環境中自然聚集成的幾個主要類別數據?!狫erome's BI BLOG

我簡單化歸納一下:概念模型,就是利用自然語言對真實世界的業務數據的抽象化描述,是面向終端用戶的數據架構。

2.1.2作用

概念數據模型的目標是統一業務概念,作為業務人員和技術人員之間溝通的橋梁,確定不同實體之間的最高層次的關系。

2.1.3實例分析

下面舉兩個例子來說。

例一:

先進行一番業務描述:我們的項目計劃,一般包括年計劃和月計劃,年計劃可分解為月計劃。

我們來理解一下這句業務上的描述,可以把它分解為兩部分:“計劃包括年計劃和月計劃”和“年計劃可分解為月計劃”。我們從業務層面上,可以抽象出兩個數據對象:年計劃和月計劃。

再用概念模型E-R圖表示如下:

概念數據模型一:

概念數據模型二:

概念數據模型一是不完整的概念模型,概念數據模型二就是完整的概念模型。

原因:從概念數據模型一里面無法判斷其中有多少隱藏的信息,當然你可以在另一個地方描述存在年計劃或月計劃這種業務情景,但是在這里你沒有描述出來,所以至少在這里它是不完整的?我想問:此時不說,更待何時?

例二:

對于概念模型有一種典型的情況。例如,下面是一組關于財務審計系統中的概念數據模型:

姑且勿論這個概念模型是否正確,至少它是粒度很粗很不完整的。

對于“財務數據”來說,它并不能做為一個實體,而是其中包含了多個實體(包括賬套,憑證,科目等相關實體),把它們(財務數據、審計數據與結果數據)定義為數據域(財務數據域、審計數據域與結果數據域)也許更加準確,而不是把它定義為一個數據(實體)。

“財務數據”域完整的概念模型,應該如下圖:

(這里我假設這個概念模型里的實體是完整的,實際的財務系統當然不止這三個實體。)

這里也許有個疑問:這沒問題啊,先系統性,再結構化嘛。

在此,我也真的很糾結,想想還是先不對這一句話解釋太多,我們先進入概念模型的設計原則的討論。完了之后,希望大家能找到“先系統性,再結構化”這句話的真諦。

2.1.4設計原則

我們先來引用一下數據庫設計范式里面第三范式的描述:第三范式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。

在系統分析中對于數據架構的分析,一般原則是以數據實體為基本元素,即每個實體不可再分解為止。這也正符合數據庫設計三范式里面第三范式的定義。

如果在分析階段數據對象沒有細化到最小粒度的數據實體,那么相當于把系統分析的工作留給了下一階段的設計人員,從某種角度上來講,這是不符合系統分析與設計的原則的。因為系統設計人員的工作是根據分析結果進行設計,而不是還要進行系統分析。

一:分析階段要清楚問題的所有內容,即系統做什么。也就是:What to do.

二:設計階段的設計工作是根據系統分析的結果而進行的,不完整的系統分析結果無法得到一個完整的系統設計結果。I don't know what to do, I don't know how to do.

對于結構化的分析我們一般的原則是:

一、使用一個總體結構圖來描述各個數據域之間的關系,然后對數據域里面的所有數據實體進行結構化的分析與設計。

二、對于同一個數據域的結構化層次最多不超過三層結構,最好不超過兩層;對于不同數據域由于系統規模較大,如果在同一個篇幅里面無法完全描述出來,則可以切片分章節對不同的數據域進行結構化的描述。

2.1.5小結

概念模型設計階段,主要處于系統分析的階段,屬性可以不完全描述,但也可以描述一些主要的屬性。如果你在E-R圖上不給出屬性,可以選擇一個專門的表格來描述。另一方面,同一個實體的詳細信息,在一個地方描述就好了,不要每一個涉及該實體的地方都描述一番。因為如果實體有變化的時候,我想有些實體會在幾百上千個點上,你也不會每一個地方都去維護一次。

下面引用Jerome's BI BLOG里面的一句,這一句話很重要,也是理解概念模型與邏輯模型之間的區別的關鍵。

概念數據模型的內容包括重要的實體及實體之間的關系。在概念數據模型中不包括實體的屬性,也不用定義實體的主鍵。這是概念數據模型和邏輯數據模型的主要區別?!狫erome's BI BLOG

2.2邏輯模型

2.2.1定義

邏輯模型,是用戶從數據庫所看到的模型,是具體的DBMS所支持的數據模型,如網狀數據模型(Network Data Model)、層次數據模型(Hierarchical Data Model)等等。此模型既要面向用戶,又要面向系統,主要用于數據庫管理系統(DBMS)的實現?!俣劝倏?

2.2.2作用

邏輯模型是概念模型從真實世界向計算機世界的轉換,加入了系統設計的相關內容。

邏輯數據建模不僅會影響數據庫設計的方向,還間接影響最終數據庫的性能和管理。如果在實現邏輯數據模型時投入得足夠多,那么在物理數據模型設計時就可以有許多可供選擇的方法。

2.2.3實例分析

例如:接著上面“計劃表”的設計,“計劃表”的邏輯結構,如下圖所示。

其中:

1.計劃標識:這是由于系統設計的需要而加進來的,與業務無關的屬性。

2.計劃類型:0:年計劃;1:月計劃;2:季度計劃。(這里使用整型表示,當然可以是字符、字符串或其他自定義類型,這完全是設計上的事,一般不要在系統分析階段啰嗦這些,客戶不關心的事兒。)

雖然計劃在業務概念上來講,存在年計劃、月計劃,甚至于季度計劃,但是在計算機世界中,計劃的類型除了在概念上不一樣之外,其他屬性都是一樣的,那么邏輯模型設計的時候可以把計劃數據定義為一個實體,而使用其中的一個字段來標識某一份計劃是年計劃、月計劃,還是季度計劃。

2.2.4設計原則

邏輯數據模型反映的是系統分析設計人員對數據存儲的觀點,是對概念數據模型進一步的分解和細化。邏輯數據模型是根據業務規則確定的,關于業務對象、業務對象的數據項及業務對象之間關系的基本藍圖。

邏輯數據模型的內容包括所有的實體和關系,確定每個實體的屬性,定義每個實體的主鍵,指定實體的外鍵,需要進行范式化處理。

例如,在“計劃表”邏輯模型中可能加入了由于系統設計需要的一些字段(屬性),這些字段可能是在業務概念上不存在或不需要的。

2.2.5小結

邏輯數據模型的目標是盡可能詳細的描述數據,但并不考慮數據在物理上如何來實現?!@一句話很重要,也是理解邏輯模型與物理模型之間區別性的關鍵。

2.3物理模型

2.3.1定義

物理模型,是面向計算機物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS有關,而且還與操作系統和硬件有關。每一種邏輯數據模型在實現時都有起對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,而設計者只設計索引、聚集等特殊結構。 ——百度百科

2.3.2作用

物理數據模型的目標是指定如何用具體的數據庫模式來實現邏輯數據模型,以及真正的保存數據。

2.3.3實例分析

例如:對于計劃表,基于SQL Server數據庫管理系統為存儲介質的物理模型結構。如下圖所示:

字段對照表:

數據表名:Plan(計劃表)

當基于Oracle數據庫模式的時候,這個物理模型則是不一樣的。

例如:字符串,在Oracle上為varchar2,在Sql Server上為varchar等。

2.3.4設計原則

物理數據模型是在邏輯數據模型的基礎上,考慮各種具體的技術實現因素,進行數據庫體系結構設計,真正實現數據在數據庫中的存儲。

物理數據模型的內容包括確定所有的表和列,定義外鍵用于確定表之間的關系,基于用戶的需求可能進行范式化等內容。在物理實現上的考慮,可能會導致物理數據模型和邏輯數據模型有較大的不同。

2.3.5小結

物理模型跟邏輯模型的區別就是,邏輯模型并不指出特定的數據存儲,僅限于系統邏輯上的描述。物理模型是邏輯模型在具體存儲介質上的表現,直接與具體的數據庫管理系統或存儲介質相關的數據模型。例如:Oracle、SQL Server、XML File或文件文件等。

物理模型給出了在數據庫系統的字段名稱,與具體數據庫管理系統相關的數據類型的定義。而邏輯模型與具體的數據庫管理系統或存儲介質無關,僅為使用計算機系統概念中的一種邏輯結構。

2.4總結

概念模型是對真實世界的一種概念結構的描述;

邏輯模型是計算機系統上一種邏輯結構的描述;

物理模型則是與具體的計算機物理介質直接關聯的一種結構化的表達。

總的來說,我的理解是:概念模型、邏輯模型和物理模型是系統分析與設計中同一類型工具中三個不同層面的工具,一般應用于對同一個對象面向不同層面的用戶而做不同的描述。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢