摘 要:关系数据库在业界深远的影响。但随着软件的设计越来越复杂,当前以数据库设计为中心的数据库应用系统的开发已经难以适应需求,设计出来的系统难以维护和升级。基于面向对象的分析和设计的特点正好可以解决这方面的问题。本文将面向对象的思想如何与传统的数据库开发结合起来,可以思路更清晰的来分析和设计相关领域的应用系统。
关键词:面向对象;数据库开发;编程;计算机应用;信息系统
引言
当前关于数据库的应用系统,最主要的就是两层的结构,把关系数据库既作为存储机制,又作为管理工具。这样的系统最主要的设计就是数据库的设计,可以说实体及关联的设计与修改就是整个应用系统的开发过程。但是如果客户变动需求或者设计人员根本就没有搞清楚最主要的需求是什么,那么设计的程序将是难于使用的,一个微小的变动却使得设计者不得不大量的改变原码或推翻重做。关系数据库无法适应频繁变动的需求。这里应用新的方法去模拟难以捉摸的现实需求。
1 关系数据库的优势
当前用于存储数据的持久机制主要有文件系统、数据库系统(按数据模型分为层次型、关系型、网状型)。可以采用文件或电子表格存储数据,但运行业务时具有很大的局限性。对于非专业人士,尝试维护和管理分散的企业中的信息孤岛会遇到数据访问和准确性问题。性能(尤其是在客户需求的高峰时段)可能会降低至暂停状态。
关系数据库在这些方面强大得多,尤其在分析方面。关系数据库使能够以复杂、有意义的方式操作数据,从而可以检索到与特定条件相匹配的所有记录,交叉引用不同的表以及批量更新记录。在以下情况下,关系数据库是最好的选择:要输入(并经常更改)分散在业务中不同计算机上的多个电子表格或其他文件中的信息;数据(以及访问数据的用户数量)不断增加或更加难以使用、管理、保护,还会遇到性能问题;基于数据生成特定或常规报表以进行决策制定,但无法始终确保数据的准确、完整性。
2 数据库开发的对象思想
面向对象的理念是自发的,源自天然的。所以面向对象技术被设计得最遵循思维的自然方式。也就是说,用到的符号,术语,定义和每个人都相关。基于面向对象的分析和设计技术的这些特点,客户可以从始至终参与到系统的分析中去,参与到系统的设计。由于在讨论对象之间的交互作用时,大家使用同样的术语概念。客户还可以参与文档的创建和编写,因为他明确已有对象的含义。这样分析出来的设计绝对是符合需求易于客户使用及管理的。
另外加上面向对象技术方面的继承等技术,使得应用系统的的升级变的轻松。当今计算机硬件的飞速发展使得由于使用面向对象技术带来的速度效率问题变得越来越没那么重要了,而各个行业对于计算机的使用使得软件越来越复杂,清晰的分析和设计条理变成了更主要的问题,而面向对象是非常适合解决这个问题的。
3 应用面向对象的数据库开发
(1)系统分层 在数据库和客户端加入一个中间层,在这一层添加业务层和数据访问层,数据访问层与数据库交互为业务层提供数据服务。业务层为客户层提供经过分析及过滤筛选之后的对象及对象集合。
(2)面向对象分析和设计 分析需求中可能存在的潜在对象:对象是一个真实或抽象的元素项,它包含信息(即对象的属性)和处理对象的方法。任何对象都可包含其他对象,这些对象又可包含其他对象,直到系统中最基本的对象被揭示出来。仔细阅读需求说明书并在所有名词下画线,寻找于系统中的其他对象交互的实物,人员,地点、文件。寻找对象的属性及对象之间的关系:通过需求找出潜在的对象之后就是分析对象的关系及某个对象(类)应该具有的属性,面向对象的分析与设计的本质是我们用自然的观点去看待一个应用系统的实现。
(3)行数据库设计 要用面向对象思想进行数据库设计,因此应该选择实体主导型设计方法:设计应用系统结构;选择便于将应用程序与 DBMS 结合的DBMS体系结构,如RDBMS;根据应用程序使用的环境平台,选择适宜的DBMS(如Oracle)和开发工具(如PB)设计数据库,编写定义数据库模式的SQL程序;编写确保数据正确录入数据库的用户接口应用程序;录入数据库数据;运行各种与数据库相关的应用程序,以确认和修正数据库的内容。
用数据库作为应用系统中对象的持久机制,而对象之间的关系也就是相对于数据库设计部分的实体之间的关系,应该由应用系统的对象协调处理。就是把需求逻辑留在业务层去处理。
4 应用实例
4.1系统构想
设想这个是校园学生信息MIS系统。该MIS系统有几种验证方法,一、通过使用的代理和选择的学校。如果其代理在其学习的代理IP段的话,就认为是在宿舍上网,可认为是学生,将自动通过注册请求,系统发激活邮件;二、不符合第一种情况的话,看选择的注册方式如果是使用IP电话的话去根据选择的学校看填写的IP电话是否符合所在学校的IP段,如果符合的话,系统发激活邮件;三、选择学校邮箱注册,根据选择的学校和他填写的邮箱,如果域名符合就认为注册人为合法学生,系统发激活邮件;四、选择其他方式,通过人工方法去确认注册者的合法性。
以上是用户注册的过程,注册成功后,用户通过激活账户的链接,激活自己的账户,然后登陆,登陆成功后就可以使用注册用户可以使用的所有功能。管理员除可以拥有所有注册用户可以使用的功能外,还可添加学校宿舍及课程信息;编辑学校所在的IP段,查看所有用户的状态,进行活动管理,即添加、编辑活动,设定活动规则。
应用系统需要响应用户的操作;另应用系统还需要给出各种各样的排行;需要按照规则确定活动的获奖者等;需要记录用户的操作,以确定用户的积分;给登陆用户提示是否有人邀请成为朋友,是否有新的信件,是否有组织邀请加入;系统需要维护组织和组织成员之间的关系,即每个组织都有一些成员(合法用户分创建人、管理员和普通成员),创建人可以提升普通人员为管理员。
4.2数据库设计
这里对于设计数据库、处理与数据库的交互,需要从静态类图中设计到的对象分析出要持久化的对象,关系数据库在这里只是一个存储机制,不过用面向对象的思想设计的数据库是应用系统能够面向对象的基础。从系统组成得知需要存储注册用户的信息、博客的文章、博客和用户间的拥有关系、相册信息及照片信息、讨论主题、帖子信息、组织信息、学校信息等。这里就不给出数据库设计的示例了,需要注意的是尽量应用对象之间的关系由类去处理即关联关系留在业务逻辑层处理,数据库专著于存储当然某些关联关系还是应该存储下来的,否则业务类也无从处理。在设计业务逻辑层时,将同一类的对象抽象封装为一个类。
用ownertype去存该comment是对什么对象进行的评论,而ownerID确定下来被评论对象的id。然后建立两个(或者更多视需求而定)视图,在加载评论时就可以直接从视图blog article comments中直接选择。当然在添加评论的操作是放在拥有他的类的方法中的。因此,就可以比较容易得到其拥有着的类型。
4.3数据库部署
整个系统分为三层,客户层、业务逻辑层及数据访问层,选择SqlServer2000作为数据库。项目使用作为开发平台,用c#作为开发语言,相应的使用IIS6.0作为WEB服务器。
本系统的两种角色注册用户和管理员用户的问题,在上面的类结构设计时,我让管理员继承的注册用户类,这样管理员就自然的拥有注册用户可以使用的所有权限,而它本身还可以拥有自己的权限,对学校的管理,对宿舍、专业及注册用户的管理。在页面类设计时采用这样的设计来确保使用页面的权限问题。设计三个类BasePage、BasePageForLogin、BasePageForAdmin,这三个类都继承自重载了Render方法,这样就可以为同一级别的页面(是指只能被某一级别用户浏览的一系列页面)绘制相同的导航条,使页面的风格统一化;BasePage类来作为未注册用户可以浏览的页面的基类, BasePageForLogin类作为只有注册用户才可以浏览页面的基类,BasePageForAdmin类作为只有管理员才可以浏览页面的基类。然后就可以在这些类的render方法中进行统一的权限设置及出错管理。
参考文献:
.高等教育现版社,2004年
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。