首页 实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现

实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现

举报
开通vip

实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现 苏州科技学院本科生毕业设计(论文) 实验小学教学管理系统的设计与实现——后 台数据库系统的设计与实现 摘 要 制定一个学校的排课计划是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好。在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘,即便你的输入数据量并不是实际意义上的大批量。 课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和...

实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现
实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现 苏州科技学院本科生毕业设计(论文) 实验小学教学管理系统的设计与实现——后 台数据库系统的设计与实现 摘 要 制定一个学校的排课 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好。在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘,即便你的输入数据量并不是实际意义上的大批量。 课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动课程编排系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 关键字 排课;程序开发;数据库 1 苏州科技学院本科生毕业设计(论文) Experimental Primary School Teaching Management System Design and Implementation——Design and Implementation of back-end Database System Abstract Formulates a school platoon class plan is an item consumes extremely when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a difficult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity is not in the practical significance mass. The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this management way has many shortcomings, For example: The efficiency low, the secrecy is bad, Moreover the time one is long, Will produce the massive documents and the data, This regarding the search, the renewal and the maintenance has all brought many difficulties. Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable function had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role. 2 苏州科技学院本科生毕业设计(论文) Keywords Course arrangement; Program development; DataBase 3 苏州科技学院本科生毕业设计(论文) 目 录 第一章 引言........................................................ 1 1.1 选题背景和意义 .............................................. 1 1.2 国内外研究现状 .............................................. 2 1.3 本次设计所做的工作 .......................................... 3 1.4 本文的组织结构 .............................................. 3 第二章 开发环境及技术介绍.......................................... 4 2.1 JSP简介..................................................... 4 2.2 Tomcat简介.................................................. 5 2.3 数据库设计技术介绍 .......................................... 5 2.3.1 定义................................................... 5 2.3.2 数据库设计方法简述..................................... 6 2.3.3 设计步骤............................................... 6 2.3.4 各级模式的形成过程..................................... 8 第三章 项目可行性分析.............................................. 9 3.1 技术可行性 .................................................. 9 3.2 经济可行性 .................................................. 9 3.3 操作可行性 .................................................. 9 3.4 维护可行性 ................................................. 10 第四章 需求分析................................................... 11 4.1 系统的基本功能 ............................................. 11 4.2 排课的约束条件 ............................................. 11 4.3 需求模型 ................................................... 12 4.3.1 初使用列图............................................ 12 4.3.2 最后用例图............................................ 13 4.3.3 用例描述.............................................. 14 4.4 分析模型 ................................................... 15 4.4.1 分析阶段类图.......................................... 15 III 苏州科技学院本科生毕业设计(论文) 4.4.2 实体类关系图.......................................... 16 4.4.3 序列图/协作图创建.................................... 17 4.5 设计模型 ................................................... 19 4.5.1 组件图................................................ 19 4.5.2 配置图................................................ 19 第五章 排课算法分析与设计......................................... 21 5.1 背景与研究意义 ............................................. 21 5.2 解决NP问题的几种算法及其比较 .............................. 22 5.2.1 动态规划.............................................. 22 5.2.2 贪心算法.............................................. 22 5.2.3 回溯法................................................ 23 5.3 排课系统流程分析 ........................................... 23 5.3.1 整理课程信息.......................................... 24 5.3.2 按等级分类............................................ 24 5.3.3 获取可安排的教室...................................... 24 5.3.4 排课.................................................. 24 5.3.5 生成课表.............................................. 24 5.4算法分析.................................................... 24 5.4.1 问题的描述............................................ 24 5.4.2 排课约束条件.......................................... 25 5.5 算法设计 ................................................... 25 第六章 系统概要设计............................................... 28 6.1 设计思想 ................................................... 28 6.2 系统功能模块划分 ........................................... 29 6.3 数据库设计 ................................................. 29 第七章 详细设计................................................... 30 7.1 登录模块设计 ............................................... 30 7.2 主界面及课表生成设计 ....................................... 30 7.2.1 班级管理设计.......................................... 30 IV 苏州科技学院本科生毕业设计(论文) 7.2.2 班级课程处理设计...................................... 31 7.2.3 课表生成部分设计...................................... 32 7.2.4 报表输出功能设计..................................... 33 7.2.5 系统调课功能设计...................................... 34 7.3 数据库详细设计 ............................................. 35 7.3.1 设计分析.............................................. 35 7.3.2 数据表设计............................................ 37 7.4 主要界面实现 ............................................... 40 7.4.1 登录页面.............................................. 40 7.4.2 教学任务信息管理页.................................... 41 7.4.3 教师信息管理页........................................ 41 7.4.4 班级信息管理页....................................... 42 7.4.5 课程信息管理页........................................ 42 7.4.6 专业教室信息管理页................................... 43 7.4.7 课时数信息管理页...................................... 44 7.4.8 排课管理页........................................... 44 7.4.9 总课表查询页......................................... 45 7.4.10 教师课表查询页...................................... 45 7.4.11 班级课表查询页...................................... 46 7.4.12 调课页.............................................. 47 第八章 测试报告................................................... 48 8.1 测试方案 .................................................. 48 8.2 测试项目 .................................................. 48 8.3 主要测试用例 .............................................. 48 8.4 测试进度 .................................................. 51 8.5 测试方法 .................................................. 52 8.6 测试结果分析 .............................................. 52 8.6.1 测试的局限性......................................... 52 8.6.2 评价测试结果的准则................................... 52 V 苏州科技学院本科生毕业设计(论文) 8.7 系统的优点及技术特征 ...................................... 53 8.8 系统的不足及改进方案 ...................................... 53 8.9 系统的运行与维护 .......................................... 53 结 论............................................................. 54 致 谢............................................................. 56 参 考 文 献........................................................ 57 附录A 译文 ........................................................ 59 附录A 外文原文 ................................................... 70 VI 苏州科技学院本科生毕业设计(论文) 第一章 引言 1.1 选题背景和意义 随着信息技术的飞速发展,各个行业的信息化势在必行。科技的进步大大地提高了生产率。作为高校,如何才能提高办学效率,更好地完成教学任务,跟上社会发展步伐,这是一个摆在教学工作者面前的一个迫切的问题。应用信息化来改造传统的教学管理模式是一个重要途径。 近几年来,随着各高校办公自动化工作的推进,教务管理自动化也被摆上了日程。在教务工作中占有很大比重的一项就是每学期的课程表排定工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问题。而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长。 在实际的应用中,很多研究者都提出了各种解决排课问题的方法,由于排课问题的复杂性,还没有找到有效的算法能获得NP完全问题的最优解。因此,如何运用近似算法和新的软件技术来降低排课问题的计算复杂度,仍然是颇具挑战性的研究方向。 排课管理系统是利用数据库管理系统开发的一种应用系统,其开发主要包括数据库的建立,充分满足正常的题库管理的前提下,提供了多角度的题库信息查询和题库信息分析报表,使学校管理人员可以随时掌握学校的排课情况,进一步指导学校的教学。真正实现了业务一体化,为学校全方位的信息化管理奠定了基础。 传统的人工排课使用手工操作存在许多弊端,如重复劳动严重、效率低下、且不能达到资源的最优化配置等,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。最令人担心的问题就是——出现教室资源冲突或教师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学校园进行排课时出现的问题更多。当前高校教务管理所涉及到的信息资料数量大、类型多,还 1 苏州科技学院本科生毕业设计(论文) 可能带有大量的统计输出,同时学校规模的不断扩大和招生人数的逐年攀升导致传统的排棵手段已无法满足现代化管理的要求。 在教学计划的不断完善和各高校校园网建立的大背景下,设计满足高校教务要求的排课系统显得十分必要。而据了解,排课管理是高校教务处重复性比较强且急需得到解决的工作, 且排课系统有安全性要求高、交互性强、处理数据量大等人工难以实现的特点。 因此设计一个基于校园网络的人工智能化且操作简便的排课系统是高校教务管理信息系统实现的首要条件,同时也是一大难点,因为排课管理要求综合考虑教师、课程、班级、教室、时间等诸方面的因素,统筹兼顾,使课表既符合教学规律,又能够充分利用现有资源使其最大限度地发挥作用。 1.2 国内外研究现状 早在20世纪50年代末,国外就有人开始研究课表编排问题。1963年,Gotlieb曾提出一个课表问题的数学模型,但由于排课问题易受实际问题的影响,求解结果也不理想。20世纪70年代,美国人S.Even等就证明了排课问题是一个NP完全问题,其算法的时间复杂度呈指数增长。S.Even的论证正式确立了排课问题的学术地位,把人们对排课问题的认识提高到了理论高度。此外,有些文献试图从图论的角度来求解课表问题,但是图的染色体问题也是NP完全问题,只有在极为简单的情况下才可以将课表编排转化为二部图匹配问题。 在国内,在20世纪80年代初期,国内学者开始用从模拟手工排课,也有人工智能构建的专家系统等等,具有代表性的有:南京工学院的UTSS(A University Timetable Seheduling System)系统,大连理工大学的智能教学组织管理与课程调度系统等。这些系统大都是模拟手工排课过程,以“班”为单位,运用启发式函数来进行编排的。但是这些课表编排系统往往依赖于各个学校的教学体制,不宜于进行大量推广。 2 苏州科技学院本科生毕业设计(论文) 1.3 本次设计所做的工作 本次毕业设计过程当中,本人主要负责实验小学教学管理系统的排课算法的分析与设计和后台数据库设计2大块内容。在下面的各章中将具体谈到本人所负责的各个环节的具体设计和实现过程。 1.4 本文的组织结构 本文对小学排课系统软件进行了原理和技术上的讨论,详细描述了该系统的设计思路和方法,在此基础上开发了可以实际使用的应用软件。本文包括内容如下: 引言:描述了系统开发的背景和意义,简单介绍了系统的主要功能,并与传统的语音信箱进行了比较。 开发环境:简要的讲述了本次系统中所采用的环境和技术。 项目可行性:从4个方面论证了本次项目的可实施性。 需求分析:利用面向对象的分析方法,建立各种环境下的用例模型,描绘出系统的功能、性能和其它需求。 系统设计:使用面向对象的设计方法,在需求分析确定的模型基础上,设计出软件的逻辑模型、软件各组成部分间的内在结构及实现方法。这一过程分为概要设计、数据库设计和详细设计三部分。 系统实现:论述了系统各功能模块的实现方法。 测试报告:对开发完成的软件进行测试分析。 结论:总结本软件的特点,展望系统未来的发展方向。 3 苏州科技学院本科生毕业设计(论文) 第二章 开发环境及技术介绍 2.1 JSP简介 JSP应用程序不同于其他语言开发的单一性程序。使用Jsp编程时,必须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写代码控制这些事件的响应方法。 使用JSP开发数据库应用程序的一般步骤如下所示: (1) 建立数据库 (2) 建立用户界面 (3) 编写代码 (4) 调试运行 (5) 编译应用程序 (6) 发布应用程序 界面设计: (1) 控件的位置 (2) 界面元素的一致性 (3) 保持界面的简明 (4) 使用颜色和图像:增加视觉的感染力 (5) 图像和图标:增加应用程序的视觉上的趣味 (6) 选取字体 JSP应用程序的结构: 由于JSP应用程序是基于对象的,所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕上看到的窗体代 14,,表属性,这些属性定义了窗体的外观和内在特性。 4 苏州科技学院本科生毕业设计(论文) 2.2 Tomcat简介 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的 Tomcat 是一个小型的轻量级应用服务器,在本系统中当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat具有处理HTML页面的功能,同时它还是一个 16,,Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式 2.3 数据库设计技术介绍 2.3.1 定义 数据库设计 (Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库系统需要操作系统的支持。 数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。 5 苏州科技学院本科生毕业设计(论文) 2.3.2 数据库设计方法简述 1 手工试凑法 设计质量与设计人员的经验和水平有直接关系 缺乏科学理论和工程方法的支持,工程的质量难以保证 数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价 2 规范设计法 基本思想:过程迭代和逐步求精 典型方法: (1)新奥尔良(New Orleans)方法:将数据库设计分为四个阶段 S.B.Yao方法:将数据库设计分为五个步骤 I.R.Palmer方法:把数据库设计当成一步接一步的过程 (2)计算机辅助设计 ORACLE Designer 2000 SYBASE PowerDesigner 2.3.3 设计步骤 1需求分析 调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。 2概念设计 对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各 6 苏州科技学院本科生毕业设计(论文) 部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。 3逻辑设计 主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。 4物理设计 根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。 5验证设计 在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。 6运行与维护设计 在数据库系统正式投入运行的过程中,必须不断地对其进行评调整与修改。 至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交 7 苏州科技学院本科生毕业设计(论文) 互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。 2.3.4 各级模式的形成过程 1.需求分析阶段:综合各个用户的应用需求 2.概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图) 3.逻辑设计阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式 4.物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 8 苏州科技学院本科生毕业设计(论文) 第三章 项目可行性分析 3.1 技术可行性 该系统对软、硬件系统要求较低,所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备。软件上,操作系统采用Windows7或XP操作系统、MyEclipse作为前台开发工具,它具有的“编辑后继续运行”的特性,超越了旧的编辑—编译—测试模式。它还引入了面向对象的程序设计思想和“控件”概念,使得大量已经编好的JSP程序可以直接拿来使用。同时,JSP又是最容易学习与应用的程序语言之一。它的功能非常强大,已成为一种专业化的开发语言和环境。采用MySQL作为后台数据库平台的管理系统,它在电子商务、数据仓库和数据库解决方案等应用中起着核心作用,可为企业的数据管理提供强大的支持,对数据库中的数据提供有效的管理,并采用有效的措施实现数据的完整性、数据的安全性以及数据的可靠易用性等等。这些软件在实验室排课及教学系统设计与实现开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。 3.2 经济可行性 当今学校内部没有完善的实验室排课系统设计与实现,管理水平差,学校课程不能得到合理分配,学生,教师管理档案问题重重。迫切需要提高现代化管理水平、管理质量和管理高校课程。实验室排课及教学系统设计与实现的初步现代化的开发和使用,能够大大提高学校管理者的工作效率,节省成本提高经济效益。它把从事人力资源管理的人员从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它重要的活动中去,从而达到节省人力、物力,财力的目标;它能使决策、计划和其它管理活动更加科学、精确、灵活。因此,开发一个专门针对实验室排课系统设计与实现,在经济上也是可行的。 3.3 操作可行性 本系统灵活方便,快捷迅速,适应处理多项数据。采用友好、直观的视窗界面,鼠标、键盘两种操作方式任意选择,方便快捷。界面统一规范,提示信息功能完整,稍一接触就可以上手进行所有操作。 9 苏州科技学院本科生毕业设计(论文) 3.4 维护可行性 在做工作流变更时应慎重考虑其必要性、可行性和对现有系统影响的风险。总的来说应把握的基本原则是对于已经完成的工作流实例不做改动,对于在变更点之前正在执行的工作流不做改动,而对于在变更点之后正在执行的工作流予以终止(如果终止的代价较低)或者重新填充所涉及用户工作列表(如果终止的代价较高)。另外,必须考虑工作流引擎的实际情况,对工作流变更支持较好的工作流引擎可能已经为工作流变更做了充分的考虑,但大多数情况下需要开发人员编码解决。采用工作流驱动方案设计的系统在应对工作流变更时应考虑一下2 种情况:增加、删除新的局部工作流可能会影响已经实例化的全局工作流和新增局部工作流在全局工作流插入点前后(如果存在)的局部工作流。对于后一种情况应注意工作流之间的衔接,包括数据格式是否一致、流程链是否仍然连续(类似向链表中插入节点)。 10 苏州科技学院本科生毕业设计(论文) 第四章 需求分析 4.1 系统的基本功能 1 掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。 2 针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该3 班级课程表。 4 可以对课程进行变动管理。既可以手工排课,又可以实现自动排序功能。 5 帮助系统维护可以实现:重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。 6 提供一种或多种课程表输出功能。 7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:语文自动排列的分布方式可以是周一至周五,那么系统就会自动将其平均分布在周一至周五这5天)。 8用户管理:设置两个级别用户:管理员和普通用户(教师),管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证。 4.2 排课的约束条件 在我的排课系统,主要对不同类型课程进行等级划分,排列出课程的排 课优先级别,通过优先次序对不同类型的课程使用不同的算法进行排课,能 够非常方便地处理各种排课约束条件的限制。 例如教师和教室冲突、班级冲突、教师上课时间和地点选择、分层次教 11 苏州科技学院本科生毕业设计(论文) 学、单双周排课、一课多教师教学和课程连上等各种各样的约束。同时该系 统还能够非常迅速地得到排课结果,例如排一千门课只需几分钟时间等一系 列问题。 4.3 需求模型 使用用例模型来表示需求阶段的系统模型,用例模型主要有用例图组成,从该子系统开始到子系统最终的发布,每一个思路整合其用例模型都不相同;随着思路整合的不断进行,用例模型也在不断地发生变化,由于篇幅所限,本文只给出第一次思路整合确定的用例模型和现今最后一次思路整合所确定的用例模型。 通过需求分析,确定了排课管理的功能需求,其需求简要概括如下: 1 排课信息设置:包括教学科目信息,上课时间,科目和教师限制信息,班级排课信息,排课管理系统根据这些排课信息和限制信息对系统进行自动排课。 2 自动排课和手工排课:对于用户设定了排课信息之后,系统能够自动对课表进行安排,而且能够手工对安排完的课表进行调整,在排课过过程当中,能够对不合理的排课结果给用户进行提示。 3 课表报表和课表查询,给出全校教师总课表,班级课表;在课表查询中,用户可以选择不同的教师、班级,系统根据用户的选择给出相应的课表。 4.3.1 初使用列图 在项目开始阶段,需求不是非常清楚,但是,其需求的中心内容仍然是上面几点,在通过对需求的分析,我们确立了如下几个非常重要的用例: 1 科目信息设置 2 班级排课信息设置 12 苏州科技学院本科生毕业设计(论文) 3 自动排课 4 课表调整 5 课表显示与打印 上面所列出的用例即为排课管理系统的主要用例。根据这些主要用例,在项目的初始阶段,为排课管理系统确定了初始用例模型,描述了排课管理系统应该完成的功能,即从用户的角度看,系统应该具有哪些功能。初始用例模型表示如下: 图4.1 排课管理初始用例图 上面所列出的用例模型,基本上描述了排课系统的主要的功能,将这些基本功能实现,就形成了一个简单的排课管理系统。在项目开发的第一次思路整合开发中,就是以上面确定的系统原型为基础的,这也确定了系统排课管理系统的初始架构。 4.3.2 最后用例图 通过几次思路整合,在新的需求的增加下和对系统的进一步理解,逐步完善了排课管理系统的用例模型,下面给出的用例图是当前排课系统的最新的用例模 13 苏州科技学院本科生毕业设计(论文) 型: 图4.2 排课管理用例图 为方便显示,上面给出的排课管理用例图包括了排课管理子系统中的全部角色和用例。 4.3.3 用例描述 在建模时,必须给出每个用例的 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 ,描述该用例所完成的功能,以及完成该用例功能的步骤。当然,对用例的描述也可以使用用例说明文档来表示。为了说明如何使用活动图来表示一个用例的行为,在此给出“自动排课”用例的活动图,如下所示: 14 苏州科技学院本科生毕业设计(论文) 图4.3自动排课活动图 4.4 分析模型 在这个阶段,找出排课管理系统中涉及的主要的类,并且结合用例模型中的用例,将各个类与用例有机结合起来。对系统中的类,建立相应的类图来表示各个类之间的关系。而如何让用例与这些类进行结合,则需要建立相应的序列图/协作图来进行建模。 4.4.1 分析阶段类图 在分析模型中的给出的类图,并不需要为每个类详细定义方法和属性, 在这个阶段的类图,主要反映的是系统中应该有的类和各个类之间的关系; 当然,对于一些非常重要的方法和属性,特别是反映各个类之间的关系的方 法和属性,在此阶段可以给出定义。在排课管理系统的分析模型中,通过对 排课系统的分析和几次思路整合,找出了排课管理系统中涉及的类,并给出 了如下的类图和各个类之间的关系: 15 苏州科技学院本科生毕业设计(论文) 图4.4 排课管理类图(分析) 上面类图中,将排课管理中的类分成三种,并构建了类图,这种表示方法能够清楚地表示各个类在系统中所处的位置,更加直观;当然,在实际建模中,也不一定要选择这种表示,开发人员可以根据自己项目的实际情况来选择相应的建模元素。 4.4.2 实体类关系图 在分析模型中,使用的类分为三类的,其图形的表示也比较简单;而在设计模型中,采用了UML 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的类的表示图形,每个图被分为三个部分,分别表示类名字、属性栏和方法栏,在后面的设计阶段的排课管理类图中可以看到。 在上面的类图中,仅仅给出了三种类之间的关系,但是这样表示还是不够的。实体类之间也是有一定的关系的,对此,我们使用了另一个类图来表示各 16 苏州科技学院本科生毕业设计(论文) 个实体类之间的关系,如下图: 图4.5 排课管理实体类关系类图 4.4.3 序列图/协作图创建 在这之前,所做的所有模型都是属于UML的静态建模机制中的;而现在 所要用到的建模元素是属于UML的动态建模机制的。 在此,给出了自动排课用例的序列图,如下图所示: 17 苏州科技学院本科生毕业设计(论文) 图4.6 排课工作人员的序列图 图4.7 查看课表时的时序图 18 苏州科技学院本科生毕业设计(论文) 4.5 设计模型 在设计阶段的工作,简单来说,是根据分析模型,建立相应的设计模型;确切地说,是定义分析阶段所确定的每一个类,即定义每个类的方法和属性,并确定每个成员的可见性;可见性包括每个类成员是私有、保护、还是公有的。 4.5.1 组件图 组件图描述了排课系统各个子系统之间的依赖关系。组成自动排课系统的页面包括:主页面,班级管理页面,教师管理页面,教室管理页面,课程管理页面,课表管理页面。 图4.8 组件图 4.5.2 配置图 配置图主要是用来说明如何配置系统的软件和硬软。自动排课系统的应用服务器主要负责整个系统运行的总体协调工作,数据库则是负责数据管理。查询管理是用户可以用该页面对未安排的或已安排的进行快速的查看。教室管理是用来对教室的安排。课程管理是对每个班级,教师所授课程的管理。教师管理是对是是否有课老师的管理。班级管理是每个班级的课程管理。 19 苏州科技学院本科生毕业设计(论文) 4.9 配置图 20 苏州科技学院本科生毕业设计(论文) 第五章 排课算法分析与设计 5.1 背景与研究意义 排课问题早在70年代就证明是一个NP完全问题,即算法的计算时间是呈指数增长的,这一论断确立了排课问题的理论深度。对于NP问题完全问题目前在 数学上是没有一个通用的算法能够很好地解决。然而很多NP完全问题目具有很重要的实际意义,例如。大家熟悉地路由算法就是很典型的一个NP完全问题,路由 要在从多的节点中找出最短路径完成信息的传递。既然都是NP完全问题,那么很多路由算法就可以运用到解决排课问题上,如Dijkstra算法、节点子树剪 枝构造网络最短路径法等等。 目前大家对NP 完全问题研究的主要思想是如何降低其计算复杂度。即利用一个近似算法来代替,力争使得解决问题的时间从指数增长化简到多项式增长。结合到课表问题就是建立 一个合适的现实简约模型,利用该简约模型能够大大降低算法的复杂度,便于程序实现,这是解决排课问题一个很多的思路。 在高等院校中,培养学生的主要途径是教学。在教学活动中,有一系列管理工作,其中,教学计划的实施是一个重要的教学环节。每学期管理人员都要整理教 学计划,根据教学计划下达教学任务书,然后根据教学任务书编排课程表。在这些教学调度工作中,既有大量繁琐的数据整理工作,更有严谨思维的脑力劳动,还要 填写大量的表格。因此工作非常繁重。 加之,随着教学改革的进行及“211”工程的实施,新的教育体制对课表的编排提出了更高的要求。手工排课时,信息的上通下达是极其麻烦的,而采用计 算机排课,教学中的信息可以一目了然,对于优化学生的学习进程,评估每位教师对教学的贡献,领导合理决策等都具有重要的意义,必将会大大推进教学的良性循 环。 21 苏州科技学院本科生毕业设计(论文) 5.2 解决NP问题的几种算法及其比较 解决NP完全问题只能依靠近似算法,所以下面介绍几种常用算法的设计思想,包括动态规划、贪心算法、回溯法等。 5.2.1 动态规划 动态规划法是将求解的问题一层一层地分解成一级一级、规模逐步缩小的子问题,直到可以直接求出其解的子问题为止。分解成的所有子问题按层次 关系构成一颗子问题树。树根是原问题。原问题的解依赖于子问题树中所有子问题的解。动态规划算法通常用于求一个问题在某种意义下的最优解。设计一个动态规 划算法,通常可按以下几个步骤进行: 1. 分析最优解的性质,并刻划其结构特征。 2. 递归的定义最优解。 3. 以自底向上的方式计算出最优解。 4. 根据计算最优解时得到的信息,构造一个最优解。 步骤1~3是动态规划算法的基本步骤。在只需要求出最优解的情形,步骤4可以省去。若需要求出问题的一个最优解,则必须执行步骤4。此时,在步骤3中计算最优解时,通常需记录更多的信息,以便在步骤4中,根据所记录的信息,快速地构造出一个最优解。 5.2.2 贪心算法 当一个问题具有最优子结构性质时,我们会想到用动态规划法去解它,但有时会有更简单、更有效的算法,即贪心算法。顾名思义,贪心算法总是做出在当前 看来最好的选择。也就是说贪心算法并不是整体最优上加以考虑,他所作出的选择只是在某种意义上的局部最优的选择。虽然贪心算法不是对所有问题都能得到整体 最优解,但对范围相当广的许多问题它能产生整体最优解,如图的算法中单源最短路径问题,最小支撑树问题等。在一些情况下,即使贪心算法不能得到整体最优 解,但其最终结果却是最优解的很好的近似解。 22 苏州科技学院本科生毕业设计(论文) 在贪心算法中较为有名的算法是Dijkstra算法。它作为路由算法用来寻求两个节点间的最短路径。Dijkstra算法的思想是:假若G有n个顶 点,于是我们总共需要求出n-1条最短路径,求解的方法是:初试,写出V0(始顶点)到各顶点(终顶点)的路径长度,或有路径,则令路径的长度为边上的权 值;或无路经,则令为?。再按长度的递增顺序生成每条最短路径。事实上生成最短路径的过程就是不断地在始顶点V何终顶点W间加入中间点的过程,因为在每生 成了一条最短路径后,就有一个该路径的终顶点U,那么那些还未生成最短路径的路径就会由于经过U而比原来的路径短,于是就让它经过U。 5.2.3 回溯法 回溯法有“通用的解题法”之称。用它可以求出问题的所有解或任一解。概括地说,回溯法是一个既带有系统性又带有跳跃性的搜索法。它在包含问题所有解 的一颗状态空间树上,按照深度优先的策略,从根出发进行搜索。搜索每到达状态空间树的一个节点,总是先判断以该节点为根的子树是否肯定不包含问题的解。如 果肯定不包含,则跳过对该子树的系统搜索,一层一层地向它的祖先节点继续搜索,直到遇到一个还有未被搜索过的儿子的节点,才转向该节点的一个未曾搜索过的 儿子节点继续搜索;否则,进入子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根的所有儿子都已被搜索过才结束;而在 用来求问题的任一解时,只要搜索到问题的一个解就可结束。 5.3 排课系统流程分析 课程安排的流程跟教务工作的顺序有很大的关系, 被安排的课程的信息来源主要是前期很多教务工作的总结。其基本流程见下图。 整理课程信息 按等级分类 获取可安排的时间 排课 生成课表 23 苏州科技学院本科生毕业设计(论文) 5.3.1 整理课程信息 整理本学期需要安排课程的基本信息, 包括教学任务信息,课程安排信息。 5.3.2 按等级分类 根据整理出的课程需求, 我们对每门课程根据情况进行优先级别分类, 作为排课队列的顺序。 5.3.3 获取可安排的教室 教室是根据每个系的情况进行分配的, 部分特殊教室的使用也是有限制的, 因此在排课前必须获得所有能够安排课程的教室情况。 5.3.4 排课 根据课程的优先级别按顺序再依据规则依次对课程进行时间安排, 在这里重点是规则的定义和在上课时间和教室空间纵横轴组成的二维空间中对每个课单元的排课许可。排课的过程是一个搜索的过程, 当最后的课程搜索不到时间段时, 表示课程安排有冲突, 可通过回溯的方法通过改变前一门课的定位来增加可选的机会, 当最后仍然出现课程冲突时, 可列出所有与该课冲突的信息, 以便教务管理员分析和重新对某些属性进行设定。 5.3.5 生成课表 将排好课的节次时间和教室空间纵横轴组成的二维表的每个单元数据存入数据库。通过各种检索可以生成课表。 5.4算法分析 5.4.1 问题的描述 我们讨论的自动排课问题的简化描述如下: 设要安排的课程为{ C1 , C2 , ., Cn} ,课程总数为n , 而各门课程每周安排次数为{ N1 , N2 , ., Nn} ;每周教学日共5 天,即星期一到星期五;每个教学日最多安排6 次课程教学,即上午3节,下午3节。 在这种假设下,显然每周的教学总时间段数为5 ×6 = 30 ,并存在以下约束关系: 24 苏州科技学院本科生毕业设计(论文) n ?30 Ni ?30-n(每门课程至少占有一次课程教学) 自动排课问题是:设计适当的数据结构和算法, 以确定{ C1 , C2 , ., Cn } 中每个课程的教学应占据的时间段,并且保证任何一个时间段仅由一门课程占据。 5.4.2 排课约束条件 小学排课与其他高校排课相比,具有一定的差异性。具体表现在以下几个方面: 1. 教室固定:除专业课外,小学上课地点全部在固定教室。专业教室资 源数量比较有限。 2. 课程优先级关系:由于课程之间的差异性,课程之间具有不同程度的 优先级关系。例如,小学语数外3门主课大多都排在上午时段,下午 时段则排副课 3. 课程不能连上:一周课程教学小于5次的课程要均匀分布一周,同一 天不能出现有2次以上教程;若是程教学一周大于5次,则除了一周 5天都有一次教学课程之外,剩下的也是均匀分布在一周5天,且同 一课程不能连上。 4. 课程安排较多:小学一周30节课基本全都要排,剩余时段较少,由 于教师资源的稀缺,会给排课带来极大的约束 。 5.5 算法设计 在教师资源和教室资源满足但是紧缺的条件下,排课算法主要解决的就是课程时间段合理安排的问题。 设计思想: 1(获得所有老师的教师工号,将每一个教师工号和30个课时的集合封装成一个对象,该对象表示对应教学工号的教师所拥有的授课时间,如果有特殊要求, 25 苏州科技学院本科生毕业设计(论文) 比如某个教师在星期五下午不教课,那就在其工号对应的对象中去除周五下午的3个课时。 2. 按年级、班级从低到高进行循环,以班级为单位进行排课。排课的优先级按照设定的来排列。一般主课先排。 循环进入班级时,首先会生成该班班号与可授课时间段的对象,表明该班级可以上课的时间段,需要注意一点的是班级可授课课时分为上午和下午2个集合。如同教师一样,可以安排不上课的时段。同时也将与该班相关的教学任务查询出来放进一个集合。其中,每一条教学任务也封装成一个集合。具体包含字段信息有:年级、班级、课程名、课程id、课时、教师id、教师名字。 3. 按照优先级获取语数外的课程id,然后循环3个主课id。 首先,获取该班级数学课的教学任务,取得该教学任务对象,判断其课时是否大于5,分2种不同的策略来排课。如果小于5,则每天只安排一次课时。按照其课时大小,继续进入循环,在此循环,则开始随机抽取班级对象可授课的时间,按照策略,随机抽取主课的时间段大多在上午区间。每次一个循环,都会抽出一个时间段,接着再判断该班级数学教师对象的时间集合中是否包含,如果包含,则表明该时间段老师可以教授该门课程,然后同时将该时间段与该教学任务已抽取的时间段判断是否在同一天,如果不在同一天,则表明该时间段完全符合。最后将该课时段插入教学任务记录中,班级授课对象和教师授课对象同时去除该课时段,同时记录该课时段用来与下一个抽取课时段进行是否在同一天判断。 如果授课课时大于5小于10,则判断条件改为每天最多2次并且不能连续。 4(主课排好后,进行副课循环排课,排课策略与主课相同,只是随机抽取的时间段集中在下午。 5. 此时一个班级排好课,相关的教师可授课对象已被修改,安排好的时间段全部去除。然后进入下一轮班级排课,再次生成该班可授课时间对象。而修改的教师可授课对象保持不变。 6. 一直循环,直到排课结束。 26 苏州科技学院本科生毕业设计(论文) 当然,此种设计思想存在缺陷,当资源紧张时,则会发生资源冲突,表现为抽取的时间段始终不满足要求,此时就要进行回溯处理,重新排课。当然也可以将此冲突记录下来,跳过该次排课,在排课结束后提醒用户,让其手工调课来规避次冲突 课程循环算法流程图: 课程循环 课时>5 Y N 是 按照策略2抽按照策略1抽不 取时间段 取时间段 满 足 教师是否可教并 且该天包含 满足 插入数据并且 记录该课时 N 循环结束 Y 进入下一门课 程循环 图5.1 课程循环算法流程图 27 苏州科技学院本科生毕业设计(论文) 第六章 系统概要设计 6.1 设计思想 本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。 数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。 老师班级课程时间段 管理 管理 管理 设置 排课 设计 用户课表学生 管理 生成 管理 图6.1 数据管理 28 苏州科技学院本科生毕业设计(论文) 6.2 系统功能模块划分 教务排课系统在功能上分四个模块,如图6.2: 教务排课系统 排排管课 课课理表 算结与调 法果维整 设查护 计 询 图6.2 系统功能模块划分 6.3 数据库设计 利用SQL Server2005来管理排课资源、排课约束条件等信息,利用数据库技术来实现设置排课优先级、课时和时间段的匹配以及处理排课资源的冲突,从而实现自动排课的目的。 主要包含的数据实体有:班级、课程、教师、教室、教学任务表等。实体的具体属性如下: (1)班级信息包括:年级、班级名称、班级id (2)课程信息包括:课程号,课程id; (3)教师信息包括:教师工号、教师名称、职位; (4)教室信息包括:教室代码、教室名称、教室数量; (5)教学任务表信息包括:教师工号、教师名字、年级、班级、课程id、课程名、课程id、授课时间、授课地点。 29 苏州科技学院本科生毕业设计(论文) 第七章 详细设计 7.1 登录模块设计 设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程: (1) 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 数据库中有无管理员账号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入. (2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面 (3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体 登录界面 输入用户名和密码 N验证账号和密码 重新输入 >4 Y 登录排课主界面 图7.1 登录系统流程图 7.2 主界面及课表生成设计 7.2.1 班级管理设计 模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添 30 苏州科技学院本科生毕业设计(论文) 加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。 其他功能设计诸如教师管理,教室管理等基本信息维护设计大致相同,这里就不再赘述了。 班级管理 修改 添加 保存 删除 返回 输入数据 验证重复 执行保存 图7.2 班级管理流程图 7.2.2 班级课程处理设计 模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。 注:已生成课程表的返回:由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。 31 苏州科技学院本科生毕业设计(论文) 班级课程处理 Y 课程是否生成 提示并返回操作 N 添加 保存 修改 删除 输入数据 验证重复 执行保存 图7.3 班级课程处理流程图 7.2.3 课表生成部分设计 模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。 (1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。 (2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。 (3)穷举法列出以上两者之间的共通点,可用点。 (4)最后通过循环随机选择来实现课程的定位。 (5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列 32 苏州科技学院本科生毕业设计(论文) 注释: 年级循环 A:是否是最后一个年级最后一个班级 班级循环 A N Y 退出 进入排课循环 排课完成并退出 图7.4 课表生成流程图 7.2.4 报表输出功能设计 模块设计说明:此处采用了两种输出方式,第一种是普通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。 33 苏州科技学院本科生毕业设计(论文) 报表输出 EXCEL模板输 出 a a 获取模板并复制 b 数据填入临时文件 保存临时文件 打退 印 出 是否打印 Y a:通过班级来获取对应的生成课程表 打印 数据并赋值给某个打印变量或数据集 b:打开MDI窗体,并在其中显示报表N 窗体,将该表的数据源定义为a所赋值的语 返回操作 句变量 图7.5 报表输出流程图 7.2.5 系统调课功能设计 由系统自动排课生成的并不一定能完全达到用户所想需要的效果,虽然在程序中解决了系统冲突的出现,但是因为某些原因而出现临时的原因都需要进行调课,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整,也方便使用。 34 苏州科技学院本科生毕业设计(论文) 调课 获取课程资料 获取教室对应资源 查询可调点 调课 图7.6 调课流程图 此处调课是事先获取系统有用资源空间,并在图表中进行背景色变色显示,提示用户该门课程可以调动至变色显示的地方,主要是通过班级的课程占用与该教师的排课占用情况进行对比,寻找有利和适用的位置,并等待用户进行调课操作。 执行调课:在进行以上操作后,计算机自动等待用户选择系统列出的调课点,在选择某调课点后,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况,并同时清除图表中的资料,将其重新放置到新位置,并修改新地点的资源占用情况,最后将图表的可调位置背景色还原回正常状态。 7.3 数据库详细设计 7.3.1 设计分析 经过分析可知,该系统具有这几个实体:课程、教师、专业教室、班级教学任务。下面用实体属性图来具体展示这几个实体。 35 苏州科技学院本科生毕业设计(论文) 名字 课程名 课程号 工号 职称 所教课程 性别 教师 课程 图7.7课程实体属性 图7.8课程实体属性 名称 班级号 id 所属年级 名称 数量 班级 专业教室 图7.9专业教室实体属性 图7.10班级实体属性 教师工号 年级 任务id 班级 教学任务 课时数 课程id 课程名 图7.11教学任务实体属性 36 苏州科技学院本科生毕业设计(论文) 7.3.2 数据表设计 通过对系统数据的分析,可以把表分为2大块。一部分为基本信息部分,另一部分为教学任务部分 基本信息表为: 1 用户表 Table name Users Key null 栏位名 类型 是否允许为空 备注 Username varchar not 登陆的用户名 password varchar not 登陆的密码 表7.1 用户表 字段说明:系统登录时,根据用户输入的username来匹配其password,如果匹配不成功,则提醒用户登录失败。 2 教师信息表 Table name Teacher Key Id 栏位名 类型 是否允许为空 备注 Id Int not 自增长 Tid Int not 教师工号 tname varchar not 教师姓名 position varchar 职务 表7.2 教师信息表 字段说明:该表记录了教师的基本信息:教师工号、教师名字、职称。 37 苏州科技学院本科生毕业设计(论文) 3 年级信息表 Table name Grade Key Gid 栏位名 类型 是否为空 备注 gid int not 年级id gname varchar not 年级 表7.3 年级信息表 字段说明:该表记录了年级信息。排课时查询年级数来进行循环年级排课 4 课程安排表 Table name Coursenum Key id 栏位名 类型 是否为空 备注 id Int not 自增长 Grade int 年级 classnum int 班级数 courseid varchar 课程号 course varchar 课程名 coursenum int 课程数 表7.4 课程安排表 字段说明:该表记录了课程安排信息,包括:所属年级,班级数目,课程id,课程名,每周所教课程。进行教学任务设置时总课时不能超过此表的课程数 38 苏州科技学院本科生毕业设计(论文) 6 课程表 Table name Course Key cid 栏位名 类型 是否为空 备注 cid varchar 课程号 cname varchar 课程名 表7.5 课程 字段说明:该表记录了课程号及其对应的课程名。 6 专业教室表 Table name Classroom Key id 栏位名 类型 是否为空 备注 Id int not 自增长 roomname varchar not 教室名字 Roomnum int not 教室号 表7.6 专业教室表 字段说明:该表记录了专业教室的的名称及对应的数量,排课时需要查询roomnum字段,同一时间同一地点上该门课程的班级数不能超过roomnum的值。 7 班级信息表 Table name Class Key id 栏位名 类型 是否为空 备注 Id int not 自增长 greadeid int greadename varchar classid varchar 39 苏州科技学院本科生毕业设计(论文) 表7.7 班级信息表 字段说明:该表记录了每个年级的班级,排课时要查询每个年级的班级数来进行循环排课 8 教学任务表: Table name Work1 Key id 栏位名 类型 是否为空 备注 id int not tid int not grade int not classid varchar not courseid varchar not coursename varchar not coursenum int not week int not time varchar classroom varchar year varchar 表7.8 教学任务表 字段说明:该表记录了所有的教学任务。一条记录对应某个老师所教某年纪某班某门课程的课时数。排课是需要根据此信息来安排按时间段。 7.4 主要界面实现 7.4.1 登录页面 在通过密码验证后将跳转到相应的页面。其界面如图7.12所示。 40 苏州科技学院本科生毕业设计(论文) 图7.12 登录页面 7.4.2 教学任务信息管理页 在此页面,管理员可以实现教学任务信息的增、删、查功能。其界面如图7.13所示。 图7.13 教学任务信息管理页面 7.4.3 教师信息管理页 在此页面,管理员可以实现教师信息的增、删、查功能。其界面如图7.14所示。 41 苏州科技学院本科生毕业设计(论文) 图7.14 教师信息管理页面 7.4.4 班级信息管理页 在此页面,管理员可以设置6个年级的班级名称,并通过查询年级来查该年级的班级数。其界面如图7.15所示。 图7.15 班级信息管理页面 7.4.5 课程信息管理页 在此页面,用户可以设置课程名和课程号,通过课程名可以查询其对应的课程号。其界面如图7.16所示。 42 苏州科技学院本科生毕业设计(论文) 图7.16 课程信息管理页面 7.4.6 专业教室信息管理页 在此页面,用管理员设置一些专业教室和专业教室的数量,比如计算机室,数量为3,说明有3间电脑机房。 特别说明:专业教室名称:操场,专业教室数量:6,则表明同一时间同一个操场最多只能容纳6个班级上课。 图7.17 专业教室信息管理页面 43 苏州科技学院本科生毕业设计(论文) 7.4.7 课时数信息管理页 管理员可以在此页设置每个年级每门课的一周课时任务。其界面如图7.18所示。 图7.18 课时数信息管理页面 7.4.8 排课管理页 在此页面,管理员在教学任务信息输入完毕之后,点击排课按钮就可以开始排课了,本部排课和分布排课相同。其界面如图7.19所示 44 苏州科技学院本科生毕业设计(论文) 图7.19 排课页面 7.4.9 总课表查询页 管理员在此页面可以根据输入的学期查询总课表。其界面如图7.20所示。 图7.20 总课表查询页面 7.4.10 教师课表查询页 管理员在此页面可以根据输入的教师工号查询该名教师的课表。其界面 如图7.21所示。 45 苏州科技学院本科生毕业设计(论文) 图7.21 教师课表查询页面 7.4.11 班级课表查询页 管理员在此页面可以根据输入的年级和班级查询该班级的课表。其界面如图7.22所示。 图7.22 班级课表查询页面 46 苏州科技学院本科生毕业设计(论文) 7.4.12 调课页 管理员在此页面手动调节课程,每次只能2门课程交换。其界面如图7.23 所示。 图7.23 班级课表调换页面 47 苏州科技学院本科生毕业设计(论文) 第八章 测试报告 8.1 测试方案 计划选取的测试方法:功能测试、强度测试、恢复测试、安全测试、安装测试。选取测试用例的原则:软件测试是为了验证程序是否满足规定的需求,或者为了识别出程序的预期结果与真正结果有无差别,而执行和评价程序或程序组成部分的过程。测试并不是为了证明程序是正确的,而是系统地暴露程序中可能存在的各种类型的错误。因此,测试的根本目的是发现错误,并纠正错误,对程序的正确性和可靠性进行分析,以便最终提交高质量的、符合用户需要的软件。 8.2 测试项目 1( 安装测试:目的是核实软件在安装后可否立即正常运行。 2( 教师信息:验证按照提示输入教师信息,能否正常维护。 3( 教学任务信息:验证输入教学任务信息,能否正常维护。 4( 分部排课:验证分部教学任务信息输入后,能否正确排课。 5( 本部排课:验证本部教学任务信息输入后,能否正确排课。 6( 调课:验证在排好课程的基础上,能否正确实施调课。 7( 提前排课:验证在未排课前,提前设置若干位教师的任课信息后, 能否正确继续将剩余的教学任务安排下去。 8( 报表输出:验证系统能否将排好的课以Excel表打印出来 。 8.3 主要测试用例 测试用例1 测试用例的名称:安装测试。 测试用例的目的:目的是核实软件在安装后可否立即正常运行。 测试方法:重新安装服务器,应用程序,验证程序能否正常运 行 。 48 苏州科技学院本科生毕业设计(论文) 测试用例的输入:安装Tomact,小学排课系统。 期待的输出:该软件能够正常运行。 实际的输出:该软件能够正常运行。 测试用例2 测试用例的名称:教师信息。 测试用例的目的:按照提示输入教师信息,能否正常维护。 测试方法:输入若干条教师的基本信息,然后按根据条件来增删查改 。 测试用例的输入:教师的教学工号,名字,职务。 期待的输出:能够正确维护教师信息。 实际的输出:能够正确维护教师信息。 测试用例3 测试用例的名称:教学任务信息。 测试用例的目的:输入教学任务信息,能否正常维护。 测试方法:输入若干条教学任务信息,然后按根据条件来增删查改。 测试用例的输入:年级,班级,教师名字,课程号,课时。 期待的输出:能够正确维护教学任务信息。 实际的输出:能够正确维护教学任务信息。 测试用例4 测试用例的名称:分部排课。 49 苏州科技学院本科生毕业设计(论文) 测试用例的目的:分部教学任务信息输入后,能否正确排课。 测试方法:输入分部1、2年级的教学任务信息,然后进行排课,查看结果。 测试用例的输入:分部1、2年级的教学任务信息。 期待的输出:能够正确的将教学任务分配完成。 实际的输出:能够正确的将教学任务分配完成。 测试用例5 测试用例的名称:本部排课。 测试用例的目的:本部教学任务信息输入后,能否正确排课。 测试方法:输入本部教学任务信息,然后进行排课,查看结果。 测试用例的输入:本部的教学任务信息。 期待的输出:能够正确的将教学任务分配完成。 实际的输出:能够正确的将教学任务分配完成。 测试用例6 测试用例的名称:调课。 测试用例的目的:在排好课程的基础上,能否正确实施调课。 测试方法:在排好课后,随机进行调课(不冲突的情况下)。 测试用例的输入:无。 期待的输出:调课成功。 实际的输出:调课成功。 50 苏州科技学院本科生毕业设计(论文) 测试用例7 测试用例的名称:提前排课。 测试用例的目的:在未排课前,提前设置若干位教师的任课信息后,能否正 确继续将剩余的教学任务安排下去。 测试方法:事先安排好一年级所有音乐课的课程,然后执行排课。 测试用例的输入:无。 期待的输出:排课成功。 实际的输出:排课成功。 测试用例8 测试用例的名称:报表输出。 测试用例的目的:能否将排好的课以Excel表打印出来 。 测试方法:将排好的课表打印出来。 测试用例的输入:无。 期待的输出:成功打印。 实际的输出:成功打印。 8.4 测试进度 功能性测试在编码过程中随程序的进展同步测试。安装测试在程序完成之后进行测试。在程序设计编码完成之后,对该系统进行集成测试。集成测试是根据设计中各功能模块的说明和制定的集成测试计划,将经过单元测试的模块逐步进行组装和测试。 51 苏州科技学院本科生毕业设计(论文) 8.5 测试方法 功能测试:以软件需求 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 规定的系统功能为依据,设计各种测试用例,并用这些测试用例检查各个功能的实现情况。 强度测试:检查程序系统对强负荷的承受能力。针对异常情况设计测试用例,以强迫系统在异常的资源配置下运行。例如,针对下列情况来设计测试用例:产生高密度的中断,可能导致操作系统或磁盘数据剧烈抖动,大量、高频率的数据输入,需要最大的存储空间等。 恢复测试:主要检查系统的容错能力,即检查当出现硬件或软件错误时,系统在指定的时间间隔内恢复运行而不丢失或损害数据和控制的能力。 安全测试:证实系统对非法入侵的防范能力,即检查系统的安全机制是否会被非法用户破坏。 安装测试:安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下(例如,进行首次安装、升级、完整的或自定义的安装)都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。 8.6 测试结果分析 8.6.1 测试的局限性 该测试用例能够检测到系统的功能性错误,按键错误;但对系统的某些小的逻辑错误可能检测不到位。 8.6.2 评价测试结果的准则 语音信箱系统的所有功能都能够实现,在用户按键错误的情况下,系统能够忽视错误的按键或给出正确的提示。 52 苏州科技学院本科生毕业设计(论文) 8.7 系统的优点及技术特征 1、全方位计算机操作,系统权限维护安全可靠。 2、界面友好美观,操作简单,查询方便快捷,数据存储可靠。 3、按要求形成一套严密、科学、完善的管理体系提高工作效率。 8.8 系统的不足及改进方案 本系统可作为某高校内部来使用,但是如果拿出去,作为一个系统来销售,还存在着很多缺点和不足。 1页面设计,由于时间有限,能力有限,所以,页面只能简单的用CSS来控制一下,但是如果要应用到实际中,JS和AJAX等特效及技术是必不可少的,希望在以后的编程中慢慢学习这些技术。 2BUG问题,测试其实是一个慢长反复的过程,虽然我已经做了大量测试,但与实际生活中比较,还是远远不够的。 3灵活性,这程序灵活性不够,所以可移植性差。 4模块严密性,由于精力有限,所以此程序只做出了,程序的最基本功能,如果应用到实际生活中,要根据具体的学校情况,添加不同的模块。 8.9 系统的运行与维护 系统的运行与维护,是软件开发的最后一个环节。系统运行中出现的问题,可以反馈到编码阶段甚至逻辑设计阶段,进行反复的修改,运行操作,直至系统完善。而有效的系统维护,可以大大延长软件的声明周期,尽可能提高系统的利用率和所带来的效益。 53 苏州科技学院本科生毕业设计(论文) 结 论 设计总结 1. 采用独特的资料占用排除方法来生成所需要的课程表,使课程表生成速度加快。 2. 支持很方便的课程,用户等模块的添加,修改,删除等过程。 3. 使用定位查询,只要选择对应的班级,就可以找到对应的内容,班级就是一个整体,通过班级来寻找所想要的数据会实现的更为简便。 4. 特殊的课程表输出功能,大大减少了课程表输出时的格式局限性,只要修改EXECL中的模板,就可以打印出你想要的效果来。 程序的不足: (1)对排课来说,各个学校都有着不太相同的排列方法,有每天的课节数,允许课程连排数,时间段等等,而这些方法转换为计算机语言时,往往会因为这样那样的限制而造成死循环或者程序速度缓慢。 (2)由于排课实现功能复杂,程序中也许有不可预知的错误未测试出来,所以这也需要长时间的进行测试才能发现并修复问题。 (3)受开发条件和开发时间的限制,本系统只利用了本地数据库Sqlserver,它同应用程序处于同一系统中,能存储的数据量也有一定限制,并没有发挥出JSP其数据库方面的优势。 设计心得 本系统是在陶涛老师的带领下,同时在许多同学和老师的帮助下完成。由于 我没有什么开发经验,对相关技术掌握的不是很牢等,本系统存在着很多尚未解 决的问题,可以说是本系统稚气未脱,显得不是那么成熟。 首先,系统模块之间的整和不好,按软件工程的要求,是要做到高内聚、低 耦合。本系统还没有达到这样的要求; 再次,我在开发过程中没有过多的考虑各种因素,比如数据库异常、网络病 54 苏州科技学院本科生毕业设计(论文) 毒等,当这些问题发生时,本系统是否能正常运行,这就是系统的健壮性,尽管JSP语言的健壮性是比其他的要好,但我们并没有做到更好,把它发挥到极至; 还有,本系统的运行速度,在数据库不是很大时,本系统的运行速度还比较满意,这应该得益于JSP的运行机制,但当数据库增加,系统的运行速度能否得到保证,当这些问题出现时,我们还要改变系统的代码,改善算法等。 本系统还有很多尚待解决的问题,有些是在系统交付使用后应运而生,这些问题都有待改进,才能使系统具有更强的生命力。 55 苏州科技学院本科生毕业设计(论文) 致 谢 紧张忙碌的毕业设计即将结束了,在这几个月的课程设计中,我从项目的规划、调研开始,到编码、测试,充分体会了一个软件产品的生产过程,也让我看到了我自身水平的不足。与此同时,同样让我感到了继续学习、更新自身知识、加强自身能力的必要性。大学四年的学习即将结束,我也即将走向新的起点。这段毕业设计的经历给了我克服困难的决心和解决问题的经验,它将对我今后的生活、学习起到很大的帮助。 经过两个多月的学习,我初步掌握了Web框架的基本应用,基本达到了毕业设计的要求。最重要的是,毕业设计的经历增强了我自我学习的能力,做到了在不用老师手把手教授的情况下,完成了一个较为复杂的管理系统。同时,在课程设计的过程中,查阅了大量的资料,也增强了我进行资料收集、查找和对资料进行筛选的能力。 特别感谢此次指导我毕业设计的陶涛老师,他在我的毕业设计过程中给予了我许多理论和实践上的指导。他对工作认真负责、治学严谨,尤其是当我遇到不懂的问题或调试不出程序时,他总能第一时间给予我帮助。他对我的悉心指导以及孜孜不倦、严谨细致的态度令我受益匪浅。 同时我也由衷地感谢在大学四年学习、生活中给予我关怀、教诲、帮助、支持和鼓励的老师和同学们,正因为有了你们,我的生活如此精彩。在此我衷心的感谢你们,祝福你们~ 56 苏州科技学院本科生毕业设计(论文) 参 考 文 献 [1]张化祥,陆晶.Java程序设计[M].北京:清华大学出版社,2010. [2] 吴吉义,王中友.MySQL原理与Web系统开发[M].北京:清华大学出版社,2009. [3] 邓子云,张赐.JSP网络编程从基础到实践[M].北京:电子工业出版社,2005. [4] 方振宇.Java Web开发从初学到精通[M].北京:电子工业出版社,2010. [5] 李咏梅,余元辉.JSP应用教程[M].北京:清华大学出版社,2011. [6] 张跃平,耿祥义.JSP程序设计[M].北京:清华大学出版社,2009. [7] Rick F.van der Lans.MySQL开发者SQL权威指南[M].北京:机械工业出版社,2008. [8] Vikram Vaswani.MySQL完全手册:the complete reference[M].北京:电子工业出版社,2004. [9] 祝定泽,张海,黄健昌.MySQL核心内幕[M].北京:清华大学出版社,2010. [10] 甘勇.JSP程序设计技术教程[M].北京:清华大学出版社,2010. [11] 林巧民.JSP动态网站开发实用教程[M].北京:清华大学出版社,2009. [12] 李建刚,秦兴桥,郑雨贝.JSP网络编程技术与实践[M].北京:清华大学出版社,2008. [13] Simon Brown,Sam Dalton,Dan Jepp.JSP编程指南[M].北京:电子工业出版社,2004. [14] 郭克华.Java Web程序设计[M].北京:清华大学出版社,2011. [15] 杨俊生,唐琳,张坤.Java Web应用开发实用教程[M].北京:清华大学出版社,2010. 57 苏州科技学院本科生毕业设计(论文) [16]张晶.Java Web开发指南[M].北京:清华大学出版社,2010. [17] 栗菊民.Java Web应用程序设计[M].北京:机械工业出版社,2007. [18] Mack Hendricks,Ben Galbraith.Java Web服务编程指南[M].北京:电子工业出版社,2002. [19] 汤鸣红.Java Web应用开发[M].北京:化学工业出版社,2009. [20] 梁胜彬.Java程序设计实例教程[M].北京:清华大学出版社,2011. [21] 赵卓君.Java程序设计基础教程[M].北京:清华大学出版社,2010. [22] 张晓龙.Java程序设计与开发[M].北京:电子工业出版社,2010. [23] 邓子云,郝斌.JSP应用开发[M].北京:机械工业出版社,2008. [24] 郑阿奇.JSP实用教程[M].北京:电子工业出版社,2008. [25]孙延鹏,吕晓鹏.Web程序设计:JSP[M].北京:人民邮电出版社,2008. [26] 王国辉,王毅,李钟尉.JSP程序开发范例宝典[M].北京:人民邮电出版社,2007. [27] 贾素玲,王强.JSP应用开发技术[M].北京:清华大学出版社,2007. [28] 吴建,张旭东.JSP网络开发入门与实践[M].北京:人民邮电出版社,2006. [29] 刘彬.JSP数据库高级教程[M].北京:清华大学出版社,2006. [30]Vivek Chopra,Jon Eaves,Rupert Jones.JSP高级程序设计[M].北京:人民邮电出版社,2006. 58 苏州科技学院本科生毕业设计(论文) 附录A 译文 数据库管理系统的介绍 数据库(database,有时拼作data base)又称为电子数据库,是专门组织起来的一组数据或信息,其目的是为了便于计算机快速查询及检索。数据库的结构是专门设计的,在各种数据处理操作命令的支持下,可以简化数据的存储,检索,修改和删除。数据库可以存储在磁盘,磁带,光盘或其他辅助存储设备上。 数据库由一个或一套文件组成,其中的信息可以分解为记录,每一记录又包含一个或多个字段(或称为域)。字段是数据存取的基本单位。数据库用于描述实体,其中的一个字段通常表示与实体的某一属性相关的信息。通过关键字以及各种分类(排序)命令,用户可以对多条记录的字段进行查询,重新整理,分组或选择,以实体对某一类数据的检索,也可以生成报表。 所有数据库(最简单的除外)中都有复杂的数据关系及其链接。处理与创建,访问以及维护数据库记录有关的复杂任务的系统软件包叫做数据库管理系统(DBMS)。DBMS软件包中的程序在数据库与其用户间建立接口。(这些用户可以是应用程序员,管理员及其他需要信息的人员和各种操作系统程序)。 DBMS可组织,处理和表示从数据库中选出的数据元。该功能使决策者能搜索,探查和查询数据库的内容,从而对在正规报告中没有的,不再出现的且无法预料的问题做出回答。这些问题最初可能是模糊的并且(或者)是定义不恰当的,但是人们可以浏览数据库直到获得所需的信息。简言之,DBMS将“管理”存储的数据项,并从公共数据库中汇集所需的数据项以回答非程序员的询问。 DBMS由3个主要部分组成:(1)存储子系统,用来存储和检索文件中的数据;(2)建模和操作子系统,提供组织数据以及添加,删除,维护,更新数据的方法;(3)用户和DBMS之间的接口。在提高数据库管理系统的价值和有效性方面正在展现以下一些重要发展趋势; 1.管理人员需要最新的信息以做出有效的决策。 59 苏州科技学院本科生毕业设计(论文) 2.客户需要越来越复杂的信息服务以及更多的有关其订单,发票和账号的当前信息。 3.用户发现他们可以使用传统的程序设计语言,在很短的一段时间内用数据库系统开发客户应用程序。 4.商业公司发现了信息的战略价值,他们利用数据库系统领先于竞争对手。 数据库中数据的性质 1.数据整体性:数据库是一个单位或是一个应用领域的通用数据库处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。 2.数据共享性:数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。 数据管理的诞生 数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。然而,1 9 5 1 年雷明顿兰德公司(Remington Rand Inc.)的一种叫做Univac I 的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。1956 年IBM生产出第一个磁盘驱动器—— the Model 305 RAMAC。此驱动器有50 个盘片,每个盘片直径是2 英尺,可以储存5MB的数据。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。 60 苏州科技学院本科生毕业设计(论文) 1951:Univac系统使用磁带和穿孔卡片作为数据存储 数据库系统的萌芽出现于60 年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。数据模型是数据库系统的核心和基础,各种DBMS 软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。 最早出现的是网状 DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDS(Integrated DataStore)。1961年通用电气公司(General ElectricCo.)的Charles Bachman 成功地开发出世界上第一个网状DBMS也是第一个数据库管理系统—— 集成数据存储(Integrated DataStore IDS),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。IDS 具有数据模式和日志的特征。但它只能在GE主机上运行,并且数据库只有一个文件,数据库所有的表必须通过手工编码来生成。之后,通用电气公司一个客户——BF Goodrich Chemical 公司最终不得不重写了整个系统。并将重写后的系统命名为集成数据管理系统(IDMS)。 网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,在关系数据库出现之前网状DBMS要比层次DBMS用得普遍。在数据库发展史上,网状数据库占有重要地位。 层次型DBMS是紧随网络型数据库而出现的。最著名最典型的层次数据库系统是IBM 公司在1968 年开发的IMS (Information Management System),一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序产品。从60 年代末产生起,如今已经发展到IMSV6,提供群集、N路数据共享、消息队列共享等先进特性的支持。这个具有3 0 年历史的数据库产品在如今的WWW应用连接、商务智能应用中扮演着新的角色。 1973 年Cullinane 公司(也就是后来的Cullinet软件公司),开始出售Goodrich 公司的IDMS 改进版本,并且逐渐成为当时世界上最大的软件 61 苏州科技学院本科生毕业设计(论文) 公司。 关系数据库的由来 网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。 1970年,IBM的研究员E.F.Codd博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。尽管之前在1968年Childs已经提出了面向集合的模型,然而这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。Codd的心愿是为数据库建立一个优美的数据模型。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现 DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974 年ACM牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。 1969: Edgar F。“Ted”Codd发明了关系数据库 1970年关系模型建立之后,IBM公司在San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R。其目标是论证一个全功能关系DBMS的可行性。该项目结束于1979年,完成了第一个实现SQL的 DBMS。然而IBM对IMS的承诺阻止了System R的投产,一直到1980年System R才作为一个产品正式推向市场。IBM产品化步伐缓慢的三个原因:IBM重视信誉,重视质量,尽量减少故障;IBM是个大公司,官僚体系庞大;IBM内部已经有层次数据库产品,相关人员不积极,甚至反对。 62 苏州科技学院本科生毕业设计(论文) 然而同时,1973年加州大学伯克利分校的Michael Stonebraker和Eugene Wong利用System R已发布的信息开始开发自己的关系数据库系统Ingres。他们开发的Ingres项目最后由Oracle公司、Ingres公司以及硅谷的其他厂商所商品化。后来,System R和Ingres系统双双获得ACM的1988年“软件系统奖”。 1976年霍尼韦尔公司(Honeywell)开发了第一个商用关系数据库系统——Multics Relational Data Store。关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有Oracle、IBM公司的 DB2、微软公司的MS SQL Server以及Informix、ADABASD等等。 结构化查询语言(SQL) 1974 年,IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)语言。SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL集成实现了数据库生命周期中的全部操作。SQL提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。自产生之日起,SQL语言便成了检验关系数据库的试金石,而SQL语言标准的每一次变更都指导着关系数据库产品的发展方向。然而,直到二十世纪七十年代中期,关系理论才通过SQL在商业数据库Oracle和DB2中使用。 1986年,ANSI把SQL作为关系数据库语言的美国标准,同年公布了标准SQL文本。目前SQL标准有3个版本。基本SQL定义是ANSIX3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一 般叫做SQL-89。SQL-89定义了模式定义、数据操作和事务处理。SQL- 89和随后的ANSIX3168-1989,“Database Language-Embedded SQL”构成了第一代SQL标准。ANSIX3135-1992[ANS92]描述了一种增强功能的SQL,现在叫做SQL-92标准。SQL-92包括模式操作,动态创建和SQL语句动态执行、 63 苏州科技学院本科生毕业设计(论文) 网络环境支持等增强特性。在完成SQL-92标准后,ANSI和ISO即开始合作开发SQL3标准。SQL3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。 数据库巨人的诞生——甲骨文公司(Oracle) 1976 年IBM E.F.Codd发表了一篇里程碑的论文“R系统:数据库关系理论”,介绍了关系数据库理论和查询语言SQL。Oracle的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者E.F.Codd十年前就发表了关系数据库理论,并在IBM 研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQL。Ellison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。Ellison认为这是他们的机会:他们决定开发通用商用数据库系统Oracle,这个名字来源于他们曾给中央情报局做过的项目名。几个月后,他们就开发了Oracle 1.0 。但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使Oracle变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。而IBM却没有计划开发,为什么蓝色巨人放弃了这个价值上百亿的产品,原因有很多:IBM的研究人员大多是学术出身,他们最感兴趣的是理论,而非推向市场的产品,从学术上看,研究成果应公开,发表论文和演讲能使他们成名,为什么不呢,还有一个很主要的原因就是IBM 当时有一个销售得还不错的层次数据库产品IMS。直到1985年I B M 才发布了关系数据库D B 2 ,Ellision那时已经成了千万富翁。Ellison曾将IBM 选择Microsoft 的MS-DOS作为IBM-PC机的操作系统比为:“世界企业经营历史上最严重的错误,价值超过了上千亿美元。”IBM 发表R系统论文,而且没有很快推出关系数据库产品的错误可能仅仅次之。Oracle 的市值在1996年就达到了280亿美元。 面向对象数据库 随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的“表格型数据”,却对技术界出现的越来越多的复杂类型的数据无能为力。九十年代 64 苏州科技学院本科生毕业设计(论文) 以后,技术界一直在研究和寻求新型数据库系统。但在什么是新型数据库系统的发展方向的问题上,产业界一度是相当困惑的。受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究“面向对象的数据库系统(object oriented database)”或简称“OO数据库系统”。值得一 提的是,美国Stonebraker教授提出的面向对象的关系型数据库理论曾一度受到产业界的青睐。而Stonebraker本人也在当时被Informix花大价钱聘为技术总负责人。 然而,数年的发展表明,面向对象的关系型数据库系统产品的市场发展的情况并不理想。理论上的完美性并没有带来市场的热烈反应。其不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户,尤其是大客户来说,是无法承受新旧数据间的转换而带来的巨大工作量及巨额开支的。另外,面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的应用技术为畏途。 数据管理的变革 二十世纪六十年代后期出现了一种新型数据库软件:决定支持系统(DSS),其目的是让管理者在决策过程中更有效地利用数据信息。于是在1970年, 第一个联机分析处理工具——Express诞生了。其他决策支持系统紧随其后,许多是由公司的IT部门开发出来的。 1985年,第一个商务智能系统(business intelligence)由Metaphor计算机系统有限公司为Procter & Gamble公司开发出来,主要是用来连接销售信息和零售的扫描仪数据。同年, Pilot 软件公司开始出售第一个商用客户/服务器执行信息系统——Command Center。同样在这年,加州大学伯克利分校Ingres项目演变成Postgres,其目标是开发出一个面向对象的数据库。此后一年, Graphael公司开发了第一个商用的对象数据库系统—Gbase。 1988年,IBM公司的研究者Barry Devlin和Paul Murphy发明了一个 65 苏州科技学院本科生毕业设计(论文) 新的术语—信息仓库,之后,IT的厂商开始构建实验性的数据仓库。1991年,W.H. "Bill" Inmon出版了一本“如何构建数据仓库”的书,使得数据仓库真正开始应用。 1991: W.H.“Bill” Inmon发表了”构建数据仓库” 二十世纪九十年代,随着基于PC的客户/服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新的天地。 数据库模型 数据库模型描述了在数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述(例如树,表等):模型的操纵部分规定了数据添加,删除,显示,维护,打印,查找,选择,排序和更新等操作。 分层模型 第一个数据库管理系统使用的是分层模型,也就是说,将数据记录排列成树形结构。一些记录时根目录,在其他所有记录都有独立的父记录。树形结构的设计反映了数据被使用的顺序,也就是首先访问处于树根位置的记录,接下来是跟下面的记录,等等。 分层模型的开发是因为分层关系在商业应用中普遍存在,众所周知,一个组织结构图表就描述了一种分层关系:高层管理人员在最高层,中层管理人员在较低的层次,负责具体事务的雇员在最底层。值得注意的是,在一个严格的分层结构体系中,在每个管理层下可能有多个雇员或多个层次的雇员,但每个雇员只有一个管理者。分层结构数据的典型特征是数据之间的一对多关系。 在分层方法中,当数据库建立时,每一关系即被明确地定义。在分层数据库中的每一记录只能包含一个关键字段,任意两个字段之间只能有一种关系。由于数据并不总是遵循这种严格的分层关系,所以这样可能会出现一些问题。 66 苏州科技学院本科生毕业设计(论文) 关系模型 在1970年,数据库研究取得了重大突破。E.F.Codd提出了一种截然不同的数据库管理方法,使用表作为数据结构,称之为关系模型. 关系数据库是使用最广的数据结构,数据被组织成关系表,每个表由称作记录的行和称作字段的列组成。每个记录包含了专用项目的字段值。例如,在一个包含雇员信息的表中,一个记录包含了像一个人姓名和地址这样的字段的值。 结构化查询语言(SQL)是一种在关系型数据库中用于处理数据的查询语言。它是非过程化语言或者说是描述性的,用户只须指定一种类似于英语的描述,用来确定操作,记录或描述记录组合。查询优化器将这种描述翻译为过程执行数据库操作。 网状模型 网状模型在数据之间通过链接表结构创建关系,子记录可以链接到多个父记录。这种将记录和链接捆绑到一起的方法叫做指针,他是指向一个记录存储位置的存储地址。使用网状方法,一个子记录可以链接到一个关键记录,同时,它本身也可以作为一个关键记录。链接到其他一系列子记录。在早期,网状模型比其他模型更有性能优势;但是在今天,这种优势的特点只有在自动柜员机网络,航空预定系统等大容量和高速处理过程中才是最重要的。 分层和网状数据库都是专用程序,如果开发一个新的应用程序,那么在不同的应用程序中保持数据库的一致性是非常困难的。例如开发一个退休金程序,需要访问雇员数据,这一数据同时也被工资单程序访问。虽然数据是相同的,但是也必须建立新的数据库。 对象模型 最新的数据库管理方法是使用对象模型,记录由被称作对象的实体来描述,可以在对象中存储数据,同时提供方法或程序执行特定的任务。 对象模型使用的查询语言与开发数据库程序所使用的面向对象的程序设计语言是相同的,因为没有像SQL这样简单统一的查询语言,所以会产生一些问题。 67 苏州科技学院本科生毕业设计(论文) 对象模型相对较新,仅有少数几个面向对象的数据库实例。它引起了人们的关注,因为选择面向对象程序设计语言的开发人员希望有一个基于在对象模型基础上的数据库。 分布式数据库 类似的,分布式数据库指的是数据库的各个部分分别存储在物理上相互分开的计算机上。分布式数据库的一个目的是访问数据信息时不必考虑其他位置。注意,一旦用户和数据分开,通信和网络则开始扮演重要角色。 分布式数据库需要部分常驻于大型主机上的软件,这些软件在大型机和个人计算机之间建立桥梁,并解决数据格式不兼容的问题。在理想情况下,大型主机上的数据库看起来像是一个大的信息仓库,而大部分处理则在个人计算机上完成。 分布式数据库系统的一个缺点是它们常以主机中心模型为基础,在这种模型中,大型主机看起来好像是雇主,而终端和个人计算机看起来好像是奴隶。但是这种方法也有许多优点:由于数据库的集中控制,前面提到的数据完整性和安全性的问题就迎刃而解了。当今的个人计算机,部门级计算机和分布式处理都需要计算机之间以及应用程序之间在相等或对等的基础上相互通信,在数据库中客户机/服务器模型为分布式数据库提供了框架结构。 利用相互连接的计算机上运行的数据库应用程序的一种方法是将程序分解为相互独立的部分。客户端是一个最终用户或通过网络申请资源的计算机程序,服务器是一个运行着的计算机软件,存储着那些通过网络传输的申请。当申请的资源是数据库中的数据时,客户机/服务器模型则为分布式数据库提供了框架结构。 文件服务器指的是一个通过网络提供文件访问的软件,专门的文件服务器是一台被指定为文件服务器的计算机。这是非常有用的,例如,如果文件比较大而且需要快速访问,在这种情况下,一台微型计算机或大型主机将被用作文件服务器。分布式文件服务器将文件分散到不同的计算机上,而不是将它们集中存放到专门的文件服务器上。 68 苏州科技学院本科生毕业设计(论文) 后一种文件服务器的优点包括在其他计算机上存储和检索文件的能力,并可以在每一台计算机上消除重复文件。然而,一个重要的缺点是每个读写请求需要在网络上传播,在刷新文件时可能出现问题。假设一个用户申请文件中的一个数据并修改它,同时另外一个用户也申请这个数据并修改它,解决这种问题的方法叫做数据锁定,即第一个申请使其他申请处于等待状态,直到完成第一个申请,其他用户可以读取这个数据,但不能修改。 数据库服务器是一个通过网络为数据库申请提供服务的软件,例如,假设某个用户在他的个人计算机上输入了一个数据查询命令,如果应用程序按照客户机/服务器模型设计,那么个人计算机上的查询语言通过网络传送数据库服务器上,当发现数据时发出通知。 在工程界也有许多分布式数据库的例子,如SUN公司的网络文件系统(NFS)被应用到计算机辅助工程应用程序中,将数据分散到由SUN工作站组成的网络上的不同硬盘之间。 分布式数据库是革命性的进步,因为把数据存放在被使用位置上是很合乎常理的。例如一个大公司不同部门之间的计算机,应该将数据存储在本地,然而,当被授权的管理人员需要整理部门数据时,数据应该能够被访问。数据库信息系统软件将保护数据库的安全性和完整性,对用户而言,分布式数据库和非分布式数据库看起来没有什么差别。 69 苏州科技学院本科生毕业设计(论文) 附录A 外文原文 A introduction to Database Management System A database (sometimes spelled data base) is also called an electronic database , referring to any collection of data, or information, that is specially organized for rapid search and retrieval by a computer. Databases are structured to facilitate the storage, retrieval , modification, and deletion of data in conjunction with various data-processing operations .Databases can be stored on magnetic disk or tape, optical disk, or some other secondary storage device. A database consists of a file or a set of files. The information in these files may be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage , and each field typically contains information pertaining to one aspect or attribute of the entity described by the database . Using keywords and various sorting commands, users can rapidly search , rearrange, group, and select the fields in many records to retrieve or create reports on particular aggregate of data. Complex data relationships and linkages may be found in all but the simplest databases .The system software package that handles the difficult tasks associated with creating ,accessing, and maintaining database records is called a database management system(DBMS).The programs in a DBMS package establish an interface between the database itself and the users of the database.. (These users may be applications programmers, managers and others with information needs, and various OS programs.) A DBMS can organize, process, and present selected data elements form the database. This capability enables decision makers to search, probe, and query database contents in order to extract answers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially be vague 70 苏州科技学院本科生毕业设计(论文) and/or poorly defined ,but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the common database in response to the queries of those who aren’t programmers. A database management system (DBMS) is composed of three major parts:(1)a storage subsystem that stores and retrieves data in files;(2) a modeling and manipulation subsystem that provides the means with which to organize the data and to add , delete, maintain, and update the data;(3)and an interface between the DBMS and its users. Several major trends are emerging that enhance the value and usefulness of database management systems; Managers: who require more up-to-data information to make effective decision Customers: who demand increasingly sophisticated information services and more current information about the status of their orders, invoices, and accounts. Users: who find that they can develop custom applications with database systems in a fraction of the time it takes to use traditional programming languages. Organizations : that discover information has a strategic value; they utilize their database systems to gain an edge over their competitors. The Database Model A data model describes a way to structure and manipulate the data in a database. The structural part of the model specifies how data should be represented(such as tree, tables, and so on ).The manipulative part of the model specifies the operation with which to add, delete, display, maintain, print, search, select, sort and update the data. 71 苏州科技学院本科生毕业设计(论文) Hierarchical Model The first database management systems used a hierarchical model-that is-they arranged records into a tree structure. Some records are root records and all others have unique parent records. The structure of the tree is designed to reflect the order in which the data will be used that is ,the record at the root of a tree will be accessed first, then records one level below the root ,and so on. The hierarchical model was developed because hierarchical relationships are commonly found in business applications. As you have known, an organization char often describes a hierarchical relationship: top management is at the highest level, middle management at lower levels, and operational employees at the lowest levels. Note that within a strict hierarchy, each level of management may have many employees or levels of employees beneath it, but each employee has only one manager. Hierarchical data are characterized by this one-to-many relationship among data. In the hierarchical approach, each relationship must be explicitly defined when the database is created. Each record in a hierarchical database can contain only one key field and only one relationship is allowed between any two fields. This can create a problem because data do not always conform to such a strict hierarchy. Relational Model A major breakthrough in database research occurred in 1970 when E. F. Codd proposed a fundamentally different approach to database management called relational model ,which uses a table as its data structure. The relational database is the most widely used database structure. Data is organized into related tables. Each table is made up of rows called and columns called fields. Each record contains fields of data about some specific item. For example, in a table containing information on employees, a record would contain fields of data such as a person’s last name ,first name ,and street address. 72 苏州科技学院本科生毕业设计(论文) Structured query language(SQL)is a query language for manipulating data in a relational database .It is nonprocedural or declarative, in which the user need only specify an English-like description that specifies the operation and the described record or combination of records. A query optimizer translates the description into a procedure to perform the database manipulation. Network Model The network model creates relationships among data through a linked-list structure in which subordinate records can be linked to more than one parent record. This approach combines records with links, which are called pointers. The pointers are addresses that indicate the location of a record. With the network approach, a subordinate record can be linked to a key record and at the same time itself be a key record linked to other sets of subordinate records. The network mode historically has had a performance advantage over other database models. Today , such performance characteristics are only important in high-volume ,high-speed transaction processing such as automatic teller machine networks or airline reservation system. Both hierarchical and network databases are application specific. If a new application is developed ,maintaining the consistency of databases in different applications can be very difficult. For example, suppose a new pension application is developed .The data are the same, but a new database must be created. Object Model The newest approach to database management uses an object model , in which records are represented by entities called objects that can both store data and provide methods or procedures to perform specific tasks. The query language used for the object model is the same object-oriented programming language used to develop the database application .This can create problems because there is no simple , uniform query language such as SQL . The object model is relatively new, and only a few examples of object-oriented database exist. It has attracted attention because developers who choose an object-oriented 73 苏州科技学院本科生毕业设计(论文) programming language want a database based on an object-oriented model. Distributed Database Similarly , a distributed database is one in which different parts of the database reside on physically separated computers . One goal of distributed databases is the access of information without regard to where the data might be stored. Keeping in mind that once the users and their data are separated , the communication and networking concepts come into play . Distributed databases require software that resides partially in the larger computer. This software bridges the gap between personal and large computers and resolves the problems of incompatible data formats. Ideally, it would make the mainframe databases appear to be large libraries of information, with most of the processing accomplished on the personal computer. A drawback to some distributed systems is that they are often based on what is called a mainframe-entire model , in which the larger host computer is seen as the master and the terminal or personal computer is seen as a slave. There are some advantages to this approach . With databases under centralized control , many of the problems of data integrity that we mentioned earlier are solved . But today’s personal computers, departmental computers, and distributed processing require computers and their applications to communicate with each other on a more equal or peer-to-peer basis. In a database, the client/server model provides the framework for distributing databases. One way to take advantage of many connected computers running database applications is to distribute the application into cooperating parts that are independent of one anther. A client is an end user or computer program that requests resources across a network. A server is a computer running software that fulfills those requests across a network . When the resources are data in a database ,the client/server model provides the framework for distributing database. A file serve is software that provides access to files across a network. A 74 苏州科技学院本科生毕业设计(论文) dedicated file server is a single computer dedicated to being a file server. This is useful ,for example ,if the files are large and require fast access .In such cases, a minicomputer or mainframe would be used as a file server. A distributed file server spreads the files around on individual computers instead of placing them on one dedicated computer. Advantages of the latter server include the ability to store and retrieve files on other computers and the elimination of duplicate files on each computer. A major disadvantage , however, is that individual read/write requests are being moved across the network and problems can arise when updating files. Suppose a user requests a record from a file and changes it while another user requests the same record and changes it too. The solution to this problems called record locking, which means that the first request makes others requests wait until the first request is satisfied . Other users may be able to read the record, but they will not be able to change it . A database server is software that services requests to a database across a network. For example, suppose a user types in a query for data on his or her personal computer . If the application is designed with the client/server model in mind ,the query language part on the personal computer simple sends the query across the network to the database server and requests to be notified when the data are found. Examples of distributed database systems can be found in the engineering world. Sun’s Network Filing System(NFS),for example, is used in computer-aided engineering applications to distribute data among the hard disks in a network of Sun workstation. Distributing databases is an evolutionary step because it is logical that data should exist at the location where they are being used . Departmental computers within a large corporation ,for example, should have data reside locally , yet those data should be accessible by authorized corporate management when they want to consolidate departmental data . DBMS software will protect the security and integrity 75 苏州科技学院本科生毕业设计(论文) of the database , and the distributed database will appear to its users as no different from the non-distributed database . 76
本文档为【实验小学教学管理系统的设计与实现——后台数据库系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:395KB
软件:Word
页数:82
分类:工学
上传时间:2017-11-24
浏览量:41