2009-10-05 71 views

回答

3

您comapring蘋果和橘子。對象關係映射全都是爲了克服對象世界和關係數據庫之間的阻抗msimatch。

ActiveRecord的例如是,在數據庫中包裝一個行一個ORM。 Hibernate是另一種流行的ORM

只是谷歌的ORM維基百科解釋它更好

http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch

+0

哪一個對象Realtional建模應該是什麼? – 2009-10-05 10:10:58

+0

的OP已經理解對象角色建模和解釋that.I解釋關係映射是什麼對象,並在那裏,他可以找到更多的答案。我不明白爲什麼我被downvoted – Edwards 2009-10-05 10:17:50

+0

我很抱歉,並沒有真正使任何意義,因此沒有意義。我沒有提到過「對象實現建模」,我說過對象關係映射和對象角色建模,我如何理解你在說什麼。我搜索了他們,但我想知道與使用方法的人的區別。 – 2009-10-05 10:18:20

6

對象角色建模:軟件建模表示法,特別是,定義域模型。您可以將此語言視爲使用UML類圖設計數據庫的替代方法。這裏更多的信息:http://www.orm.net/

對象關係映射:一組策略來彌補面向對象的程序和關係數據庫之間的差距。它的目的是允許對象的持久存儲在關係數據庫結構

3

對象角色建模是由一隊在控制數據1973年左右發明的,通過法爾肯貝里命名。它是一種植根於語言分析的建模方法,被Terry Halpin形式化爲一階邏輯,見http://orm.net。因此ORM是首字母縮寫詞的用戶。 ORM和相關建模語言的區別在於無屬性。這些語言只包含對象和對象類型(各種事物),事實和事實類型(個體事物之間的關係)和約束(關於可能存在的事物和關係的規則)。沒有任何關係具有像實體屬性這樣的主從特性 - 這是一個只在物理映射過程中出現的概念,因爲它與域的底層語義無關。

對象關係映射(我總是寫O/RM)爲工具來幫助翻譯關係形式和麪向對象的形式之間的數據的方法或家庭的名稱。這兩種形式都使用基於屬性(實體/屬性或對象/屬性)的聚合或合成事物,但兩種方法之間的聚合原則不同,因此相同的基礎語義會導致不同的數據結構;因此需要工具來幫助自動翻譯。此外,在ER或O-O分析,需要早作決定哪些東西是對象/實體,哪些屬性是被迫的,這產生了全班建模錯誤的,根本不會發生ORM。

當然,關係和O-O模型可以被自動地從一個ORM模型衍生的衍生形式之間的映射也自動和無痛的。我想這不會更經常,因爲它會讓生活變得過於簡單。