注意:某些特性可能公開使用的Visual Studio .NET β2版本中沒有提供。
什麼是ORM?
對象角色建模(ORM)提供了概念性的、易於理解的模型化數據的方法。ORM方法論基於三個核心原則: 簡單:以最基本的形式建模數據。
傳達性:數據庫結構被任何人都能理解的語言文檔化。
精確性:基於數據模型創建正確標准化了的結構。
典型地,建模者通過收集來自那些熟悉應用程序但不熟練的數據建模者的人的信息開發信息模型。建模者必須能夠用非技術企業專家可以理解的術語在概念層次上與數據結構進行通訊。建模者也必須能以簡單的單元分析信息,對樣本數據進行處理。ORM專門被設計為改進這種聯系。
規則表達式
ORM把應用程序世界表示為具有角色(關系中的部分)的一組對象(實體或值)。ORM有時也稱為基於事實的建模,因為它把相關數據描述為基本事實。這些事實如果分割為再小的事實就會丟失信息。
簡單事實的一些例子包括: 人有電話 人住在某個地方 人生於某個日期 人在某個日期被雇傭
這些事實相應的ORM模型如下:
http://www.microsoft.com/china/msdn/images/orm.gif
圖 1. 對象角色模型
圖中的圓代表對象;矩形代表論斷。在ORM中,象在邏輯中一樣,一個論斷只是帶有對象洞的語句。箭頭和點代表系統中的約束。
例如,在“人有電話”這個事實的診斷上的箭頭可以翻譯為:有可能某個人有多於一個電話,並且至少有一個人有電話。
在“人生於某個日期”這個事實中,在論斷上的箭頭與連接對象與論斷的點的結合表明: 每個人確切地出生於一個日期。
與 ER的比較
實體關系(ER)是另一種類型的數據庫建模。ORM模型的簡單性與ER相應部分的比較:
http://www.microsoft.com/china/msdn/images/er.gif
圖 2. 實體關系
ORM以簡單對象和論斷的形式描述企業事實,而實體關系方法論以術語實體(擁有屬性並參與關系)描述世界。在圖1的ORM例子中,人,電話,地址和日期都表示為扮演有相互聯系的角色的對象。在ER例子中,人是一個實體,它由屬性:地址和電話進行描述。
例如,如果要把地址分解為街道,城市,州,ZIP碼,那麼必須把地址改變為具有相應屬性的實體類型,結果會改變人與地址間的關系。盡管在上面的ORM模型中表示的約束也可以在ER中表示,但只要向模型中增加節點,或編寫應用程序代碼對模型進行補充,就可以表示其它約束。
ORM的優點
ORM提供的不只是描述不同對象間關系的一個簡單而直接的方式。從示例中,可以看出ORM還提供了靈活性。使用ORM創建的模型比使用其它方法創建的模型更有能力適應系統的變化。另外,ORM允許非技術企業專家按樣本數據談論模型,因此他們可以使用真實世界的數據驗證模型。因為ORM允許重用對象,數據模型能自動映射到正確標准化的數據庫結構。