谈数据库技术在CMS中的应用
摘要:本文提出了一个以开发大学课程管理系统(cms)为原型,并把使其运行在windows操作系统为目标的项目。描述了该原型系统如何应用面向对象数据库开发技术来设计和实现的,并对该技术的未来做了个展望和总结。
关键词:cms 数据库技术
1 项目背景的介绍
1.1 课程管理系统 课程管理系统是把所有课程资源在线整合在一起的软件包,学校里的教师和学生都可以通过他提供的界面方便地访问这些资源。课程管理系统又可理解为多种实际的系统理念,如可视化学习环境(virtual learning environments)和学习管理系统(learning management systems)等。但课程管理系统技术并不局限于这些系统理念。下面对这两种系统理念做一个简单介绍:
1.1.1 可视化学习环境 可视化学习环境是一个为方便教师的教学环境的系统。使用可视化教学环境,一个教师能够管理所有的教学课程,方便地跟踪每个学生的学习过程。可视化学习环境
技术发展了许多年,在这个研究过程中,出现了许多系统技术如:综合学习系统(ils)、计算机辅助教学(cai)、基于计算机训练(cbt)、计算机管理教学(cmi)、交互式多媒体教学(imi)、增强技术学习(tel)、基于技术学习(tbl)和基于网页训练(wbt)。这些技术为可视化学习环境提供了许多重要的理念,它们中的大部分至今还在使用。
1.1.2 学习管理系统 学习管理系统是一个使教师管理所有的课程内容并能将之传递给学生的一个软件包。大部分的学习管理系统是基于网页的,教师和学生可以在任何时间任何地点访问和管理课程内容。在许多场合,学习管理系统就被称为课程管理系统,课程管理系统增强了课程管理方面的功能,学习管理系统则适合任何计算机辅助教学领域。
1.2 面向对象数据库(oodb) 课程管理系统最主要的功能是管理相关的课程信息。这些课程信息包括学生和教师的档案记录,课程内容和课程所用到的资料。这些信息都是需要数据库来存储和管理的。数据库在一个信息管理系统中是最重要的组成部分。一个数据库是一个种存储和读取文件信息的方法。就目前市场上来说,有两种最主要的数据库系统:面向对象的数据库(relational databases)和面向对象数据库(object oriented database)。
2 项目要求描述
2.1 项目要求 此项目的目的是设计一个高校课程管理系统,具有标准课程管理系统的所有功能。为了实现这个系统,有必要了解一下什么是课程管理系统。
2.2 课程管理系统的要求 一个课程管理系统能够组织和管理相关的课程信息。它主要有三类主要的用户:系统管理员、教师和学生。系统管理员能够修改所有相关的课程信息。教师能够修改课程和学生信息。学生能够浏览和下载课程信息。
2.3 系统操作 为了成功的管理和处理课程信息,一整套的操作被定义出来处理所有的数据库记录和结构。因为该系统有三种类型的用户,系统的操作应该被分成三层:系统管理员层,教师层和学生层。
2.4 数据库管理系统要求 该系统的数据库管理系统应该符合面向对象的要求。也就是说它能够快速可靠地将对象直接存储进去,并且可以根据需要来配置这些对象。这个数据库管理系统必须满足面向对象数据库系统的所有工业标准。就像项目背景介绍所提到的,db4o 完全符合这个要求,而且它的设置也十分灵活。
2.5 开发语言要求 选择发开语言的标准主要考虑到面向对象的设计要求。因为这个系统的许
多操作都是要求面向对象的,同时能对面向对象数据库可以高层的控制。目前有许多流行的编程语言都符合这些要求如c++javac# 等。由于我们上面了选择了db4o 作为我们的数据库管理系统,而javadb4o非常有效,减少许多对数据库里面对象操作的工作量。另外,javasun公司提供的一种免费开发软件。
3 项目设计
目前为止,有若干种成熟的设计方法可供使用,包括结构化系统分析和设计方法;面向对象设计方法和至顶向下或至底向上设计方法。对于这个采用面向对象数据库系统用面向对象开发语言java开发的系统来说,面向对象设计方法当然是最合适的,系统设计将用统一建模语言(uml)来说明。
3.1 数据库组件的设计 课程管理系统是一个信息管理系统,因此数据库的设计是最重要和最关键的。对于信息管理系统来说如何来组织数据库结构来存储所有的相关信息。首先让我们来看看关系数据库设计方法。关系数据库设计方法是将所有有用的信息收集起来放到不同的表单中,每一个表单表示一个系统中实体,每个实体的属性用表单中的字段表示。另外还有一些关系表单用来表示实体间的关联。
3.2 设计系统管理员组件 系统管理员组件是这个系统中最大的一个设计开发部分,它包含六个子组件,由于篇幅限制和存在的雷同,本文笔者介绍其中两个有代表性的子组件设计:管理员身份验证组件和部门信息管理组件,其它的组件设计序列图可参考附录一。
3.2.1 管理员身份验证组件 这个组件需要完成管理员名称(userid)和密码(password)的验证工作。它的原理是利用数据库管理系统db4o的数据库引擎: db对象。db对象将检查从教师对象(teacher)导入的登录信息。如果登录信息是有效的,用户(生活中数据库系统的实际例子user)将进入管理员的主窗口(mf),否则一个出错信息框将被弹出。
3.2.2 部门信息管理组件 部门信息存储在db4o 数据库文件的department 对象中,该组件完成部门信息的添加、修改和删除工作。需要说明的是,db4o 数据库管理系统有一个删除功能叫层叠删除(cascade deleting),这意味着当删除数据库中一个对象,所有属于这个对象的对象将被一起删除。举个例子来说,部门对象包含教师对象和课程对象,它们组成一个层叠结构。当一个部门被删除后,所有属于这个部门的教师和课程也将一起被删除(如果一个专业系不存在了,这个系的教师和课程也失去存在的意义了)。
4 项目实现
上面我们概括了这个系统的设计,现在要做的工作就是把这个设计转成具体代码实现。本文重点介绍关于面向对象数据库的两种重要代码实现:数据库文件创建和对象查询。
4.1 数据库文件创建实现 db4o系统中,数据库文件由db4o的数据库引擎来创建。db4o的数据库文件默认扩展名为.yap(如文件名auto.yap)。先将这个名字写入db4o 的系统配置文件driver.properties 中,这样当管理启动时,数据库引擎将数据库文件读入系统一个字符变量(databasename)。
4.2 数据库对象查询的实现 db4o 提供了三种查询方式来查库中存储的对象:实例查询(qbe)、本地查询(nq)和苏打查询(soda query)。应客户的要求,db4o还将增加一种标准的sql-92界面的查询方式。本系统采用的是本地查询。本地查询是db4o版本5以上提供得一种查询,和其它几种查询不同的是本地查询不需要专门的api函数,而是用开发语言自身来访问和查询数据库,避免了调用api产生的效率打折问题。而且它是百分之百的类型安全和面向对象的。