對象關係映射
外觀
物件關聯對映(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程式設計技術,用於實現物件導向編程語言裡不同類型系統的資料之間的轉換。從效果上說,它其實是創建了一個可在編程語言裡使用的「虛擬物件資料庫」。
物件導向是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關聯式資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,物件關聯對映技術應運而生。
簡單的說:ORM相當於中繼資料。具體到產品上,例如下邊的ADO.NET Entity Framework。DLINQ中實體類的屬性[Table]就算是一種中繼資料。
物件關聯對映成功運用在不同的物件導向持久層產品中,如:Torque,OJB,Hibernate,TopLink,Castor JDO,TJDO,Active Record,NHibernate,ADO.NET Entity Framework,ObjectiveSql等。
參見
[編輯]- 對象關係映射軟件列表
- AutoFetch - automatic query tuning
- CORBA
- 數據庫
- 對象數據庫
- 對象持久化
- 對象關係數據庫
- Object-relational impedance mismatch
- 關係模型
- SQL
- 服務數據對象
- Java 數據對象
- ADO.NET Entity Framework
- OpenAccess ORM
- 主動記錄
- 數據映射器模式
參考文獻
[編輯]外部連結
[編輯]- Scott W. Ambler的Persistence Layer的詳細設計論文
- 根據上述論文的設計思路,Artem Rudoy 實現的 PL(Persistence Layer)開源專案 (頁面存檔備份,存於網際網路檔案館)
- About ORM (頁面存檔備份,存於網際網路檔案館) by Anders Hejlsberg
- Mapping Objects to Relational Databases: O/R Mapping In Detail (頁面存檔備份,存於網際網路檔案館) by Scott W. Ambler
- Core J2EE Design Pattern: Data Access Objects(頁面存檔備份,存於網際網路檔案館)
- Choosing an Object-Relational mapping tool (頁面存檔備份,存於網際網路檔案館)
- Perl's DBIx::Class ORM (頁面存檔備份,存於網際網路檔案館)
- Object-relational mappers for Python (頁面存檔備份,存於網際網路檔案館)
- A tutorial with video explaining ORM
- QuickDB (頁面存檔備份,存於網際網路檔案館)
- Active Record in Java (頁面存檔備份,存於網際網路檔案館)