什麼是ORM?
對象角色建模(ORM)提供了概念性的、易於理解的模型化資料的方法。ORM方法論基於三個核心原則:
- 簡單:以最基本的形式建模資料。
- 傳達性:資料庫結構被任何人都能理解的語言文檔化。
- 精確性:基於資料模型建立正確標準化了的結構。
典型地,建模者通過收集來自那些熟悉應用程式但不熟練的資料建模者的人的資訊開發資訊模型。建模者必須能夠用非技術企業專家可以理解的術語在概念層次上與資料結構進行通訊。建模者也必須能以簡單的單元分析資訊,對樣本資料進行處理。ORM專門被設計為改進這種聯絡。
規則運算式
ORM把應用程式世界表示為具有角色(關係中的部分)的一組對象(實體或值)。ORM有時也稱為基於事實的建模,因為它把相關資料描述為基本事實。這些事實如果分割為再小的事實就會丟失資訊。
簡單事實的一些例子包括:
- 人有電話
- 人住在某個地方
- 人生於某個日期
- 人在某個日期被僱傭
這些事實相應的ORM模型如下:
圖 1. 對象角色模型
圖中的圓代表對象;矩形代表論斷。在ORM中,象在邏輯中一樣,一個論斷只是帶有對象洞的語句。箭頭和點代表系統中的約束。
例如,在“人有電話”這個事實的診斷上的箭頭可以翻譯為:有可能某個人有多於一個電話,並且至少有一個人有電話。
在“人生於某個日期”這個事實中,在論斷上的箭頭與連線物件與論斷的點的結合表明: 每個人確切地出生於一個日期。
與 ER的比較
實體關聯(ER)是另一種類型的資料庫建模。ORM模型的簡單性與ER相應部分的比較:
圖 2. 實體關聯
ORM以簡單對象和論斷的形式描述企業事實,而實體關聯方法論以術語實體(擁有屬性並參與關係)描述世界。在圖1的ORM例子中,人,電話,地址和日期都表示為扮演有相互聯絡的角色的對象。在ER例子中,人是一個實體,它由屬性:地址和電話進行描述。
例如,如果要把地址分解為街道,城市,州,ZIP碼,那麼必須把地址改變為具有相應屬性的實體類型,結果會改變人與地址間的關係。儘管在上面的ORM模型中表示的約束也可以在ER中表示,但只要向模型中增加節點,或編寫應用程式代碼對模型進行補充,就可以表示其它約束。
ORM的優點
ORM提供的不只是描述不同對象間關係的一個簡單而直接的方式。從樣本中,可以看出ORM還提供了靈活性。使用ORM建立的模型比使用其它方法建立的模型更有能力適應系統的變化。另外,ORM允許非技術企業專家按樣本資料談論模型,因此他們可以使用真實世界的資料驗證模型。因為ORM允許重用對象,資料模型能自動對應到正確標準化的資料庫結構。
ORM模型的簡單性簡化了資料庫查詢過程。使用ORM查詢工具,使用者可以訪問期望資料,而不必理解資料庫的底層結構。
資料庫產生和遍曆引摯
象所有優秀的模型方法一樣,ORM也不只是一個概念。它包含了不同的設計過程以協助建模者映射概念的和邏輯的模型,或使用轉換引摯在這些模型間轉換。
ORM模型也能夠自動地映射到大多數流行的關係型資料庫所實現的資料庫結構。檢查前面的例子,ORM模型能自動產生ER圖表或邏輯模型(可以翻譯為SQL 代碼,並適用於所選擇的資料庫)。
總結
利用非技術企業專家的知識對於確保應用程式滿足企業需求是重要的。ORM,Visual Studio .NET的一個特性,是一個最初的、便於使用的概念性資料模型方法。通過使用不只是只有資料庫專家才能理解的語言,ORM使那些充分理解了企業對應用程式需求的人能直接參与設計。
ORM還支援完全的遍曆引摯,因此一旦定義了企業需求,它們就能迅速的轉化為邏輯和物理資料庫圖表。使用ORM,組織可以提高應用程式開發的效率,確保企業需求能被正確交付。