前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇對象數據庫范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
中圖分類號:G250.74 文獻標識碼:A 文章編號:
作為計算機軟件的一個重要分支,數據庫技術一直是備受業界關注的焦點。從20世紀60年代末開始,數據庫技術經歷了層次數據庫、網狀數據庫和進而進入關系數據庫階段至今,數據庫技術的研究也不斷取得進展。80年代,關系數據庫是發展的主流,幾乎所有新推出的DBMS產品都是關系型的[1]。研究的方向主要有兩條:一是改造和擴充關系數據庫,以適應新的應用需求;二是改用新的數據模型,例如面向對象的數據模型、基于邏輯的數據模型等。
1、面向對象數據庫概述
屬性值都是直接量的對象是簡單對象,用其他對象作屬性值的對象是復合對象,復合對象是一個層次結構,這是對象概念不同于關系模型中元組的重要特征。對象間通過發送消息實現相互通信,屬性值查詢和修改只有通過向對象發消息調用才能實現;具有相同特征的對象被組織成了類,類間存在繼承、聚集的關聯。與傳統的數據模型相比,面向對象數據模型具有許多優勢,它具有表示復雜對象的能力,通過封裝和信息隱藏概念提供了模塊化機制,通過封裝和繼承概念提供了軟件重用機制,而通過滯后聯編等概念得到了系統擴充能力。面向對象數據庫(OODB)是指對象的集合、行為、狀態和聯系是以面向對象數據模型來定義的。面向對象數據庫系統(OODBS)是指支持定義和操作OODB的數據庫系統[2]。
2、面向對象數據庫的基本要素及其結構
(1)抽象。隨著網絡技術和分布式數據庫技術的發展,產生了客戶機/服務器(Client/Server)結構和微內核結構的操作系統。客戶機/服務器結構的思想如下:將操作系統分成運行在用戶態并以C/S方式活動的進程以及運行在核心態的內核兩大部分。內核部分除外,操作系統的其余部分將會被分成若干相對獨立的進程,并且每一個進程實現一類服務,稱作服務器進程,例如,提供文件管理服務、進程管理服務、存儲管理服務、網絡通信服務,等等。(用戶進程也在該層并以C/S方式活動,是一種客戶進程)。服務器進程的任務是檢查是否有客戶提出服務請求,如果有請求則在滿足客戶的要求后返回結果,于是,用戶進程與服務器進程形成了客戶機/服務器關系。運行在核心態的內核把該消息傳給服務器;服務器執行相應操作,再通過內核用另一種消息把結果返回給用戶[3]。
(2)封裝性(信息隱蔽)。以往的電子商務應用系統常常采用C/S結構進行數據的管理。所謂C/S結構即Client/Server(客戶機/服務器),是一種兩層結構,采用Intranet技術。
(3)共享性。SQL Server Management Studio替代了原有SQL Server 2000下的企業管理器的功能,可以充分管理SQL Server。它是一套管理工具,采用簡易用戶接口提供輔助開發方程式工具和管理服務器的許多功能,用于管理從屬于SQL Server的組件。此集成環境使用戶可以在一個界面內執行各種任務,例如,實現備份數據、編輯查詢和自動執行常見函數等任務,也大大改善了創建表、視圖、觸發器、用戶自定義函數和存儲過程的工具。
3、面向對象數據庫的編譯技術
假如我們進一步把圖1的對象數據庫框架從軟件開發角度進行分離的話,除去安全部分內容,則數據庫的框架結構可以簡化為如圖1所示。
圖1基于對象數據庫設計框架示意圖
通過將數據加密、表、數據庫、Web Form代碼及表示層(Web Form)的分離,分別以類、Web服務、ASPX等的形式存在,因此不僅實現了各業務邏輯之間的無縫連接,同時也增加了代碼的系統的可維護性和可重用性。打開關閉連接數據庫、執行數據的增、刪、改、查等功能。CourseAction.java實現了課程管理的請求轉發,為了實現對ADD、REMOVE、LIST、VIEW、TRASH、EDIT、SAVE等不同的要求,CourseAction類設計實現了performAdd()、performRemove()、performList()、performView()、performTrash()、performEdit()和performSave()方法。由于這七個方法在編寫風格上基本一致,所以我們針對performList()方法來說明CourseAction類的構建過程。下面是CourseAction類的部分實現代碼。數據庫技術在系統中是十分重要的,狀態應該隨時能查詢到[4]。
AddStrings(pString)返回一個字符串的基于0的編號,該值用來連接字符串到按鈕上,其中的字符串參數pString需要兩個結束符來表示結尾,必須將字符串寫成如下形式:pString= "Only one string to add\0";CString類不能提供這樣的功能,因為不可能在CString中保存超過一個結束符的字符串。所以,將CString中的字符串取出,以char定義的字符串保存,再對該字符串添加一個結束符,做法如下:
調用工具欄類。先在類CA1Dlg中實例化CStandardBar的對象。
CStandardBar m_StandardBar;
別忘了在這個文件里包含CStandardBar類聲明所在的頭文件。
#include "StandardBar.h"
m_StandardBar.AutoSize(); //重新計算控件的大小
return 0;
}
參考文獻
[1]茅健. 2.0+SQL Server 2005全程指南[M]. 電子工業出版社,2004.
[2]啟明工作室. 精通SQL Server 2005數據庫應用系統開發[M]. 北京:人民郵電出版社,2007.
關鍵詞:面向對象;軟件開發;數據庫;程序設計
中圖分類號:TP311.1 文獻標識碼:A文章編號:1007-9599 (2010) 09-0000-01
Database Application Based on Object-oriented Technology
Zhang Lin
(Ocean University of China,Shandong266033,China)
Abstract:Based on the object-oriented technology,aiming at the characteristics of relational database application methods are discussed, and some books management system as example analysis.The paper expounds the programmer can make better use of object-oriented technology,in a more natural way of dealing with the underlying database data.
Keywords:Object-oriented;Software development;Database;
Programming
一、面向對象的技術特點
面向對象是一種從組織結構上模擬客觀世界的方法,它從客觀世界的基本成分――對象出發,通過抽象來實現對客觀世界的模擬,并通過抽象提取出對象之間的相互聯系和相互作用。面向對象的思想首先出現在程序設計語言中,隨后,逐漸滲透到許多復雜工程領域。
面向對象概念的核心是對象,即對一個信息及相應處理的描述。對象可分為客觀世界中的對象和目標系統中的對象兩大類。前者為現實中遇到的每一個實體,可以是一部電話、一所房子、一本書,可以是數據結構中的棧和隊列,也可以是任何的處理過程。后者為面向對象程序設計中的對象,是一種特殊的數據結構,它包括對象的形狀數據及對此數據進行的各種操作,可用公式表示為:對象=數據+操作。面向對象技術通過對現實世界中對象的抽象以及對各個對象之間的相互關系、相互作用的描述實現由現實世界到目標系統的映射。
二、基于面向對象技術的關系數據庫應用方法
(一)整體思路
面向對象的設計方法需要尋找應用程序的領域類,類中封裝了數據和對數據操縱的方法,對類的實例化就得到對象,所以必須要解決好對象的存放、檢索等問題。在面向對象數據庫中,數據以對象的形式保存,并且數據自動保存對象間的關系。數據庫不需要集合也不需要分解,而且數據庫由可靠的圖像組成,這些圖像是與對象有關的狀態圖像。因為面向對象數據庫處理的是對象,而不是行和列,所以需要定義相關的方法以便對對象進行操作。
(二)對象映射成關系數據庫
由于RDBMS以二維表為基本管理單元,所以對象模型最終是由二維表及表問關系來描述,即對象模型向數據庫概念模型的映射就是向數據庫表的變換過程。從數據庫的角度看,關聯和聚合/組合關系之間的唯一不同是對象相互之問的綁定程度,對于聚合和組合,在數據庫中對整體所做的操作通常需要同時對部分進行操作,而關聯則不同。在聚合情況下,在整體中讀取時,通常希望在部分中讀取,而在關聯情況下,需要執行什么操作則不明顯。在將對象保存到數據庫中或從數據庫中刪除對象也存在相同的情況。
三、基于面向對象技術的數據庫應用實例
根據需求,需要開發一個圖書管理信息系統,系統選用SQL Server 2000作為后臺數據庫,前臺選擇Visual C++作為開發語言,Visual C++中的MFC為Visual C++提供了大量的類,把Windows API函數封裝在類中,方便用戶開發Windows應用程序。
按照對象映射成關系數據庫的有關規則,并結合實際需求,給出系統的數據表結構如下:
管理員信息表(管理員編號PK,管理員姓名,管理員類別,管理員密碼,管理員性別,聯系電話,地址);
圖書類別表(圖書類別PK,可借閱天數);
借書信息表(記錄編號PK,圖書編號FK,圖書名稱,圖書類別FK,價格,讀者編號FK,讀者姓名,借書時間,借書年份,借書當日位于當年的日子數);
圖書信息表(圖書編號PK,圖書名稱,圖書類別FK,出版社,價格,入庫時間,圖書狀態,讀者編號FK,借閱頻率,說明);
讀者留言表(記錄編號PK,讀者編號FK,讀者姓名,留言時間,留言信息);
讀者信息表(讀者編號PK,讀者姓名,讀者類別FK,讀者密碼,讀者性別,聯系電話,地址,讀者所在系別,注冊時間);
讀者類別表(讀者類別PK,可借閱冊數);
還書信息表(記錄編號PK,圖書編號FK,圖書名稱,圖書類別FK,價格,讀者編號FK,讀者姓名,還書時間);
罰款信息表(記錄編號PK,圖書編號FK,圖書名稱,圖書類別FK,價格,讀者編號FK,讀者姓名,借書時間,還書時間,超期天數,掛失時間,罰金,是否繳納罰金);
數據表之間通過主鍵(PK)和外鍵(FK)建立關聯,以實現數據約束。為了更方便地對數據進行操作和管理,圖書管理信息系統設計并使用專門的數據庫類CADOCONN來封裝系統數據庫,其中包含了連接數據庫的代碼。在ADOCONN.H中定義指向Connection對象的指針和指向Recordset對象的指針。按照面向對象的觀點,對數據表封裝的偽代碼如下:
class 數據表名
{
//數據表中的字段名
//對數據表操作的方法完成查詢、更新、刪除等操作,這些方法中包含建立、斷開連接的語句和要執行的SQL語句
//其他的方法
}
四、結束語
基于面向對象技術的數據庫管理系統的設計使得需求分析者和數據庫設計者之間能夠實現很好的交流,其技術關鍵是面向對象的對象模型及其向數據庫結構的轉化。面向對象的數據模型描述了真實世界的對象,以及對象間的關系和限制,并通過面向對象的數據庫系統加以實現。
參考文獻:
關鍵詞:對象關系數據庫;面向對象;AMOS II
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)34-2016-02
A New Generation of Object-Relational Database: AMOSII
LIU Yan-hong1,2
(1.Nanjing Institute of Industry Technology Information Engineering, Nanjing 210046, China; 2.Nanjing University of Aeronautics and AstronauticsCollege of Information Science and Technology,Nanjing210016,China)
Abstract: Object-relational database can be combined with a single relational database system and a single object-oriented database system. It overcomes their limitations and is a new direction for research and discussion. AMOS II is the latest generation of object-relational database and has powerful object-oriented features. It provides the features and functions that a large number of next-generation database should have. The case of AMOS II fully reflects the advanced nature of the relational database.
Key words: object-relational database; object oriented; AMOS II
1 引言
隨著數據庫技術的發展,原有的數據庫系統很難適應新的應用領域中的復雜對象和這些對象的復雜行為的需求。新的應用需求推動了數據庫技術的研究, 其中最重要的研究方向之一就是使用一種與人們認識客觀事物的過程一致的方法, 這就是面向對象的方法。這種方法大大提高軟件開發的效率。對象關系數據庫是面向對象技術與數據庫技術相結合的產物。
2 對象-關系數據庫
對象關系數據庫兼有關系數據庫和面向對象的數據庫兩方面的特征。即它除了具有原來關系數據庫的種種特點外,還應該提供以下特點:
1) 允許用戶擴充基本數據類型。即允許用戶根據應用需求自己定義數據類型、函數和操作符,而且一經定義,這些新的數據類型、函數和操作符將存放在數據庫管理系統核心中,可供所有用戶公用。
2) 能夠在SQL中支持復雜對象。由多種基本類型或用戶定義的類型構成的對象。能夠支持子類對超類的各種特性的繼承,支持數據繼承和函數繼承,支持多重繼承,支持函數重載。能夠提供功能強大的通用規則系統,而且規則系統與其他的對象-關系能力是集成為一體的。
3 新一代對象關系數據庫的優勢
3.1 傳統的關系數據庫的缺陷
傳統的關系數據庫局限性為:
1) 面向機器的語法數據結構,數據模型單一,數據類型簡單、固定。
2) 不能依據某一類型的數據類型來擴展數據類型。
3) 結構與行為完全分離。
4) 存儲管理的對象有限,事物處理能力較差。
3.2 新一代對象關系數據庫的特征和功能
1) 數據庫應支持復雜的數據類型,并能存儲和處理復雜對象。還要具備支持用戶自定類型和可擴展能力。
2) 數據庫必須對其它系統開放。
3) 系統必須具有可移植性,可連接性,可擴展性和可互操作性。實現程序設計語言和數據庫語言的無縫的集成。
4 AMOS II應用案例分析
AMOS II是最新一代的對象關系數據庫,它充分體現了對象關系數據庫的強大功能。
4.1 學生課程成績查詢案例
有若干學生,學生信息包括學號,姓名,班級。有若干選修課程,課程信息包括課程號,課程名,成績。實現功能:1、通過查詢語句,可以查看所有的學生信息和課程信息。2、輸入學生信息如姓名,可以查看到他所選課程的相關內容。3、輸入課程名稱可以查看到選這門課的學生姓名。4、輸入學生姓名,可以統計出該生選的所有課程名稱和課程數。
4.2 案例設計與分析
1) AMOS II具有面向對象數據庫的特點。
在OODB中, 用類來描述對象的結構特征和行為特征。它有下面的定義形式:
class < 類名> [ (參數表) ]properties
{類的特征}
在本案例中課程和學生類設計如下:
create type kecheng properties(
sid charstring,//課程號//
sname charstring,//課程名//
scoreinteger //期末成績//
);
create type student properties(
tidcharstring,//學生號//
tname charstring,//學生姓名//
banjicharstring //班級//
);
創建kecheng的對象并且賦值用以下命令:
create kecheng(sid, sname,score) instances
:s1("01","Chinese",91),:s2("02","English",90),
…;
創建student的對象并且賦值用以下命令:
create student (tid, tname, banji) instances
:t1("08001","zhangsan","3ban"),
:t2("08002","lisi", "4ban"),
…;
函數設計舉例如下:
create function o_derect(student nonkey)-> as stored;
//輸入參數student類,返回該學生所選課程的元組//
create function sname(kecheng nonkey)->charstring as stored;
create function tname(student nonkey)->charstring as stored;
create function tid(student nonkey)->charstring as stored;
…;
以上定義的源代碼保存在文件lyh.amosql中。AMOSQL類似于SQL語言。例如用下面命令對學生信息進行查詢:
select tin (x), tname(x), from student (x);
在AMOS II中運行并得出結果,如圖1。
這些類、對象、屬性和函數的設計,充分體現了面向對象技術的特點。
2) AMOS II具有強大的可擴充功能。
AMOS II提供的Java函數的接口。在AMOS II中可以調用用戶自定義的Java函數。
本案例用Java語言定義函數tongji()并保存在名為lyh.java的文件中。該函數的功能是接受輸入參數為學生名,輸出該學生所選擇的課程名并統計出課程個數。
為了能在AMOS II調用該函數,需要在javademo.osql文件中添加下面的語句:
create function tongji(charstring)->charstring as foreign "JAVA:lyh/tongji";
運行后如圖2所示。
這充分體現了AMOS II允許用戶根據應用需求自己定義數據類型、函數,具有強大的可擴展功能。
5 總結和展望
綜上,對象―關系數據庫是面向對象技術與數據庫技術相結合的產物。AMOS II是最新的一代對象關系數據庫,具有強大的面向對象的功能。從學生課程成績查詢案例,可以看到AMOS II具有面向對象數據庫的特點,允許用戶根據應用需求自己定義數據類型、函數和操作符,具有強大的可擴展功能,體現了對象關系數據庫的先進性。本文用具體案例介紹了在AMOS II中如何定義類,對象和函數,和如何調用Java自定義函數,實現統計函數的功能。
對象―關系數據庫技術還處于研究發展階段,在很多方面它還面臨很多的挑戰,例如對象―關系數據庫還可以從面向對象數據庫那里吸收養分和研究成果,如路徑索引、對象聚集等。相信對象―關系數據庫有著美好的發展前景。
參考文獻:
[1] 趙志升,許素文,楊小姝.對象――關系數據庫管理系統及其特性與實現[J].電腦開發與應用,2002,15(8):47-48.
[2] 王治.對象―關系數據庫技術及其發展[J].九江師專學報:自然科學版,2003,22(5):86-88.
關鍵詞:面向對象數據庫系統;數據模型;內容管理系統
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)09-2033-04
1 面向對象與面向對象數據庫系統
面向對象(OO)方法的核心思想,是將系統問題域中的實體對象,直接映射為軟件的構成元素。認為客觀世界本來是由許多不同種類的對象構成的,在不同對象之間的相互聯系和相互作用下,才構成完整的事物。
面向對象方法學所引入的對象、方法、消息、類、實例、繼承性、封裝性等重要概念,為軟件開發的分析和設計帶來新的思維過程和方法,對于實現大型的、復雜的系統分析和設計奠定了良好的科學技術基礎。
近年以來,數據庫開發商們都已經在關系數據庫系統中很好地支持了對象到關系表的映射,如Oracle8i 、DB2-5等等。但是,利用面向對象建模技術所建立起來的對象模型,無法直接映射到關系結構中,需要通過某種方法,進行必不可少的轉換。但是更重要的,是概念上的混亂和額外開發負擔所帶來的問題。
面向對象數據庫系統(OODBS)能直接對應面向對象(OO)數據模型,支持自定義的各種數據類型和結構,并提供數據建模基礎上的復雜數據操縱能力,包括:定義專用的控制運算,定義語義關系運算,以及事務管理運算,等等。
OODBS 是持久共享對象庫的管理者;每個對象庫對應模型所定義的對象集合。
2 面向對象數據庫系統的特性
面向對象數據庫系統(OODBS) 賦予數據庫設計和應用開發人員很強的面向對象能力,從而大大擴展了數據庫系統的應用領域,提高了開發人員的工作效率和應用系統的質量。面向對象數據庫系統具有以下特性:
① 具有表示和構造復雜對象的能力。
② 封裝性和信息隱藏技術提供了程序的模塊化機制。
③ 能夠表達繼承和類層次的關系。
④ 一般為原生數據庫,直接使用編程語言操作數據庫,提高程序員開發持久層階段的效率。
3 開源的面向對象的數據庫DB4O
DB4O(Database 4 Object)就是一家來自加州硅谷的開源面向對象數據庫公司 db4objects 設計和實現的一款開源的性能卓越的純面向對象數據庫。目前支持.NET和java兩種編程語言。
db4o主要特性如下:
① 100% 原生的面向對象數據庫。
② 高性能db4o 官方公布的基準測試數據,如表1所示(表中的數值表示相對速度)。db4o 比采用 Hibernate/MySQL 方案在某些測試線路上速度高出 44 倍之多!并且安裝簡單,僅僅需要 400Kb 左右的 .jar 或 .dll 庫文件。
③ 支持多種平臺db4o 支持從 Java 1.1 到 Java 5.0,此外還支持 .NET 、 CompactFramework 、 Mono 等。
④ 開源模式 與其他 ODBMS 不同,db4o 為開源軟件,通過開源社區的力量驅動開發 db4o 產品。
4 J2EE系統的設計
目前比較成熟的WEB應用的模型,即J2EE系統的架構模型——MVC2,MVC+Struts,如圖1所示。
本研究結合面向對象數據庫DB4O的特性和J2EE系統的特性,以內容管理系統CMS(Content Management System)作為實現的載體。
4.1 內容管理系統模塊的設計
根據新聞管理系統的特殊性,分為前臺系統和后臺管理系統。前臺系統的功能模塊如圖2所示。
后臺管理的系統功能模塊如圖3所示。
4.2 內容管理系統數據庫設計
內容管理系統最為主要的數據庫表的設計新聞這張表,其他的表的設計都是圍繞這張表進行,所以整個系統的數據庫表的設計如圖4所示。
所有表的id都由系統生成唯一的標識,User作為News表的user屬性的類型,Type作為News表的type屬性的類型,Comment作為News表的comments屬性的類型,并且comments還是數組類型,這樣能夠很好的體現此系統中每個數據表的對象關系。
4.3 內容管理系統的實現
由于面向對象數據庫DB4O不同于傳統的關系型數據庫,而其中最大的特點是不再有sql語句對數據庫進行操作,所以對于和數據庫交互的開啟、關閉、增、刪、改、查的操作封裝城公用類(BaseDAO)進行相關的操作。而這些對數據庫的操作中最有特點的則是查詢,因為沒有sql語句,所以在此封裝了一個玫舉用于判斷對于某個字段的查詢是相等,相似,大于,小于,還是不相等。查詢操作符的玫舉封裝代碼,如圖5所示。
在查詢操作時就能夠和關系數據庫類似的進行相等、相似、大于、小于、不相等的查詢。生成組合查詢條件的代碼,如圖6所示。
生成組合查詢條件的代碼說明:傳入參數,query為查詢條件的實例,fields為查詢的字段名,values為對應查詢字段具體的值,queryTypes為對應查詢條件的操作類型即相等、相似、大于、小于、不相等之一。Fields,values,queryTypes為相同大小的數組,并且按照數組下標一一對應。
4.4 新聞系統的特殊查詢
新聞系統大部分的操作都是查看最新的新聞,結合DB4O數據庫在執行查詢(client.query())時的一些特性,即每次會取出數據庫中此對象類的所有IDs,此處為所有News對象的ID。所以,單獨對這部分操作進行處理。多個查詢操作在一段短時間訪問getNewsList方法時,在第一個查詢操作還沒有關閉數據庫之前到來的查詢,繼續使用第一個操作查詢打開的連接和得到的數據集合對象(ObjectSet)由此提高性能。
5 結束語
面向對象的數據庫在J2EE系統中的應用,就目前而言應用不是很廣泛,但是就其自身的特性在某一些領域運用面向對象的數據庫可能會起到優化系統,提高性能的作用。目前DB4O是主要用于嵌入式應用開發的數據庫,但是它優良的性能,而且比較優秀的事務管理,同樣能讓其在企業應用中合理的應用能發揮很好的作用。此內容管理系統是把面向對象的數據庫DB4O用于J2EE項目中的一次嘗試,并且取得了不錯的效果。不過是不是適合更復雜的企業應用系統還需要進一步的探索和研究。
參考文獻:
[1] 夏素霞,袁宗福,金立平.OO模型中ODL語言的研究與實現[J].計算機應用與軟件,2005(5).
[2] 王意潔.面向對象數據庫的并行查詢處理與事務管理[M].長沙:國防科技大學出版社,2005.
[3] 徐潔磐.面向對象數據庫系統及其應用[M].北京:科學出版社,2003.
[4] 王珊,薩師煊.數據庫系統概念[M].北京:高等教育出版社,2006.
[5] (印度) Kumar B V, Sangeetha S, Subrahmanya S V.深入淺出J 2 EE架構 應用程序設計與部署的原理[M].北京:清華大學出版社,2006.
[6] (美) Darren Broemmer.J 2 EE應用與實踐技巧 Java設計模式、自動化與性能[M].北京:電子工業出版社,2004.
關鍵字:面向對象數據庫;多媒體數據庫
中圖分類號:TP311.13文獻標識碼:A文章編號:1007-9599 (2010) 10-0000-01
Object-oriented Technology Application in the Multimedia Database
Xiao Ling
(Puyang Vocational and Technical College,Puyang457001,China)
Abstract:With the network technology and the rapid development of multimedia technology,and the growing wealth of multimedia information,object-oriented database management system get concern to the industry in recent years,object-oriented database technology has become a research hotspot.
Keywords:Object-oriented database;Multimedia database
隨著多媒體數據庫的引入,對數據的管理方法也在隨之變革。我們面臨著這樣的問題:如果基本數據不再是字符數值型,將如何檢索圖像、聲音,甚至是視頻數據。隨著技術的不斷更新發展,產生了許多可以對多媒體數據進行管理和使用的技術,例如面向對象數據庫、基于多媒體內容檢索技術、超媒體技術等等。
面向對象數據庫系統(Object Oriented Data Base System,簡稱OODBS)是面向對象程序設計方法與數據庫技術相結合的產物。對于面向對象數據庫系統和OO數據模型的研究主要體現在:研究以關系數據庫和SQL為基礎的擴展關系模型;以面向對象的程序設計語言為基礎,研究持久的程序設計語言,支持OO模型;建立新的面向對象數據庫系統,支持OO數據模型。
一個OO模型是用面向對象觀點來描述現實世界實體(對象)的邏輯組織、對象間限制、聯系等的模型。一系列面向對象核心概念構成了OO模型的基礎。概括起來,OO模型的核心概念有如下一些:
一、對象(Object)與對象標識OID(Object IDentifier)
對象是用來表示或描述問題領域中的事物,世界上任何事物都是對象。對象具有名字標識,稱為對象標識(OID)。并具有自身的功能和狀態。
對象包含三個重要的因素:
(一)屬性:對象的性質,即用來描述和反映對象特征的參數。對象的屬性可以是系統或用戶定義的數據類型,也可以是一個抽象的數據類型。
(二)方法:對象的行為,是定義在對象屬性上的一組操作。實際是將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調用。
(三)事件:響應對象的動作,它發生在用戶與應用程序交互時。
二、類(C1ass)
類是對象的抽象,也是創建對象實例的模板。類是由用戶定義的關于對象的結構和行為的數據類型,包含了創建對象的屬性描述和行為特征的定義。換句話說,將那些具有相同的構造,使用相同的方法,具有相同變量名和變量類型的對象集中在一起形成類。類中的每個對象稱為類的實例。類中所有的對象共享一個公共的定義,而變量的值是各不相同的。
三、封裝(Encapsulation)
封裝是對象和類概念的主要特性,將大部分實現細節隱藏起來的一種機制。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。
也就是說,現實世界可以被描繪成一系列完全封裝、自治的對象,這些對象通過一個受保護的接口訪問其他對象。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限于類的內部,可以最大限度地減少因應用程序修改而帶來的影響。
四、消息(Message)
由于對象是封裝的,對象與外部的通信一般只能通過顯式的消息傳遞,即消息從外部傳送給對象,存取和調用對象中的屬性和方法,在內部執行所要求的操作,操作的結果仍以消息的形式返回。OODB語言用于描述面向對象數據庫模式,說明并操縱類定義與對象實例。OODB語言主要包括對象定義語言(ODL)和對象操縱語言(OML),對象操縱語言中一個重要子集是對象查詢語言(OQL)。OODB語言一般應具備下述功能:
五、類的定義
包括對象的創建和類的創建兩部分。對象的創建是以類為基礎的,面向對象程序設計語言中,一般只提供如數字、字符等最基本的類。大量的復合類需要用戶來創建,創建類需要提供5個方面的信息:類標識、相關屬性組、操作程序組、語義完整的約束條件、可以繼承的類型集。
六、操作/方法的定義
面向對象數據庫語言可用于對象操作/方法的定義與實現。在操作實現中,語言的命令可用于操作對象的局部數據結構。對象模型中的封裝性允許操作/方法由不同程序設計語言來實現,并且隱藏不同程序設計語言實現的事實。
面向對象數據庫的特性有以下兩個方面:
(一)對象的嵌套。在同一個面向對象數據庫模式中,對象的某一屬性可以是一個對象,這樣對象之間就產生一個嵌套的層次結構。對象嵌套概念是面向對象數據庫系統的一個重要概念,它允許不同的用戶采用不同的粒度來觀察對象。對象嵌套層次結構和類層次結構形成了對象橫向和縱向的復雜結構。