MDA之路

          MDA,UML,XML,Eclipse及Java相關的Blog
          posts - 53, comments - 494, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ORM隨想

          Posted on 2005-05-22 20:21 wxb_nudt 閱讀(896) 評論(1)  編輯  收藏 所屬分類: 技術雜談

          ORM隨想

          前言

          周末的夜晚,總顯得特別無聊,總看衛斯理的書不是辦法,得找點事情干干。前幾天為了驗證自己的一個想法,到網上搜索,結果發現了hibernate,為了跑一跑hibernate,結果學習了Ant,最后發現hibernate是一個ORM工具,于是自然把視線轉移到了ORM。在網上的資料中游蕩,發現對于ORM沒有一個完整的中文資料,English的資源也不甚明了。于是有必要把自己所看、所想、所用的做一個小小的總結。

          ORM的定義及來由

          ORMObject-Relational Mapping的簡稱,中文含義是“對象――關系映射”。此處的“對象”,乃是Object Oriented(面向對象技術)中的對象,而“關系”則是關系數據庫中的關系。

          為什么需要ORM呢?自然是因為需要將對象和關系互相轉換,而為什么需要互相轉換,就需要解釋一下“程序”的概念。最早關于程序的概念是:

          程序=算法+數據結構

          而在信息處理領域,目前我們實際面對的程序概念是:

          程序=數據+數據處理

          計算機的程序有兩個大的應用領域:科學計算和信息處理,最初的計算機程序大部分是為了進行科學計算的,這也是為什么在早期的大學中計算機系是數學系的一個分支的原因。而隨著計算機技術的不斷發展,尤其是網絡技術的發展,信息處理已經成為計算機重點關注的問題。“信息技術”(Information TechnologyIT)產業也不斷發展狀態,甚至脫離了計算機技術的領域,自立門派了。說了那么多,其實就是為了說明一個問題,目前的計算機程序,大部分是為了進行信息處理的,而進行信息處理的程序,就等于數據+數據處理。

          而目前程序中的數據大部分是保存在關系數據庫中的。目前程序的數據處理流程大部分是用面向對象語言編寫的,因此

          程序=關系數據庫+面向對象語言

          這個等式在大部分狀況下成立。面向對象語言中的基本信息存儲單位是“對象”,而關系數據庫中的基本信息存儲單位是“記錄”。那么,當程序需要在數據的處理和數據的存儲之間交換信息時,不可避免的要將“對象”和“記錄”進行轉換。

          關系數據庫的理論基礎是關系代數,面向對象語言的理論基礎是面向對象技術,如果能夠在具體的程序編寫之前解決“對象”和“記錄”的映射問題,提出一個通用的解決方案,那么一定能夠大大加快程序開發的效率和質量。這個通用的解決方案在部分上已經實現了,就是ORM

          力有未逮,下次再續……


          評論

          # re: ORM隨想  回復  更多評論   

          2005-08-12 23:50 by zx
          程序=問題空間的最細致總結+解空間中的最優解

          其中
          問題空間=一般而言的業務邏輯
          解空間=一般而言的分析、設計
          主站蜘蛛池模板: 资兴市| 洞头县| 平定县| 衡南县| 娱乐| 井冈山市| 惠州市| 枝江市| 石嘴山市| 新郑市| 江津市| 营山县| 鹤峰县| 米林县| 始兴县| 涟源市| 磐安县| 敖汉旗| 东宁县| 西青区| 鲁甸县| 莱州市| 沽源县| 六枝特区| 潍坊市| 疏勒县| 乐清市| 策勒县| 北宁市| 八宿县| 安吉县| 阳春市| 叶城县| 辽宁省| 蒲江县| 陇南市| 吐鲁番市| 南宫市| 台中县| 苗栗市| 延长县|