?

面向對象在關系數據庫中的設計與應用

2016-08-19 18:53徐萍
電腦知識與技術 2016年20期
關鍵詞:映射屬性面向對象

徐萍

摘要:該文針對面向對象的技術和關系型數據庫的特點,將兩者相結合,研究了將面向對象技術方式應用于關系型數據庫,進行系統設計的方法,重點描述了對象映射成關系數據庫的方法。

關鍵詞:面向對象;關系型數據庫;映射;類;屬性

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)20-0012-02

1 引言

面向對象(Object Oriented,OO)是把面向對象的思想應用于計算機軟件開發中,以對象為內核,以類、繼承、封裝、多態等概念構造系統,進行客觀事物的軟件開發設計的一種方法。面向對象,對象其實就是一個封裝體,包含數據和控制命令。隨著計算機技術和開發軟件的不斷升級,面向對象的方法和應用已經不僅僅局限于軟件開發和程序設計,已經逐漸擴展到數據庫系統、分布式系統、網絡管理、人機交互等計算機領域,甚至對人工智能、計算機輔助工具、信息系統等產生深遠影響。計算機和網絡都離不開數據庫,面向對象的廣泛應用,也給數據庫技術增添了新鮮血液。面向對象方法與數據庫技術,尤其是關系型數據庫如何有效結合,更好的支持數據庫的應用,是一個非常值得研究的課題。

2 面向對象的關系型數據庫

2.1 關系型數據庫

電子商務、云存儲、云計算等計算機信息系統,已經是當今信息技術的重要手段,而數據庫技術是計算機系統的重要組成部分和核心內容。數據庫類型有網狀、層次和關系幾類,其中關系型數據庫以其集合的操作方式得到了最為廣泛的應用。關系型數據庫是一種建立在關系數據庫模型基礎上的數據庫,用集合代數方法對數據庫單元中數據進行處理,是一組相互之間有關聯關系的表,表的關系通過相關字段進行關聯,表中的數據可以根據需求情況進行存取且不用重新組織數據庫表格。新建一個關系型數據庫時,每一行包含一個數據實體,是被列定義的種類。目前應用較多的數據庫有oracle、sqlserver、mysql等。

2.2面向對象分析法

面向對象分析法(Object-Oriented Analysis,OOA),是指一個軟件開發項目在開發過程中,首先要對業務情況進行調研,然后用面向對象的思想對該項目業務進行歸納、分類、分析。OOA強調的是業務對象之間的關系以及對象的屬性和行為。面向對象分析法使用戶和設計者之間的溝通更容易,設計者能夠更好地理解用戶的需求,設計者了解了用戶的需求,才能更好地設計出用戶與數據庫之間的映射方式,從而設計出用戶滿意的數據庫。

OOA方法的程序設計,從結構框架來說,一個是針對開發者的外部層,外部層是應用程序的整體設計;內部層針對物理存儲,稱為物化視圖,是基于遠程表格的,也可以稱之為快照;概念層介于外部層和內部層之間,是內外部的映射,用DDL表示,概念層是關系型數據庫的真正表現形式。對象與關系型數據庫通過映射發生關系,映射方法就是將關系型數據庫進行概念層的設計。從對象到關系型數據庫的映射內容包括:屬性與列的映射,關系型數據庫中的繼承,類與表的映射,映射的關聯,聚合和組合以及實現關系等。

將對象建模和映射的過程就是將對象轉換成概念層的數據庫模型,對象模型轉換為關系型數據庫的映射有如下關系:

1)每個對象是唯一的,有唯一的標識符,具有唯一性。對象的標識一般用主鍵或者是系統自動生成的偽標識符來標識,而不是通過描述對象的屬性來標識。

2)類與關系型數據庫中的表的轉換,可以通過直接調用表的名稱,或者可以通過在類的名稱前加前綴的方式修改成表的名稱來實現。

3 基于面向對象技術的關系數據庫的設計方法

3.1 整體思路

基于面向對象技術的關系型數據庫的設計方法,首先要確定應用程序中的領域類,領域類中將數據信息和對數據的操作、調用方法進行了封裝。領域類實例化,就得到對象,因此,需要提前把對象的存儲、地址、檢索方法、調用方法等問題設計好,做好準備工作。

在面向對象的關系型數據庫中,數據通過對象形式存儲到數據庫中,并且對象之間的關聯關系是自動存儲的。關系型數據庫本身不存在集合和分解的問題,可以由與對象相關的狀態圖像構成。面向對象的關系型數據庫是通過對對象進行查詢、檢索、調用的,不存在對某個表的一行或一列進行某些操作。因此需要提前定義對對象的各種操作方法。比如:writeObject()是一個寫入并存儲一個對象及所有對象相關;read Object()是讀取一個對象及所有對象相關。每個對象有唯一的標識ID,在寫入和讀取時通過唯一的標識ID進行。

以消費者對電子賬戶的寫入、讀取操作為例子,來說明面向對象數據庫數據存儲模式,如圖1所示。將消費者對電子賬戶的操作對象的屬性描繪成字段,指向其他對象需要映射到相應的外部關鍵字上,此處的操作動作不能封裝。數據庫中的每一個表對應一個類,對數據庫中的表的操作設定為函數。

3.2 對象映射成關系數據庫

RDBMS的表都是二維表,一個二維表是一個管理單元,二維表及表與表之間的關聯關系用來描述對象模型的屬性,即對象模型與關系型數據庫的映射關系。將每個對象的類存儲到數據庫的表中,一個類對應一個對象實例,并進行存儲。不僅對象實例映射到關系型數據庫中,對象之間的關聯關系也要映射到關系型數據庫中,這樣才能進行后續的操作。

對象之間的關系有四種:關聯、繼承、聚合、組成。關聯是關系型數據庫中對象之間的關聯關系,聚合不僅需要對關系型數據庫的整體進行操作,還需要對部分進行操作,即讀取時需要整體讀取的同時也需要在部分數據中進行讀取。關聯是不需要的,在關聯中存儲和讀取的執行操作不明顯。關聯和聚合的區別在于對象之間的聯系程度不同。

對關系型數據庫中的數據不但有存儲、調用等動作,還有刪除的動作,那么將數據庫對對象的存儲和刪除也是一樣,對象映射成關系型數據由一些規則,如下:

1)一個類與一個庫表對應映射,也可以多個類與一個庫表對應映射。

2)類中存在父子關系的類,映射關系時可以分別與父和子類分別映射,或者不對父類進行定義,讓子類具有父類的屬性;不對子類進行定義,讓父類具有子類的屬性。

3)映射關系定義為一個表,包含一對一、一對多、多對多等關聯關系,也可在類表之間定義外鍵。

4)聚合的方式有兩種:一種是用一張表將所有對象類的屬性合并;一種是分別用兩張表分別將對象類的整體和部分分別合并,利用外鍵關聯整體與部分的關系。

5)有些類是沒有屬性的,沒有屬性則沒有映射表。

6)映射后的關系型數據庫表需要進行冗余操作,使其關系范式合理。

4 結論

面向對象的關系型數據庫系統以其模型簡單、數據獨立的優勢,成為數據庫技術發展的主流方向,本文針對面向對象的技術和關系型數據庫的特點,將兩者相結合,研究了將面向對象技術方式應用于關系型數據庫,進行系統設計方法的研究,重點描述了對象映射成關系數據庫的方法。

參考文獻:

[1] 楊玉芬,李明明.高曉旸對象管理在面向對象數據庫中的應用研究[J].吉林大學學報(信息科學版),2013,9(5):548-553.

[2] 肖剛.面向對象數據庫在教學信息管理系統中的應用[J].硅谷,2012(6):79.

[3] 陸登,李善平,鄭春昭. 基于對象數據庫的擴展Java集合框架[J].計算機應用與軟件,2011(1):133-136.

[3] 陳文宇.面向對象的關系數據庫設計[J].電子科技大學學報,2002(1):53-56.

[4] 吳鴻雁,劉思源.基于OO技術的關系數據庫設計[J].計算機工程,2003,29(18):177-179.

猜你喜歡
映射屬性面向對象
面向對象的計算機網絡設計軟件系統的開發
面向對象的數據交換協議研究與應用
對兩種實體觀的探析
試論泰國文化對外來廣告的映射
概念隱喻在構建語篇連貫中的作用探析
面向對象Web開發編程語言的的評估方法
面向對象信息提取中影像分割參數的選擇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合