1、武汉理工大学基于Qt的教务管理系统的设计摘 要随着学校规模的不断扩大,学生的流动变迁导致了学校在管理学生信息上的复杂程度上不断的增加,在学校,教务管理依然变成了一项繁琐且耗费资源的事;并且信息技术的不断发展,并且得到了越来越广泛的应用,教务管理系统的实施在技术上已趋于成熟。而且作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无可比拟的优点,如检索迅速,查询方便,效率高,可靠性好等一系列的好处,这些好处都可以极大的提高学校教务管理的效率。本文采用“自上而下的总体规划,自下而上的应用开发”的设计策略,设计了一套行之有效的教务管理系统的方案。文章介绍了该教务管理系统的需求分析
2、部分,系统数据库设计部分以及系统功能设计部分等。此外,本系统本着以人为本的方针,界面友好,操作简单,比较实用。关键词: 教务管理系统;学生管理;计算机管理The design of the education administration system based on QtAbstractWith the continuous expansion of the school, students flow change led to the school on information management students of the complex degree of increasing
3、, in school, educational administration still has become a cumbersome and expensive thing. With the continuous development of information technology, and has been more and more widely used, the implementation of educational administration system has been mature in technology. Also as a part of compu
4、ter application, using computer to school of all kinds of information management, with a manual management incomparable advantages, such as searching quickly, query convenient, high efficiency, good reliability and so on a series of advantages, these advantages can greatly improve the efficiency of
5、school educational administration. The general layout of this article USES the top-down and bottom-up application development of the design strategy, design a set of effective teaching management system solutions. This paper introduces the requirements analysis part of the educational administration
6、 system, the system database design and system function design, etc. In addition, this system is in line with the principle of people-oriented, friendly interface, simple operation, more practical.KeyWords:educational management system; student management; computer management武汉理工大学武汉理工大学目 录摘 要iAbstr
7、actii1 系统概述11.1 教务管理系统开发的背景11.2 教务系统开发的目的和意义11.3 目前国内外的研究现状21.4 国外研究现状22 关键技术32.1 Qt Creator32.2 UML43 可行性分析及总体设计53.1 系统业务价值53.2 可行性分析53.3 总体设计的基本原则63.4 系统需求分析63.5 系统总体层次图73.5 系统功能描述73.3.1 学生功能模块:73.3.2 教师功能模块:73.3.3 管理员功能模块:83.3.4 通用模块:83.4 数据库设计原则83.5 逻辑结构设计83.7 项目生存期模型选择113.8 本系统有待解决地方134 系统详细设计1
8、44.1 开发环境及过程简介144.2 主要功能模块设计154.3 系统的整体流程图164.3.1 用户登录模块设计174.3.2 注册用户模块设计174.3.3 管理员管理模块194.3.4 学生管理模块204.3.5 教师管理模块214.4 数据库的实现224.4.1数据库的界面操作224.4.2数据库的SQL操作234.5 数据备份及恢复策略244.6 系统界面布局的实现说明255 系统设计界面展示295.1 登录界面展示295.2 用户信息以及密码修改界面展示295.3 信息修改界面展示305.4 信息添加界面展示315.5 信息查看界面展示315.6 信息删除界面展示325.7 管理
9、用户界面展示325.8 奖罚管理界面展示335.9 系统信息界面展示336 系统测试346.1 系统的测试范围346.2 测试任务346.2.1 测试目标346.2.2 测试质量346.3 测试综述346.3.1 单元测试356.3.2 功能测试35总 结36参考文献37致 谢38外文原文39外文翻译48武汉理工大学1 系统概述1.1 教务管理系统开发的背景教务管理系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、存储、更新和维护,教务管理系统提供给管理者需要的信息来实现对组织机构的有效管理,随着社会的发展,人们对各种信息的需求量越来越大。同
10、时对信息的管理难度也在不断在增加,仅仅依靠当初的纸面记录信息和管理已经不能满足当今大量信息的管理了,因此,利用计算机硬件,软件和网络设备来管理信息成为当今信息管理的主要且可行的方式。这种方式能大大提高信息的管理力度,信息的冗余度小,大大减小了信息管理者的工作量,同时对信息的安全有了保障。但是这些似乎满足不了人们的需求,因为所开发的这些软件和系统的性能还远远不够,如性能,比如并发性,如果一个系统同时有很多人使用的话,会造成阻塞甚至崩溃,人们不得不一再登录或者等待,有时学生要花费很多时间才能查询到自己需要的信息或者是完成自己想做的事。教务管理系统对于高校的管理来说是至关重要的,学生信息是高等学校非
11、常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、
12、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。我作为学习计算机专业的一员,对系统的需求作了较深入的认识,同时也掌握了一定的系统开发理论,借这次毕业设计的契机,一方面利用自己的所学小刀试牛,另一方面通过这次实践必将提升自身对软件工程、数据库、程序设计等理论的认识,积累系统开发的经验。作为毕业设计,由于时间比较紧张,加之本人没有任何系统开发的经验,它肯定存在许许多多不足的地方,但对它的改善和功能的完备并不会随着毕业设计的结束而终止。本人将在原来的基础上,着眼未来,
13、追踪计算机新技术发展,并应用到系统持续开发中。1.2 教务系统开发的目的和意义高校教务管理信息化是提高办公效率的重要途径。随着我国高等教育的快速发展,高校办学规模的不断扩大,在校学生人数的不断增多,办学层次出现了多元化,由一地办学发展到多地多点办学,同时进一步推行全面学分制。这些变化使教务管理部门的管理任务越来越繁重,不仅增加了工作量,更增加了工作难度和复杂度,按传统的管理模式,只靠有限的工作人员已无法进行高效管理。高校教务管理的信息化已成为教学管理现代化的迫切要求,因为它能够将教务工作人员从繁琐的手工劳动中解放出来,在大量的数据面前进行查询、统计同时进行管理,减轻了教务工作人员的劳动强度,极
14、大了提高了工作效率。高校教务管理信息化是高校教务管理工作规范化的有力保障。高校的教务管理是一项庞大的系统工程,工作事务杂、环节多、工作量大,没有科学的手段和严格的规章制度是无法保障教学秩序的。教学工作规范化管理是比常规教学管理更高层次上的管理,几乎涉及到教与学的所有方面,其基本信息更渗透到教学各个环节且贯彻始终,这就要求必须按一定规范流程进行科学的管理,而信息化有助于这一管理过程成功实现,通过完善管理信息化制度,可以规范管理,保证教学效果,提高管理效率,有效地提高教务管理工作的规范化和现代化水平,使教务管理工作走上良性循环的轨道。1.3 目前国内外的研究现状教务管理系统对高校教务管理信息化建设
15、有重要意义,在学生的教学管理、成绩管理、学籍管理和其它培养过程中,实现了培养全过程的网络化和信息化,为高校教务管理的信息化、智能化奠定了坚实的基础。然而随着教育管理系统的进一步的应用和教务管理信息化工作的逐步深入,也逐渐暴露出了一些问题,并且已经影响到教务管理信息化工作的健康发展,最尖锐的问题就是教育管理信息化标准化的问题。其主要的表现有以下几点:原有的管理信息标准不完备,缺少一套完整的教育管理信息标准。由于缺乏一套完整的教育管理信息标准,目前许多教育管理部门和学校均根据各自工作需要采用相应的管理信息,这些信息不仅不规范、不完整,且互不兼容,难以进行信息交流。随着全国性的教育管理信息网络的逐步
16、建立,这些信息的价值和作将难以得到体现和发挥,有的甚至会成为信息垃圾。教务管理系统灵活性差,缺少可扩充性和开放性。随着教学改革的不断深入,专业培养方案的不断调整,对教务管理系统的灵活性要求很高,目前的教务管理系统,多数不具有扩充性,对高校教务管理工作的新要求,难以进行及时调整,因此,造成了一些管理系统不能长期稳定的应用。教务管理系统的平台很多,水平参差不齐。目前我国教务管理系统开发者很多,有专业的软件公司人员,也有在高校教务工作的管理者;开发的应用软件类型也多种多样,有单机版的教务管理系统,也有基于Internet的教务管理系统。教务平台的水平高低不齐,但是能真正适合高校教务管理实际情况,并且
17、智能化的可扩充性的教务系统并不多见。缺乏一套完整的网上信息交换规范。通过网络实现不同教育部门之间的信息交流需要一套完整的网上信息交换规范,由于缺乏这样的一个规范,已开始在一定程度上影响了教育部门间的网上信息交流。缺乏对教育管理信息化工作的指导和管理。管理信息化工作是一项全新的事业,发展速度很快,对技术的依赖程度高。1.4 国外研究现状在信息化浪潮席卷全球、日益渗透到社会生活各个领域的今天,数字化校园建设如火如荼。特别是,欧美、日本等发达国家高度重视信息化建设,早在 20 世纪 90年代初几乎所有的高校便建成了比较完善的校园网,各个职能部门都基本实现了网络化、信息化管理。目前国外在教务管理软件的
18、设计和开发方面处于领先地位,不论是在开发的方法上还是在软件的使用率上都很成功。2 关键技术2.1 Qt CreatorQt Creator是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。QtCreator主要是为了帮助新Qt用户更快速入门并运行项目,还可提高有经验的Qt开发人员的工
19、作效率。使用强大的 C+ 代码编辑器可快速编写代码。语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。采用C+语言设计,编码规范清晰,关键算法或处理须加注释说明。Qt Creator是一款跨平台的集成开发环境,特别针对Qt开发者,是QtSDK组成的一部分,可运行于Windows, Linux/X11及Mac OS X等桌面操作系统,允许开发者为多桌面环境及移动设备平台创建应用程序。它包括一个可视化调试工具和集成的 GUI 版面和外形设计师。这个编辑器的功能包括语法高亮度显示和自动完成。Qt Creator 在 Linux 上,使
20、用GCC的 C+ 编译器。在 Windows,默认安装它可以使用MinGW或MSVC。从源代码编译时,也可以使用cdb。QT Creator是一个跨平台的 C+ GUI 应用构架,它提供了丰富的窗口控件,具有面向对象、易于扩展、组件编程等特点,最为引人注目的是目前在 Linux 上最为流行的 KDE 的桌面环境,它就是建立在 QT 库的基础之上。QT 支持多种平台,随着 KDE 的快速发展普及,QT 很有可能成为 Linux 系统窗口平台上进行软件开发的 GUI 首选工具。信号和槽是 QT 的核心机制,要学会 QT 编程那么就必须对信号和槽机制有所了解。信号和槽机制是一种接口,应用在对象之间的
21、通信,是 QT 的核心特性,同时也是 QT 区别于其它种类工具包的重要地方。信号和槽机制是 QT 自行定义的一种通信机制,它独立于标准的 C/C+ 语言,所以必须要正确的处理好信号和槽机制,这里借助moc(Meta Object Compiler)工具,该moc工具是一个 C+的预处理工具,为事件处理自动生成所需要的附加处理代码。在我们所熟知的多种 GUI 工具包中,窗口小控件 (widget) 都有一个回调函数用来响应它们能触发的动作,这个回调函数通常是一个指针,它指向某个函数。但是,在 QT 中信号和槽机制取代了这些函数指针,使得人们在编写这些通信程序时更为简洁明了。 信号和槽机制能使用任
22、意数量、任意类型的参数。在这里我设计的主窗口命名为:mainwindow。所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都可以包含信号和槽机制。当对象改变状态时,信号就由该对象发射出去,这就是对象所要做的事情,但它不知道另一端是谁在接收这个信号,这就是所谓的信息封装,它保证对象被当作一个真正的组件来使用。槽被用来接收信号,它们是对象成员函数,称为槽函数。但槽函数并不知道是否有信号和自己相连。而且,对象也不了解具体的通信机制。在编程时可以将多个信号与单个槽函数进行连接,也可以将单个信号与多个槽函数进行连接,甚至也可以将一个信号和另外一个信号相连,这时无论第一个信号在何时发
23、射,那么都将立刻发射第二个信号。总之,信号与槽机制构成了一个很强大的控件编程机制。2.2 UML统一建模语言(UML,英语:Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML集成了Booch,OMT和面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。
24、UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关对象导向的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助她建立一个业界标准。许多人通过UML认识了用例,UML定义为展现用例的图形符号。 UML并没有为描述用例定义书写格式的标准,因此许多人误认为这些图形符号就是用例本身;然而,图形符号只能给出最简单的一个或一组用例的概要。UML是用例图形符号最流行的标准。但是,还有一些其它的可选择的标准。用例
25、(英语:use case),或译使用案例、用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言。用例一般是由软件开发者和最终用户共同创作的。在1986年,Ivar Jacobson,UML和瑞理统一过程的重要贡献者,提出了用例的概念。Jacobson的思想很有影响力,也很有发展力。之后在这个科目上又有很多贡献,在定义用例是什么和怎么有效的书写用例方面最重
26、要,最有影响力也最全面的,是Alistair Cockburn,他写的书籍是编写有效用例。用例迅速成为获取功能需求最常用的手段。用例最初是和面向对象一同提出的。但是它不止局限于面向对象系统,因为用例实质上不是面向对象。用例图包含一组用例。每一用例用椭圆表示,放置在矩形框中;矩形框表示整个系统。矩形框外画如图所示的小人,表示参与者。参与者不一定是人,可以是其他软件、硬件等等。某一参与者与某一用例用线连起来,表示该参与者和该用例有交互。 3 可行性分析及总体设计3.1 系统业务价值系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析
27、的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。系统设计又称为物理设计,是开发管理信息系统的第二阶段,系统设计通常可分为两个阶段进行,首先是总体设计,其任务是设计系统的框架和概貌,并向用户单位和领导部门作详细报告并认可,在此基础上进行第二阶段详细设计,这两部分工作是互相联系的,需要交叉进行,本章将这两个部分内容结合起来进行介绍。系统设计是开发人员进行的工作,他们将系统设计阶段得到的目标系统的逻辑模型转换为目标系统的物理模型,该阶段得到工作成果系统设计说明书是下一个阶段系统实施的工作依据。现如今高等院校的招生人数越来
28、越多,必然就会有大量的学生信息、教师信息及课程信息需要处理。如果只靠人力来完成,这将会变成一项非常繁琐、复杂的工作,而且还有可能出现很多意想不到的错误,给管理这些数据带来了极大的不便,越来越不适合高校的发展需要。因此,为了提高教务管理工作的效率,减少错误的出现,节约大量的人力资源,教务管理也已经从手工操作转到计算机自动化信息处理阶段,所有高校都迫切需要计算机技术来进行教务信息的辅助管理。本文采用结构化分析的方法,详细阐述了一个功能比较强大的教务管理系统的设计流程、操作流程于涉及的一些关键技术。首先进行了可行性分析,然后是系统分析,通过实际的业务流程调研,分析业务流程和系统的组织结构,完成了数据
29、流分析和数据字典;然后是系统设计阶段主要完成了功能模块的划分、阐述了系统设计的思想、数据库的设计和系统设计的工具及技术。该阶段对本系统各个模块的功能进行了详细设计,形成了本系统的功能模块图;数据库设计时先进行了概念结构设计,然后进行了逻辑结构设计。最后完成了数据表的设计。3.2 可行性分析可行性分析也称为可行性研究,是在调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新系统的开发成功。下面将分别从技术、经济、社会三个方面对高校学生学籍管理系统的建设进行分析和研究。(1)技术可行性:通过衡量是否具备完成该系统所需要的
30、技术,通常可以按照硬、软件的性能规格要求、运行环境条件、工作人员能力水平和数量等要素去分析和考虑。为了使该系统的实施能够更加顺利,我们选择现在比较熟悉的QT工具进行开发平台的搭建和设计,同时选择SQLite数据库进行数据存储。对于硬件来说,选择的空间还是比较大的,因为硬件配置越高的话,网站的运行才可以更加流畅。由于现如今的家用或着商用电脑的硬件配置水平,所以在硬件方面,系统也是可行的。在软件方面,由于QT和SQLite是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。(2)经济可行性:经济可行性指我们所开发的软件能够为我们带来的经济效益和设计开发该软件
31、所进行的投入相比是否相宜,并且还得关注该软件是否可以真正为用户带来一定的经济效益。此次所开发的系统就是为使用教务系统的人员节约工作时间,提升工作效率,保证工作质量,方便管理和操作而设计完成的。经过论证,在经济可行性上来说,开发该系统是完全可行的。该软件的开发工作不需要花费大量的财力和人力,并且是由个人独立地完成设计,不仅可以节省许多费用,同时也可提高个人的实际动手能力。 (3)本系统是根据高校教务管理的实际工作情况开发研制的,是通过查阅大量的资料的出的。本系统对用户的要求,除了需要具备在Microsoft Windows平台上使用个人电脑的知识外,并不需要特别的技术能力。 3.3 总体设计的基
32、本原则考虑到本系统的设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:(1)简易性:在实现系统的功能的同时,尽量让系统操作简单易懂,符合大多数操作员习惯的用户界面这对于一个系统来说是非常重要的。(2)针对性:本系统设计是针对高校教务管理的需求定向开发设计,所以具有专业突出和很强的针对性。(3)实用性:要求本系统能够满足高校基本的教务管理的管理人员、学生的需要、老师的需要,因此具有良好的实用性。(4)一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。 (5)先进性:作为新型的教务管理系
33、统,本系统采用Qt开发技术、Sqlite等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。3.4 系统需求分析所谓需求分析,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。功能需求主要是为了明确所开发的软件必须具备的功能。教务管理系统是来自学生,教师和系统管理人员三个方面的要求。学生的需求是查询所有跟自己相关的信息,包括自己的个人信息、老师的一些基本信息,还有班级信息
34、与自己的学籍信息。除此之外,学生可以修改自己的登录系统的密码。对于自己在校期间的一些奖罚也可以通过这个系统来查看。教师的需求是在学生需求的基础上,添加了对学生成绩信息的管理,包括对成绩的增加、修改、删除等操作。这些操作对管理员来说也是可以操作的,但这些操作同样也是区别与学生权限的一些操作。教师也可以修改自己的登录密码,不过对于教师与学生来说如果忘记密码,那么他们将无法登录到系统中,只能找管理员去查看用户在系统中输入的密码或者修改用户的密码。系统管理人员是负责系统的管理和维护,更新系统数据库端的各种文件,系统管理人员应该注重数据的安全性和保密性。系统管理人员是最高权限的管理员,可以修改用户权限和
35、删除其信息。所以系统管理人员需要严格控制帐号与密码,否则,会造成系统使用混乱。当然,系统管理人员也可以进行学生、教师的所有操作。系统管理员还可以进行用户的信息管理与学生奖罚信息的管理。3.5 系统总体层次图按照需求分析可以将功能模块分为以下四大功能模块,如图3-1所示。图3-1 功能模块划分示意图1.通用模块主要实现的是用户修改密码功能与登录功能。用户需要输入自己的特有信息才可以登录到系统中,并且登录到系统后可以修改自己的登录密码,防止其他人用自己的帐号登录到系统。2.教师模块主要实现的是学生成绩的管理,添加成绩和删除成绩以及修改成绩。对于已经存在于系统中的成绩,教师可以对成绩进行修改,并且教
36、师可以查看所有学生的成绩,如果要查看某个学生的成绩那么需要知道这个学生的学号,当然老师也可以使用学生的功能,查看某一个学生的个人信息。3.管理员模块主要实现的是管理员可以管理用户,对班级信息的管理、教师信息的管理、学生学籍档案信息以及学生的奖罚信息的管理。具体来说,管理员可以查看所有用户,可以通过用户名检索用户,然后对其进行删除或者修改权限。管理员可以查看所有老师,可以添加班级信息与修改学生档案,也可以通过奖罚模块来更新某个学校的奖罚信息。3.5 系统功能描述3.3.1 学生功能模块l 查看班级信息。l 查看个人信息。l 查看学籍信息。l 查看教师信息。l 查看个人考试成绩。l 查看个人奖罚信
37、息。3.3.2 教师功能模块l 添加学生某科成绩。l 修改学生某科成绩。l 删除学生某科成绩。l 查看所有学生成绩或某一个学生的成绩。l 查看自己的基本信息。l 查看班级信息。3.3.3 管理员功能模块l 学生教师的所有功能都有。l 对教师信息的管理,包括添加、删除、修改等。l 对班级信息的管理,包括添加、删除、修改等。l 对学生学籍信息的管理,包括添加、删除、修改等。l 对登录到系统用户进行注册。l 修改所有用户的登录密码。l 添加学生的奖罚信息。l 对奖罚信息进行管理。3.3.4 通用模块l 可以查看帮助信息。l 修改登录到系统中用户的登录密码.。3.4 数据库设计原则数据库是本系统的核心
38、和基础。它设计的好坏直接影响着整个系统的质量。数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作。在数据库设计过程中,需要遵循的一般原则是:1)数据库各表的设计要反应现实中的事物。数据表中的字段类型和大小要符合使用习惯。2)较少数据库的荣誉和数据的不一致性。书库应用的一个特点是对数据库的频繁操作,每次操作可能只会设计一个表,也可以同时设计多个表,也有可能对一个数据表进行多个操作,在这种情况下,由于数据冗余和数据不一致时,可能会引起错
39、误。3)要有助于提高数据处理速度。程序访问数据库的速度依赖于硬件的速度,数据量的大小和数据表设计的优劣,而前两个因素是很难更改的。4)要包成数据库的安全。安全性是数据库应用软件的重要要求。3.5 逻辑结构设计数据库是信息管理的基础,数据库结构直接关系到各种功能的实现和程序运行的效率,所以有必要设计一个完整性良好的数据库。有时程序员对于软件开发的出发点认识不是很明确,总是认为实现功能才是重要的,在简单了解完基本需求后就急忙进入编码阶段,对于数据库设计思考的比较少、比较简单,大多设计都只停留在表面上,这往往是要命的,会为系统留下很多隐患。要么是写代码开发过程中才发现问题,要么就是系统上线运转后没多
40、久就出现问题,还有可能给后期维护增加了很多工作量。如果到了那个时候再想修改数据库设计或进行优化等同于推翻重来。数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件。逻辑结构设计的主要任务是将概念结构设计的全局ER图转换为关系模式,并进行规范化和优化,然后为每个应用设计外模式。在本系统中使用的是Sqlite数据库。系统使用的数据库名为manager.db,包括6个数据库表,如下:l user表:记录登录系统的用户信息。l score表:记录学生成绩信息。l record
41、表:记录学生的信息。l classtable表:记录班级信息。l teacher表: 记录教师信息。l reward表:记录学生奖惩信息。使用SQLite完成系统中各个数据表的字段设置如下:用户表如表3-1所示,其中用户名id是主键,字段名type代表了用户类型,字段名passwd代表了登陆用户的密码。表3-1 用户表字段名类型长度可否为空说明typetext否idNUMBERIC10否主键passwdtext否学生成绩表如表3-2所示,其中学生的成绩单中学生学号Sid子段设置为学生成绩表的主键、id子段代表学生学号、schoolyear代表了学年、term代表学期、stuscore代表成绩。
42、表3-2 学生成绩表字段名类型长度可否为空说明SidNUMBERIC10否主键idNUMBERIC否schoolyearNUMBERIC是termNUMBERIC是stuscoreNUMBERIC是学生信息表如表3-3所示,其中学生学号为学生信息表的主键,子段name代表学生的姓名、sex代表性别、age代表年龄、classname代表班级名、telnum代表联系电话、address代表家庭住址、remark代表备注。表3-3 学生信息表字段名类型长度可否为空说明IdNUMBERIC10否主键nameText是SexText是AgeNUMBERIC是classsnameNUMBERIC是tel
43、numNUMBERIC是addressText是remarkText是班级信息表如表3-4所示,其中班级号id为班级信息表的主键,classname代表班级名、grade代表班级年级、schoolsystem代表了班级信息中的学制、major代表专业、boss代表班主任、remark代表备注。表3-4 班级信息表字段名类型长度可否为空说明idNUMBERIC10否主键classnameText是gradeText是schoolsystemText是majorText是bossText是remarkText是奖惩信息表如表3-5所示,字段名id代表学生学号,并且将学生学号作为奖惩信息表的主键,字
44、段名type代表了奖惩类型属性值、content代表奖惩内容。 表3-5 奖惩信息表字段名类型长度可否为空说明idNUMBERIC10否主键typeText否contentText否教师信息表如表3-6所示,其中教师编号id为教师信息表的主键,字段名teachjob代表的是教师职称、teachage代表教师年龄、teachsex代表教师性别、teachname代表教师姓名、teachtelnum代表教师联系电话。 表3-6 教师信息表字段名类型长度可否为空说明idNUMBERIC10否主键teachjobText是teachageNUMBERIC是teachsexText是teachnameT
45、ext是teachtelnumNUMBERIC是这些表的设计实际上到目前为止仅仅只是列出了表中要有的属性,并没有规定他们的属性管理。但在实际过程中,需要列出这些表之间相互的关系,这样他们就可以根据主键或者外键进行联系,创建连接视图,从而进行修改数据。对一个数据库来说,只能做到更优,不可能最优,并且根据实际需要,优化方案也是有所差异的,大概需要我们关心的有它的读取速度、存储空间、可维护性以及可扩展性等,而这些方面往往又是相互矛盾的。一般来说,在系统分析阶段往往有很多需要关注的方面,系统各种功能性、可用性、可靠性、安全性需要求往往吸引了我们大部分的注意力,但是,还需要注意的是,性能也是很重要的非功
46、能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好是能有各种需求的量化指标。设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能调优的过程,那就是数据库的设计。在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效的代码,为整个系统的性能打下良好的基础。在数据库的设计开发过程中,将数据库的数据设计的严密而有逻辑性是非常必要的,如果将一些数据只是单纯的存放到这里并没有太多的实际意义,只有将这些数据相互联系起来,然后在进行二次开发处理这样就简单合理的多了,所以这些数据属性的开发在后期需要再加以润色,使他们更加符合逻辑结构,这样对数据库的安全性考虑也是有好处的。3.7 项目生存期模型选择针对本项目的开发特点,参考企业的生存模型周期和软件体系,决定采用增量式模型。增量模型融合