论析重点学科管理面向对象数据库设计思想

时间:2022-09-01 02:37:10

论析重点学科管理面向对象数据库设计思想

论文关键词:对象模型;映射;关系范武

论文摘要:充分利用面向对象方法的优点实现数据库的数据一致性、完整性及数据安全性.整个项目使用面向对象的软件工程(00SE)开发方法和数据库用户定义数据库模式的思路(面向对象数据库设计).用户可以使用面向对象的方法定义任何一种DBMS数据库,本项目使用的是SQLServer2000关系数据库.

1引言

目前一般数据库应用系统开发都遵循以下主要开发步骤:

1)根据自己的软件开发平台,结合自己的可行性分析,选择适当的DBMS(如SQL SERVER 2000,ACCESS,ORACLE)和开发工具(如VB,DEPHI,PB).

2)根据面向对象设计出来的数据库模式,编写好定义数据库模式的SQL程序.

3)根据用户的需求分析,编写出能够确保正确的录人数据的用户接口应用程序.

4)根据要求,录人相关的数据库数据.

5)根据用户要求,运行与数据库相关的应用程序,以确认和修正数据库的内容.

本项目由于涉及的表类较多,且表与表之间的关联并不太明显,按照一般的数据库设计方法,在现实世界的实体的属性数在10以内时,宜使用实体主导型设计方法.面向对象的设计方法正是从对象模型出发的,属于实体主导型设计.因此面向对象的设计方法在数据库设计过程中的运用十分值得研究.

2具体步骤分析

2.1 DBMS与开发工具

在数据库管理系统与动态网站的设计中,选择好DBMS与开发工具之前,首先了解系统的需求,系统功能分析在系统开发的总体任务基础上完成.以下是本项目需要完成的功能:

1)有关各种文件申报表信息的输人.

2)在用户权限控制下,能对各种文件申报表信息进行查询.

3)能对各种文件申报表信息修改更新.

4)能实现对文件申报表信息网络上传与下载.

5)能实现对文件申报表在客户端的备份与服务器端的上传功能.

6)能实现对文件申报表进行规范性打印输出.

7)能处理异常情况的发生,如中途掉线的数据处理方法.

对本项目,由于考虑到传统的C/S模式不利于软件的修正与更新,为此我们采用B/S模式,开发工具采用ASP,中间件采用ADO ,FTP , MSMQ.系统示意图见图1.

该项目中,主要选择SQI} SERVER 2000企业版来进行数据库的管理.

2.2对象模型与RDBMS模型的映射

首先建立对象模型.将现实描述的事物抽象为一种直观的动作流程.在建立对象模型时注意以下几点(这里主要针对该项目来介绍):

①尽量减少冗余.如果两个类表达了同样的信息,则保留在此问题域中最富于描述力的名称.

②不过早地考虑怎样实现应用系统相关联的侯选的类与对象.

③尽量保持类的相对独立性.

由于在该项目中所需的表格样式十分明确,关联也较少.可以得出以下项目系统原始对象图(部分)如图2.

2.3对象模型向数据库表的映射规则

由于RDBMS是以二维表为基本的管理单元,最终需要将对象模型转化为表间关系来描述一般的映射规则为:

1)一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类.

2)关系(一对一、一对多、多对多以及三项关系)的映射可能有多种情况,但一般映射为一个表,也可以在对象类表间定义相应的外键.对于条件关系的映射,一个表至少应有3个属性.

例如,在图2中对对象类“学科点基本情况”一览表的映射表,如表1所示。

3)单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性.反之,也可以不定义子类表而让父类拥有全部子类属性.

例如,学科带头人情况作为父类,其它四个对象作为子类则可以让其拥有父类所有属性,如表2—表5所示.

4)对多重继承的超类和子类分别映射表,对多次多重继承的泛化关系也映射一个表.

5)对映射后的库表进行冗余控制调整,使其达到合理的关系范式.

3数据库模式如何服务于应用系统

我们选择面向对象的数据库,是服务于应用系统的需要.本项目最大的工作量就是处理成堆的报表,有效地存取这些报表是该项目数据库设计的关键.由于各院校上传的报表是同构的,我们创建一张库表去存储同一种报表,例如本学科点人员梯队表(我们不能按一个学校一个库表来建).但是当用户想查询某个院校的相关报表时,如何将其从库表中取出数据呢?按照数据库的设计思路就应该有一个主键来标识这张报表.在该项目中的报表里,区别院校学科点的报表靠院校名和学科名.且利用其两字段来查询记录是相当的频繁,因此,如果为每条记录都加上这两个字段,无疑会加大库表冗余,增加查询时间,降低效率,为解决这个问题,我们设计了另一类对象院校学科编号表和流水账号表,结构如表6、表7.

将它们加人由应用对象模型映射出的数据库概念模型后,得到改进的表结构.例如,在图2中对对象类学科点基本情况一览表就可修改成表8.

其它的表也是一样的,只要将字段院校与学科删除,再添加一个流水账号字段就可以了.

每一个应用模块对象对应建立一张流水账号表,同一类的报表属不同流水账号表,由流水账号表统一管理.流水账号表由各院校、系办提交和建立的每一张报表分配一个流水账号,该流水账号在整个数据库中是唯一的,因此在库中存放任何一张报表都是明确的.流水账号的数据类型为CHAR(10),前4位为院校代码,中间的3位为学科代码,后3位为表号,这就是说,流水号就是对象标识符,报表是一个对象,一个对象标识符唯一决定一个对象.流水账号一旦被分配出去后,在这张报表的生存期内就具有了永久不变性.无论报表的内容及结构怎么变化,它都不变,直到报表被删除,流水账号才会消失.流水账号表是父类,报表是子类,流水账号表之间的联系只能通过院校学科编号表,尽管流水账号表会有一些冗余,但利用空间换取时间上的高效在该项目中是值得的.

4小结

在该项目系统设计中,可以说数据库设计的面向对象特征最终奠定了整个系统的面向对象性,才使面向对象方法在程序开发阶段全面开花.其设计效果归纳如下:y数据库结构清晰,便于实现OOP; 2)数据库对象具有独立性,便于维护;3)需求变更时程序与数据库重用率高,修改少。

上一篇:网络营销中的客户信息管理 下一篇:智能仪器仪表的I S P技术与I n te r n et接入