基于面相对象技术的数据库管理系统设计摘要:基于面向对象技术的数据库管理系统是当今软件界研究的一个热点,面向对象的提出术语“对象”意味着一个“数据”和“程序”的联合体。面向对象技术作为一种非常实用和强有力的软件开发方法,已被广泛地应用于软件开发的各个阶段,为软件开发提供更容易理解的需求说明、更清楚的设计和更容易维护的系统。基于面向对象技术的数据库管理系统,可以使需求分析者和数据库设计者对应用理解达成高度一致。新一代、功能更强的数据库管理系统即面向对象数据库管理系统(ODBMS),为许多高技术领域应用所需要。本文结合实例就系统设计中的关键技术面向对象数据模型进行深入探讨,以教务管理数据库为例,并提出了面向对象数据模型向数据库结构转换的策略。关键词:数据库管理系统;面向对象;面向对象数据模型;1数据库管理系统组成部分按功能划分数据库管理系统可分为以下几个部分:⑴模式翻译:提供数据定义语言(ddl)把它书写的数据库模式的翻译作为内部表示数据库的逻辑结构、完整性约束和物理储存结构在内部数据字典都有保存。数据库的各种数据操作(如查找、修改、插入和删除等)和数据库的维护管理的依据是数据库模式。⑵交互式查询:交互式查询语言在此被提供。⑶应用程序的编译:把应用程序(包含着访问数据库语句的)编译成目标程序(在DBMS支持下可运行的)。⑷事务运行管理:事务的运行管理及运行日志、监控事务运行的安全性和检查数据完整性、事务的并发控制及系统恢复等功能在此提供。⑸数据的组织与存取:数据在外围储存设备上的物理组织与存取方法的数据在此提供。⑹数据库的维护:提供数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具并且为数据库管理员提供软件支持。2数据库管理系统的层次结构数据库管理系统的层次结构根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。⑴应用层应用层DBMS与终端用户和应用程序的界面层,处理的对象是各种各样的数据库应用。⑵语言翻译处理层语言翻译处理层是对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查等。⑶数据存取层数据存取层处理的对象是单个元组,它将上层的集合操作转换为单记录操作。⑷数据存储层数据存储层处理的对象是数据页和系统缓冲区。⑸操作系统操作系统是DBMS的基础。操作系统提供的存取原语和基本的存取方法通常是作为和DBMS存储层的接口。3面向对象的系统分析与数据库模型建立常用的系统分析方法有结构化法、快速原型法和面向对象法。结构化法的基本特点是面向过程,系统被分解成若干个过程;原型法是通过一个原型化的设计环境,迅速建立起原型系统;面向对象的分析方法则是尽可能模拟人类的习惯思维,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,用面向对象的信息建立模型概念,如实体、关系、属性等,同时运用封装、继承、多态等机制来构造模拟现实系统。面向对象的系统分析是建立面向对象的数据模型(OO模型),有下列几个步骤[2]:1)确定问题域和系统边界;2)识别对象类和关联;3)添加对象类和关联的属性;4)利用适当的继承关系进一步合并和组织对象类(数据的泛化/细化);5)识别作用于每个对象的方法;6)确定每个对象的事件。确定问题域和系统边界是系统分析和系统建模的出发点,分析阶段先确定问题域和系统的边界。如教务信息管理的问题域集中在教学计划管理、学生学籍管理、成绩管理、考勤管理、排课管理等几个方面。在确定的问题域中建立对象类,一般的管理通常包含了若干个岗位、部门和各种报表,研究这些元素后列出所有可能的对象,通过筛选去除无用对象。按上述方法对教务管理建立对象类,可选出专业、班级、学生、教师、教学计划、排课、成绩表、异动情况、考勤、奖惩等若干个对象类。确定两个或多个对象之间的相互依赖、相互作用的关系,即关联。通过分析关联,能发现问题域边缘的情况,有助于发现未被发现的对象类。为每个对象类和关联确定属性,在确定属性时不应超出问题域范围,也不能用属性表示对象类之间的关系,因为关联已经清楚地表示了对象类之间的关系。例如确定学生对象类有学号、姓名、性别、年龄等属性;选课对象类有学生、课程、考试成绩、选课学期等属性。利用适当的继承关系合并和组织对象类是很重要的步骤,面向对象软件技术的许多强有力的功能和突出优点都来自于把类组成一个层次结构的系统,一个类的上层可以有父层,下层可以有子类,这种层次结构系统的一个重要性质是类的继承性。例如教师与学生两个对象有很多相同的属性与方法,可以合并成超类,通过继承的方式派生这两个子类;学生对象类再可以派生出普通生、函授生两个子类,普通生对象类再派生出普通本科生、高职生两类。函授生对象类再可以派生出专科、专生本两个子类。类的继承性使相的对象共享程序代码和数据结构,从而大大减少了程序中的冗余信息。在划分了各对象类后,可以为每个对象类建立方法,再确定对象类的事件。事件是某个特定时刻所发生的事情。例如学生对象类有入学事件、退学事件和毕业事件,还有被处分事件等。在某个事件里,可以写处理程序,在程序中调用各对象的方法,设置各对象的属性。在对象模型建立完成后,需要向数据库概念模型映射,这是对象模型向关系数据库表的变换过程。其规则如下:1)对面向对象数据模型中的一个对象类可以映射为一个以上的表,属性将映射成表中的列;2)对面向对象数据模型中的联系(一对一、一对多、多对多以及三项关系)的映射一般为一个表,也可以在对象类表间定义相应的外键;3)对面向对象数据模型中继承机制的映射,可以实现为关系数据库中的父类表和子类表、子类表视图及相应的触发器;4)对面向对象数据模型中的方法,可实现为关系数据库中的相关的函数、过程或包。面向对象的设计方法可以把一个数据库看成互相关联的复杂对象的集合。面向对象的数据模型自然且直接地模拟现实世界的实体关系,大大减轻了程序实现应用的难度,即使需求变更时,程序与数据库重用率高,修改少,因为对象是模块化的,任何对象都可以内部发生变化,而不影响外部的其他编码。4系统总体设计及开发环境选择教务管理系统既要满足教务管理用户集中、大量处理数据的要求,又要满足学生最大范围地使用该系,故采用C/S结构与B/S结构相结合的体系结构最为合适系统主模块构成。一个客户/服务器体系结构的DBMS,如ORACLE8i能够将分布在不同区域的服务器组成一个分布式数据库管理系统,服务器为客户机提供透明的分布式数据处理的功能。用户可以选定任何一个服务器作为代理服务器,通过客户机向代理服务器发出服务请求,代理服务器负责所有的数据处理:查询、更新、死锁检测及排除,分布式事务处理,分布数据一致性维护,分布式故障恢复等一系列问题。Oracle8i是对象-关系数据库的一个实现,其基础是关系数据库,但引入了面向对象的技术,能够象处理关系型数据那样存储和检索对象数据,同时提供了一致性事务控制、安全备份和恢复、优化的查询性能、锁定和同步和可缩放性等功能,将对象和关系型模型合二为一可以实现关系型数据库的强大功能和对象的灵活性及可模型化功能。客户端的开发选用PB(PowerBuilder),PB是基于客户/服务器体系结构的一种快速原型法数据库开发工具,是对象-关系数据库管理系统(ORDBMS)最优秀开发平台的代表,而且其独特的数据窗口专利技术,成功地实现了数据库视图操作的非过程性。基于Web数据库访问的开发工具选用微软的ASP(ActiveServerPages)。ASP是服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于We的功能强大的应用程序。对数据库的操作主要是通过ADO(ActivexDatabaseObject)来实现,ADO对象模型为开发者提供了一种访问数据源的快速且功能强大的方法。4.1客户端模块教务系统的客户端主要完成日常教务工作,即数据收集与简单处理。从学生入学开始到毕业离校,其在学校内的所有和教务相关的数据都通过教务系统进行管理。系统由公共信息维护模块完成对整个教务系统所需的公共数据的维护,如各种代码、教室、教师资源信息等。教学管理客户端模块主要教学计划管理、排课系统、学生学籍管理、考勤管理、奖惩管理、成绩管理、统计查询和报表打印等。4.2服务器端功能模块服务器端的功能主要有监视系统运行状态、用户管理、用户权限设置和数据库维护。为保证系统的安全,可对使用系统的用户动态地设置使用的权限,分超级用户、高级用户和普通用户,每个用户都有一个经过加密存储的口令。对数据库的备份与恢复,一般设置一个时间自动备份到指定的位置。4.3Web查询功能模块通过Internet在任何时间和地点可以查询或下载用户所需的信息,如学生通过Internet可以查询教学计划,根据选择的学号或班级查询单个学生或整个班级的所有的课程信息,可以下载或打印。5结束语本文探讨了面向对象数据模型信息管理系统的结构设计和信息管理系统实现技术。系统设计采用面向对象数据模型,数据库结构采用对象-关系数据库。结合一个典型的教务信息管理系统实例说明,这一技术易于实现基于C/S和B/S结构的系统功能,并且易于维护、修改和功能扩充。参考文献[1]徐红梅.数据库管理系统及其发展趋势[J].微型机与应用.2006;(10):11-13[2]萨师煊,王珊.数据库系统导论[M].北京:高等教育出版社.2004;21-37[3]蔡立军,翟亮.Oracle9关系数据库适用教程[M].中国水电出版社.2004;25-41[4]王珊等数据库基础与应用人民邮电出版社2002:(12~26)[5]魏茂喜等事务管理器的事务恢复处理,2004:(14~16)[6]刘云生.现代数据库技术.国防工业出版社.2008.[7]深圳中兴通讯股份有限公司.3G平台数据库子系统设计方案.[8]陈幼均;实时库系统的并发控制策略及其实现;华中理工大学学报;[9]李也白,范春晓.面向对象数据库[M].北京:高等教育出版社,1998[10]JeffreyD,Ullman,JenniferW.数据库系统基础教程[M].史嘉权译.北京:清华大学出版社,2000