MDA之路

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

          ORM隨想

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

          ORM隨想

          前言

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

          ORM的定義及來由

          ORMObject-Relational Mapping的簡稱,中文含義是“對象――關(guān)系映射”。此處的“對象”,乃是Object Oriented(面向?qū)ο蠹夹g(shù))中的對象,而“關(guān)系”則是關(guān)系數(shù)據(jù)庫中的關(guān)系。

          為什么需要ORM呢?自然是因?yàn)樾枰獙ο蠛完P(guān)系互相轉(zhuǎn)換,而為什么需要互相轉(zhuǎn)換,就需要解釋一下“程序”的概念。最早關(guān)于程序的概念是:

          程序=算法+數(shù)據(jù)結(jié)構(gòu)

          而在信息處理領(lǐng)域,目前我們實(shí)際面對的程序概念是:

          程序=數(shù)據(jù)+數(shù)據(jù)處理

          計(jì)算機(jī)的程序有兩個(gè)大的應(yīng)用領(lǐng)域:科學(xué)計(jì)算和信息處理,最初的計(jì)算機(jī)程序大部分是為了進(jìn)行科學(xué)計(jì)算的,這也是為什么在早期的大學(xué)中計(jì)算機(jī)系是數(shù)學(xué)系的一個(gè)分支的原因。而隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展,信息處理已經(jīng)成為計(jì)算機(jī)重點(diǎn)關(guān)注的問題。“信息技術(shù)”(Information TechnologyIT)產(chǎn)業(yè)也不斷發(fā)展?fàn)顟B(tài),甚至脫離了計(jì)算機(jī)技術(shù)的領(lǐng)域,自立門派了。說了那么多,其實(shí)就是為了說明一個(gè)問題,目前的計(jì)算機(jī)程序,大部分是為了進(jìn)行信息處理的,而進(jìn)行信息處理的程序,就等于數(shù)據(jù)+數(shù)據(jù)處理。

          而目前程序中的數(shù)據(jù)大部分是保存在關(guān)系數(shù)據(jù)庫中的。目前程序的數(shù)據(jù)處理流程大部分是用面向?qū)ο笳Z言編寫的,因此

          程序=關(guān)系數(shù)據(jù)庫+面向?qū)ο笳Z言

          這個(gè)等式在大部分狀況下成立。面向?qū)ο笳Z言中的基本信息存儲單位是“對象”,而關(guān)系數(shù)據(jù)庫中的基本信息存儲單位是“記錄”。那么,當(dāng)程序需要在數(shù)據(jù)的處理和數(shù)據(jù)的存儲之間交換信息時(shí),不可避免的要將“對象”和“記錄”進(jìn)行轉(zhuǎn)換。

          關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)是關(guān)系代數(shù),面向?qū)ο笳Z言的理論基礎(chǔ)是面向?qū)ο蠹夹g(shù),如果能夠在具體的程序編寫之前解決“對象”和“記錄”的映射問題,提出一個(gè)通用的解決方案,那么一定能夠大大加快程序開發(fā)的效率和質(zhì)量。這個(gè)通用的解決方案在部分上已經(jīng)實(shí)現(xiàn)了,就是ORM

          力有未逮,下次再續(xù)……


          評論

          # re: ORM隨想  回復(fù)  更多評論   

          2005-08-12 23:50 by zx
          程序=問題空間的最細(xì)致總結(jié)+解空間中的最優(yōu)解

          其中
          問題空間=一般而言的業(yè)務(wù)邏輯
          解空間=一般而言的分析、設(shè)計(jì)
          主站蜘蛛池模板: 兴义市| 潼关县| 扬中市| 广饶县| 赤峰市| 金湖县| 无为县| 宁河县| 枣阳市| 南宫市| 华坪县| 沈阳市| 股票| 巩义市| 思南县| 湾仔区| 达孜县| 满城县| 清水县| 健康| 建平县| 格尔木市| 惠安县| 新干县| 杭锦后旗| 南汇区| 额敏县| 客服| 商丘市| 哈尔滨市| 晋中市| 富源县| 青海省| 深圳市| 九龙坡区| 三穗县| 尚志市| 丰都县| 朝阳县| 阿尔山市| 海阳市|