shuimudaoliang

           

          讀書筆記1(在實達的日子里)

          Hibernate學習心得--軟件設計階段的模型



          在科學和工程技術領域,模型是一個很有用途的概念,它可以用來模擬一個真實的系統(tǒng)。在軟件開發(fā)領域,模型用來表示真實世界的實體。在軟件開發(fā)的不同階段, 需要為目標系統(tǒng)創(chuàng)建不同類型的模型。在分析階段,需要創(chuàng)建概念模型。在設計階段,需要創(chuàng)建域模型和數(shù)據(jù)模型。其中,域模型是面向?qū)ο蟮模瑪?shù)據(jù)模型是面向關 系的,域模型和數(shù)據(jù)模型之間存在一種對象-關系映射。

          概念模型

               概念模型清楚地顯示了問題域中的實體。不管是技術人員還是非技術人員都能看得懂改面模型,他們可以很容易地提出模型 中存在的問題,幫助分析人員及早對模型進行修改。在軟件設計域開發(fā)周期中,模型的變更需求提出得越晚,所耗費得開發(fā)成本就越大。

               概念模型描述了每個實體得概念和屬性,以及實體之間的關系:一對一、一對多和多對多。在現(xiàn)實生活中都可以找到相應的 例子,例如一只母雞有很多小雞是一對多關系,一位客戶選購了很多商品,而這些商品也可以被許多客戶選購,這是多對多關系。

          關系數(shù)據(jù)模型

              到目前為止,關系數(shù)據(jù)庫仍然是使用最廣泛的數(shù)據(jù)庫,它存儲的是關系數(shù)據(jù)。關系數(shù)據(jù)模型是在概念模型的基礎上建立起來的,用于描述這些關系數(shù)據(jù)的靜態(tài)結(jié)構(gòu),它由以下內(nèi)容組成:

              一個或多個表
              表的所有索引
              視圖
              觸發(fā)器
              表與表之間的參照完整性

               數(shù)據(jù)庫Schema是對數(shù)據(jù)模型的實現(xiàn)。對于支持SQL的關系數(shù)據(jù)庫,可以采用SQL DDL語言來創(chuàng)建 數(shù)據(jù)庫Schema。SQL DDL 用于生成數(shù)據(jù)庫中的物理實體,例如下面的創(chuàng)建CUSTOMERS表的  SQL DDL:

              create table CUSTOMERS {
                ID int not null,
                NAME varchar(20),
                AGE int,
                primary key (ID)
              };

               值得注意的是,數(shù)據(jù)庫Schema有兩種含義,一種是概念上的Schema,指的是一組DDL語句集,該語句集完整地描述了數(shù)據(jù)庫的結(jié)構(gòu)。還有一種是物理 上的Schema,指的是數(shù)據(jù)庫中的一個名字空間,它包含一組表、視圖和存儲過程等命名對象。物理Schema可以通過標準SQL語句來創(chuàng)建、更新和修 改。例如以下SQL語句創(chuàng)建了兩個物理Schema:

              create schema SCHEMA_A;
              create table SCHEMA_A.CUSTOMERS(ID int not null,……);

              create schema SCHEMA_B;
              create table SCHEMA_B.CUSTOMERS(ID int not null,……);

          域模型

              域模型由以下內(nèi)容組成:具有狀態(tài)和行為的域?qū)ο螅挥驅(qū)ο笾g的關系。

          域?qū)ο?br>
          1.實體域?qū)ο螅捍砣恕⒌攸c、事物或概念。通常,可以把業(yè)務領域中的名詞,例如客戶、訂單、商品,當然也包括前面提到過的母雞,作為實體域?qū)ο螅?br>2.過程域?qū)ο螅捍響弥械臉I(yè)務邏輯或流程。它通常依賴于實體域?qū)ο蟆?br>3.事件域?qū)ο螅捍響弥械囊恍┦录绠惓!⒕婊虺瑫r等。

          域?qū)ο笾g的關系

              在域模型中,類之間存在四種關系。

          1.關聯(lián)(Association)
             
              關聯(lián)指的是類之間的引用關系,這是實體域?qū)ο笾g最普遍的一種關系。關聯(lián)可以分為一對一、一對多和多對多關聯(lián)。

          2.依賴(Dependency)

              依賴指的是類之間的訪問關系。如果類A訪問類B的屬性或方法,或者說是A負責實例化B,那么可以說類A依賴類B。

          3.聚集(Aggregation)

              聚集指的是整體與部分之間的關系,在實體域?qū)ο笾g也很常見。例如,人與手就是聚集關系,在Person類中由一個hands集合,它存放被聚集的Hand對象:

              public class Person {
                private Set hands = new HashSet();
                …………
              }

          4.一般化(Generalization)

              一般化指的是類之間的繼承關系。

          域?qū)ο蟮某志没拍?br>
               當實體域?qū)ο笤趦?nèi)存中創(chuàng)建后,它們不可能永遠存在。最后,他們要么從內(nèi)存中清除,要么被持久化到數(shù)據(jù)存儲庫中。內(nèi)存 無法永久地保存數(shù)據(jù),因此必須對實體域?qū)ο筮M行持久化。否則,如果對象沒有被持久化,用戶在應用運行時創(chuàng)建地訂單信息將在應用結(jié)束運行后隨之消失。

              當然,并不是所有地域?qū)ο蠖夹枰志没ǔV挥袑嶓w域?qū)ο蟛判枰志没硗猓行嶓w域?qū)ο笠膊恍枰志没?br>
              狹義的理解,“持久化”僅僅指把域?qū)ο笥谰帽4娴綌?shù)據(jù)庫中;廣義的理解,“持久化”包括和數(shù)據(jù)庫相關的各種操作。

          posted on 2006-01-21 20:40 shuimudaoliang 閱讀(364) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           

          導航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          主站蜘蛛池模板: 新丰县| 云阳县| 曲周县| 长汀县| 永善县| 山东| 阜城县| 太康县| 曲周县| 洮南市| 荆州市| 济源市| 宜都市| 象山县| 徐汇区| 连山| 怀集县| 新丰县| 登封市| 石楼县| 巧家县| 富锦市| 彰化县| 峡江县| 新宾| 桓台县| 兰州市| 双辽市| 来宾市| 阿图什市| 郓城县| 平罗县| 东乌珠穆沁旗| 响水县| 上高县| 淳安县| 杨浦区| 潜山县| 无棣县| 长宁区| 托克逊县|