基于JSP的教学管理系统开发与实现.doc_第1页
基于JSP的教学管理系统开发与实现.doc_第2页
基于JSP的教学管理系统开发与实现.doc_第3页
基于JSP的教学管理系统开发与实现.doc_第4页
基于JSP的教学管理系统开发与实现.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

玉林师范学院本科生毕业论文 设计 基于 JSP 的教学管理系统开发与实现 Implicamention of Teaching Management System with JSP 学 院数学与信息科学学院 专 业信息管理与信息系统 学 生 班 级2008 级 姓 名钟新雪 学 号200804403138 指导教师单位数学与信息科学学院 指导教师姓名龚榆桐 指导教师职称讲师 基于 JSP 的教学管理系统开发与实现 信息管理与信息系统 2008 级 钟新雪 指导老师 龚榆桐 摘要 J2EE 技术无疑是当今因特网应用的最佳技术方案之一 围绕 J2EE 技术的应用性 也产生了大量的 Web 开发框架 中间层开发框架 数据层开发框架 它们极大地提 升了 J2EE 技术的易用性 本文描述了 J2EE 的相关技术 比如 Servlet JSP Struts Hibernate 等 并用这些技术完成一个基于 Web 的教学管理系 统 本文介绍了在 myeclipse9 0 环境下采用 MVC 开发模式开发一个教务管理系统 的过程 文章介绍了教务管理信息系统的系统分析部分 包括需求分析和安全性分 析 系统设计部分主要介绍了系统功能设计和数据库设计及代码设计 系统实现与 测试部分说明了几个主要模块的算法 本系统界面友好 操作简单 比较实用 关键词关键词 Servlet JSP Struts Hibernate MVC 教学管理系统 Implicamention of Teaching Management System with JSP Imformation management and Imformation System 2008 Zhong Xinxue Supervisor Gong Yutong Abstract There is no doubt that J2EE technology is one of the best methods of today s Internet applications around the J2EE technology application a large number of Web development framework middle layer development framework and date layer development framework turn out which greatly enhance the J2EE technology Ease of use This text described the technology relate to J2EE such as Servlet JSP Struts Hibernate and so on then work out a System base on Web use these technology This article introduced environment uses myeclipse9 0 use the MVC Modle View Controller development modle to applies the development the strategy develops a management information system the process Through analyzes my school to count the branch department the educational administration management insufficiency founded a set of effective use computer to carry on the educational administration information management the plan The article introduced the educational administration management information system system analysis part including feasibility analysis data flow analysis and demand analysis and so on The system design part mainly introduced the system function design and the database design and the code design The system realization part explained several main module algorithms this system contact surface is friendly the operation is simple quite practical Keywords Servlet JSP Struts Hibernate MVC Teaching Management System 目录 1 引言 1 1 1 选题的背景 1 1 2 目的和意义 2 2 开发技术及环境 3 2 1 SERVLET简介 3 2 1 1 什么是 Servlet 3 2 1 2 Servlet 技术的特点 3 2 2 JSP 技术概述 4 2 2 1 JSP 技术的产生背景 4 2 2 2 JSP 技术的优势和弱势 4 2 2 3 JSP 技术的工作原理 5 2 3 STRUTS概述 5 2 3 1 Struts 的由来和发展 5 2 3 2 Struts 的 MVC 模式简介 5 2 3 3 Struts 的优缺点 7 2 3 4 Struts 的工作流程 8 2 4 HIBERNATE数据库持久化技术 9 2 4 1 Hibernate 简介 9 2 4 2 Hibernate 的工作流程 10 2 5 开发环境 10 2 5 1 Eclipse 开发工具 10 2 5 2 Tomcat 服务器 11 3 系统分析 12 3 1 需求分析 12 3 1 1 目标系统功能说明 12 3 1 2 用户需求分析 12 3 2 系统安全性 12 4 系统设计 14 4 1 数据库设计 14 4 1 1 数据库简介 14 4 1 2 数据库设计与实现 17 4 2 功能设置 23 4 2 1 主要模块的功能说明 23 4 2 2 系统功能模块图 23 4 3 控制处理层 24 5 系统实现与测试 25 5 1 业务逻辑层各 BEAN功能 25 5 2 系统界面 27 5 3 搭建系统运行环境 33 小结 34 致谢 34 参考文献 35 附录 36 1 引言引言 教学管理系统是集计算机技术 网络通信技术为一体的信息系统工程 通过 JSP 开发基于 Web 的教学管理系统 一方面它面向包括学生 教师和教学管理人员 大大方便学校的教务管理 另一方面它通过数据库管理学校的庞大信息量 保证了数 据的准确 及时 全面 详实 教学管理系统的开发过程是以软件工程的思想为指导 经过可行性研究 需求 分析 总体分析 详细设计等主要阶段而进行的规范的开发过程 目前开发 Web 应 用程序主要有 C S 客户机 服务器 和 B S 浏览器 服务器 两种模式 B S 设计 模式为我们提供了系统设计的基本思想和基本方向 相对于 C S 模式来讲 B S 模 式让客户端不安装软件通过对服务端的访问就可以得到所需信息 从而使网页更加 便于浏览和管理 符合使用者对使用系统的要求 也就是说用户无需安装客户端 只要通过浏览器就可以访问相关服务 它在系统升级或维护的时候 只要在 Web 服 务器中集中改动 用户在下一次页面刷新时就能立即得到反馈 而对于那些在服务 端运行的逻辑 改动对于用户来说是透明的的 此外 就数据迁移和安全性等方面 来讲 B S 模式也更加具有优势 学校作为一个复杂的机构 要实现其日常教学活动庞大数据量的有效管理 借 助于一个实用的教学管理系统是必不可少的 与教学活动相关的角色大致可分为学 生 教师和教学管理人员三类 而这三类用户所具备的权限 所关心的问题及所需 要的资料也互不相同 这就需要给他们提供不同的操作界面 规定他们的对应操 作 因此 教学管理系统的主要功能也必须针对这三类主要角色进行相对应的设 计 1 1 选题的背景选题的背景 随着数据库技术 网络技术和科学管理方法的发展 计算机在管理上的应用日 益广泛 管理信息系统逐渐成熟起来 并且给管理带来了新的革命 管理信息系统 是以人为主导的 通过运用计算机 网络通信设备及其它办公设备对信息进行收集 运输 加工 存储 更新 维护 支持高层决策 中层控制 基层运作的人机系 统 管理信息系统最大的特点是高度集中 能将组织中的数据和信息集中起来 进 行快速处理 统一使用 利用定量化的科学管理方法 通过预测 计划优化 管理 调节和控制等手段来支持决策 一个中心数据库和计算机网络系统是管理信息系统 ManagemantInformation System MIS 的重要标志 MIS 的处理方式是在数据库和网 络基础上的分布式处理 随着计算机网络和通讯技术的发展 不仅能把组织内部的 各级管理连接起来 而且能够克服地理界限 把分散在不同地区的计算机网络互连 形成跨地区的各种业务信息系统和管理信息系统 目前 虽然有许多学校已开始运 用计算机进行学校教务的管理 学校的教务管理系统必须是一个完整统一 技术先 进 高效稳定 安全可靠的系统 根据国内大学的现在管理模式 结合国际新的思 想观念 在校园网络环境下建设先进的 与国际水平接轨的信息化管理平台 提高 学校管理工作的现代化水平 使之成为学校公共信息服务体系的重要组成部分 教 学教务管理系统是高校管理信息系统建设的重要组成部分 是提高教学管理的质量 和效益乃至建设世界知名的高水平的大学的关键环节 教学教务信息处理的电脑化 网络化 也是实现学校管理现代化和信息化的重要内容 1 2 目的和意义目的和意义 随着计算机技术的不断发展 计算机作为知识经济时代的产物 已被广泛应用 于社会各个行业和领域 目前 我国的科技水平高速发展 计算机作为今天使用最 广的现代化工具已深入到各个领域 并且正在成为未来社会 信息社会的重要支 柱 在这样的大背景下 现代学校教务的管理方式 资源建设等方面都发生了重大 变化 这种变化表现在教务工作 管理和服务平台发生的变化 教务管理不再是传 统的手工操作 人工管理 而是全面实行计算机管理 此次毕业设计使我提高了自身解决实际问题的能力 但由于本人知识水有限 系统设计中还存在着很多不足 请各位领导批评指正 以便我今后改进 此外 该 系统能够顺利的完成离不开各位老师对我的帮助 在此深表感谢 2 开发技术及环境开发技术及环境 2 1 Servlet 简介简介 2 1 1 什么是什么是 Servlet Servlet Java 服务器小程序 是用 Java 编写的服务器端程序 是由服务器端调用 和执行的 按照 Servlet 自身规范编写的 Java 类 Servlet 可以看成是 Java 编写的 CGI 但是它的功能和性能比 CGI 更加强大 Servlet 是使用 Java Servlet 应用程序设计接口 API 及相关类和方法的 Java 程 序 除了 Java Servlet API Servlet 还可以用于扩展和添加到 API 的 Java 类软件 包 它最常见的用途是扩展 Web 服务器 提供非常安全的 可移植的 易于使用的 CGI 替代品 它是一种动态加载的模块 为来自 Web 服务器的请求提供服务 它完 全运行在 Java 虚拟机上 由于它在服务器端运行 因此它不依赖于浏览器的兼容 性 2 1 2 Servlet 技术的特点技术的特点 Servlet 是一个 Java 的类 能够实现除了图形界面外的 Java 的所有功能 总的 来说 它有以下优势 1 可移植性 它可以在不同的操作系统平台和不同的应用服务器平台下移植 2 功能强大 可以使用 Java API 核心的所有功能 3 安全 有几个不同的层次为 Servlet 的安全提供了保障 4 简洁 Servlet 代码面向对象 在封闭方面具有先天的优势 5 集成 Servlet 和服务器紧密集成 它们可以密切合作完成特定的任务 6 模块化 第一个 Servlet 可以执行一个特定的任务 并且可以将它们并在 一起工作 7 扩展性 Servlet 的接口设计得非常简单 使它具有很强的扩展性 8 高效耐久 Servlet 一旦载入 它就驻留在内存中 这样加快了响应的速度 2 1 3 Servlet 的生命周期 Servlet 部署在容器里 它的生命周期由容器管理 一般可概括为以下几个步骤 1 装载 Servlet 这项操作一般是动态执行的 2 servlet 容器创建 servlet 的一个实例 3 容器调用该实例的 init 方法 4 服务 如果容器对该 servlet 有请求 则调用此实例的 service 方法 5 销毁 通过调用 Servlet 的 destory 方法销毁 Servlet 2 2 JSP 技术概述技术概述 2 2 1 JSP 技术的产生背景技术的产生背景 JSP Java Server Pages 是由 Sun Microsystems 公司倡导 许多公司参与一起建立 的一种动态网页技术标准 该技术为创建显示动态生成内容的 Web 页面提供了一个 简捷而快速的方法 JSP 技术的设计目的是使得构造基于 Web 的应用程序更加容易 和快捷 而这些应用程序能够与各种 Web 服务器 应用服务器 浏览器和开发工具 共同工作 JSP 规范是 Web 服务器 应用服务器 交易系统 以及开发工具供应 商间广泛合作的结果 在传统的网页 HTML 文件 htm html 中加入 Java 程序片 段 Scriptlet 和 JSP 标记 tag 就构成了 JSP 网页 jsp 由于 JSP 构建在 Servlet 上 所以它有 Servlet 所有强大的功能 JSP 基于强大的 Java 语言 具有良好的伸缩性 与 Java Enterprise API 紧密地集成在一起 在网络数据库应用开发领域具有得天独厚 的优势 从 JSP 这几年的发展来看 JSP 已经取得了巨大的成功 它通过和 EJB 等 J2EE 组件进行集成 可以编写出具有大的伸缩性 高负载的企业级应用 它从多个 方面加速了动态 Web 应用页面的开发 2 2 2 JSP 技术的优势和弱势技术的优势和弱势 1 JSP 技术的优势 1 一次编写 到处运行 2 系统的多平台支持 3 强大的可伸缩性 4 多样化和功能强大的开发工具支持 2 JSP 技术的弱势 1 跨平台的功能和极度的伸缩能力 极大地增加了产品的复杂性 2 它需要一定的硬盘空间来存储一系列的 Java 文件 class 文件及对应的版 本文件 3 JSP 内置对象 JSP 包括九种内置对象 request 对象 response 对象 pageContext 对象 Session 对象 application 对象 out 对象 config 对象 page 对象以及 exception 对 象 其中通过 application 对象和 session 对象可以实现不同页面间的数据共享 2 2 3 JSP 技术的工作原理技术的工作原理 Web 服务器在遇到访问 JSP 网页的请求时 首先执行其中的程序片段 然后将 执行结果以 HTML 格式返回给客户 程序片段可以操作数据库 重新定向网页以及 发送 email 等等 这就是建立动态网站所需要的功能 所有程序操作都在服务器端 执行 网络上传送给客户端的仅是得到的结果 对客户浏览器的要求最低 可以实 现无 Plugin 无 ActiveX 无 Java Applet 甚至无 Frame 2 3 Struts 概述概述 2 3 1 Struts 的由来和发展的由来和发展 Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目 Struts 在英文中是支架 支撑的意思 这也体现出 Struts 在开发 Web 应用程序过程所起 到的重要作用 Struts 为 Web 应用提供了通用的框架 让开发人员可以把主要精 力集中在如何解决实际业务问题上 与此同时 Struts 框架也允许开发人员根据实际 需要进行扩展和定制 从而可以更好的适应用户的需求 采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作 很好地实现代码重用 使开发人员从一 些繁琐的工作中解脱出来 快速开发能够充分发挥 JSP Servlet 优点 并具有强可扩 展性的 Web 应用 总之 Struts 的出现使得 Web 应用的开发过程大大简化 从 而能够缩短开发周期 提高开发效率 2 3 2 Struts 的的 MVC 模式简介模式简介 模型 视图 控制器 MVC 是 80 年代 Smalltalk 80 出现的一种软件设计模式 现在已经被广泛的使用 1 模型 Model 模型是应用程序的主体部分 模型表示业务数据 或者业务逻辑 2 视图 View 视图是应用程序中用户界面相关的部分 是用户看到并与之交互的界面 3 控制器 controller 控制器工作就是根据用户的输入 控制用户界面数据显示和更新 model 对象状 态 图图 2 1 MVC 组件类型的关系和功能组件类型的关系和功能 Fig 2 1 Relations and functions of MVC CATID MVC 式的出现不仅实现了功能模块和显示模块的分离 同时它还提高了应用 系统的可维护性 可扩展性 可移植性和组件的可复用性 尽管 MVC 设计模式很 早就提出 但由于缺乏相关支持 在 Web 开发中引入 MVC 却相当困难 直到基于 J2EE 的 JSP Model 2 问世时才得以改观 下面对 JSP Model 1 与 JSP Model 2 进行 简单介绍 图图 2 2 JSP Model 1 JSP JavaBean 的数据传递关系图 的数据传递关系图 Fig 2 2 Datatransfer of JSP Modle 1 JSP JavaBean Servlet 图图 2 3 JSP Model 2 JSP JavaBean Servlet 的数据传递关系图的数据传递关系图 Fig 2 3 Datatransfer of JSP Modle 2 JSP JavaBean Servlet 比较两种模式 我们不难发现 JSP Model 2 显然比 JSP Model 1 层次关系更加清 楚 开发的页面也更易于维护 在这种模式中 各组件的分工关系非常明确 JSP 技术用于显示 充当了视图的角色 Servlet 用于执行业务逻辑 它相当于控制器的 角色 JavaBean 组件用于表示数据 相当于模型的角色 尽管如此 JSP Model 2 仍 不够好 它容易使系统出现多个 Controller 并且对页面导航的处理比较复 杂 Struts 就是在 JSP Model 2 的基础上实现的一个 MVC 架构 它只有一个中心控 制器 他采用 XML 定制转向的 URL 采用 Action 来处理逻辑 是对 JSP Model 2 的一个极大改进 3 2 3 3 Struts 的优缺点的优缺点 优点 Struts 跟 Tomcat Turbine 等诸多 Apache 项目一样 是开源软件 使开 发者能更深入的了解其内部实现机制 这是它的一大优点 除此之外 Struts 的优 点主要集中体现在两个方面 Taglib 和页面导航 Taglib 是 Struts 的标记库 灵活动 用 能大大提高开发效率 而页面导航则使系统的脉络更加清晰 通过一个配置文 件 即可把握整个系统各部分之间的联系 这对于后期的维护有着莫大的好处 尤其 是当另一批开发者接手这个项目时 这种优势体现得更加明显 缺点 Taglib 是 Struts 的一大优势 但对于初学者而言 却需要一个持续学习 的过程 甚至还会打乱你网页编写的习惯 但是 当你习惯了它时 你会觉得它真 的很棒 Struts 将 MVC 的 Controller 一分为三 在获得结构更加清晰的同时 也增 加了系统的复杂度 Struts 从产生到现在还不到半年 但已逐步越来越多运用于商 业软件 虽然它现在还有不少缺点 但它是一种非常优秀的 J2EE MVC 实现方式 2 3 4 Struts 的工作流程的工作流程 在 WEB 启动时就会中载并初始化 ActionServle 在 ActionServletstruts config xml 文件中读取配置信息 把它们存放到各种配置对象 中 当 ActionServlet 接收到一个客户请求时 它的执行过程大致如下 1 检索和用户请求匹配的 ActionMapping 实例 如果不存在 就返回用户请求 路径无效 2 如果 ActionForm 实例不存在 就创建一个 ActionForm 对象 把客户提交表单数 据保存到 ActionForm 对象中 3 根据配置住处决定是否需要表单验证 如果需要验证 就调用 ActionForm 扔 validate 方法 4 如果 ActionForm 的 validate 方法返回 null 或返回一个不包含 ActionMessage 的 ActionError 对象 就表示表单验证成功 5 ActionServlet 根据 ActionMapping 实例包含的映射住处决定将请求转发给哪个 Action 如果相应的 Action 实例不存在 就先创建这个实例 然后调用 Action 的 execrte 方法 6 Action 的 execute 方法返回一个 ActionForward 对象 ActionServlet 再把客户请 求转发给 ActionForward 对象指向的 JSP 组件 7 ActionForward 对象指向的 JSP 组件生成动态网页 返回给客户 4 下图是 Struts 的工作流程 所有的请求都提交给 ActionServlet 图图 2 4 struts 工作流程图工作流程图 Fig 2 4 Workflow of struts 2 4 Hibernate 数据库持久化技术数据库持久化技术 2 4 1 Hibernate 简介简介 Hibernate 是一个面向 Java 环境的对象 关系数据库映射工具 它是使用 GNU 宽 通用公共许可证发行的自由 开源的软件 它为面向对象的领域模型到传统的关系 型数据库的映射 提供了一个使用方便的框架 Hibernate 不仅仅管理 Java 类到数据库表的映射 包括 Java 数据类型到 SQL 数 据类型的映射 还提供了面向对象的数据查询检索机制 可以大幅度减少开发时人 工使用 SQL 和 JDBC 处理数据的时间 Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务 解放其中的 95 对于以数据为中心的程序来说 它们往往只在数据库中使用存储过程来实现 商业逻辑 Hibernate 可能不是最好的解决方案 但对于那些在基于 Java 的中间层应 用中实现面向对象的业务模型和商业逻辑的应用 Hibernate 是最有用的 2 4 2 Hibernate 的工作流程的工作流程 在 Java 应用中使用 Hibernate 大致包括以下步骤 1 创建 Hibernate 配置文件 2 创建持久类 3 创建对象 关系 映射文件 4 通过 Hibernate API 编写访问数据库的代码 2 5 开发环境开发环境 2 5 1 Eclipse 开发工具开发工具 Eclipse 是目前主流的 Web 应用程序开发工具之一 它是一个开放源代码的 与 NetBeans Sun ONE Studio 和 Borland Jbuilder 类似的一种基于 Java 的整合型可扩展 开发平台 也是目前最著名的开源项目之一 就其本身而言 它只是一个框架和一 组服务 用于通过插件组件构建开发环境 幸运的是 Eclipse 附带了一个标准的插 件集 包括 Java 开发工具 Java Development Tools JDT 它将包括 Spring Struts Hibernate 等在内主流的开发框架以插件的形式嵌入其中 大大减少 了程序开发人员的工作量 根据 Eclipse 的体系结构 通过开发插件 它能扩展到任 何语言的开发 甚至能成为图片绘制的工具 尽管 Eclipse 是使用 Java 语言开发的 但它的用途并不限于 Java 语言 例如 支持诸如 C C COBOL 和 Eiffel 等编程语言的插件已经可用 或预计会推 出 Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础 比如内 容管理系统 此外 Eclipse 还支持目前流行的多种数据库管理软件 如 SQL Oracle 等 是一个功能强大 不可多得的集成开发工具 由于其开放源码的特性 任何人 都可以免费得到 并可以在此基础上开发各自的插件 因此越来越受人们关注 目 前最新且功能较为稳定的版本是 Eclipse 3 3 插件版本是 MyEclipse 6 0 1 2 5 2 Tomcat 服务器服务器 1 Tomcat 的产生和发展 Tomcat 是一个小型的轻量级应用服务器 在中小型系统和并发访问用户不是很 多的场合下被普遍使用 是开发和调试 JSP 程序的首选 自从 JSP 发布之后 推出 了各式各样的 JSP 引擎 Apache Group 在完成 GNUJSP1 0 的开发以后 开始考虑 在 SUN 的 JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP 服务器 当然同 时也支持 Servlet 这样 Tomcat 就诞生了 Tomcat 是 jakarta 项目中的一个重要的子 项目 又是 sun 公司官方推荐的 servlet 和 jsp 容器 因为其技术先进 性能稳定 也受到其越来越多的软件公司和开发人员的喜爱 servlet 和 jsp 的最新规范都可以在 tomcat 的新版本中得到实现 其次 Tomcat 是完全免费的软件 任何人都可以从互 联网上自由地下载 2 在 Tomcat 中部署 Web 应用程序 在 Tomcat 中 应用程序的部署很简单 你只需将你的 WAR 放到 Tomcat 的 webapp 目录下 Tomcat 会自动检测到这个文件 并将其解压 你在浏览器中访问 这个应用的 Jsp 时 通常第一次会很慢 因为 Tomcat 要将 Jsp 转化为 Servlet 文件 然后编译 编译以后 访问将会很快 3 系统分析系统分析 3 1 需求分析需求分析 3 1 1 目标系统功能说明目标系统功能说明 本教务管理系统针对客户提供强大的软件功能 主要维护日常教务管理工作的 基本信息等 能为教务教学提供更好的数据支持 软件的功能基本是通用的 提供 系统用户管理 角色管理 数据字典管理 课程表管理 总课表管理 教师课酬管 理统计 试卷档案管理和生成报表 Excel 数据文档 查询帮助等功能 3 1 2 用户需求分析用户需求分析 本教务管理系统是基于 Windows 操作系统基础上 通过对既定数据条件研究和 分析并结合对学校教务管理进行分析提出来的 对原有教务管理系统的非图形界面 操作和功能不强的数据库系统的不稳定性 不可扩充性 难以移植等和原有系统功 能覆盖面不广等缺陷相应提出了一些要求 1 要求系统目前流行的数据库系统 Mysql 作为底层数据库 使其具备很强的 稳定性 扩充性 移植性等优良性能 2 要求系统以功能强大的 Windows 系列操作系统作为操作系统平台 使其具 备优良的可视化图形操作界面 大力提高系统的可操作性和交互性尽量减少操作员 的负担 让他们更方便 更快捷 更简单的进行操作 3 要求扩大系统功能覆盖面 它的功能要求能进行图书的编目建库 浏览数 据 检索与统计数据 以及打印数据等功能的综合管理 并能实现控制各用户系统 权限 从而保证系统的安全性能 4 要求提高系统的可维护性 系统的数据要求能随时进行备份与恢复 基于 家庭图书管理系统的局限性这里就不要求数据能与其他数据库进行交流 及共享数 据 3 2 系统安全性系统安全性 计算机系统的安全治理是一个庞大 复杂 面广的系统工程 安全的核心是人 必须以人为核心进行安全管理 采用各种先进的安全技术 使系统免受非法攻击 排除没有访问权限的使用者窃取机密信息 确保系统安全可靠的运行 针对学校教 务管理系统的特点 为了加强其安全性 系统采用一定的保密措施 4 系统设计系统设计 4 1 数据库数据库设计设计 4 1 1 数据库简介数据库简介 Mysql 是目前主流的数据库软件之一 作为系统的后台服务 主要用来保存系 统各类信息 通过数据库表的有效管理可以实现数据的永久存储 并可以通过特定 的 SQL 语句对保存在其中的数据进行一系列操作 如查询 更新 删除 添加等 等 1 SQL 语言 SQL 基础 SQL Structured Query Language 结构查询语言 是一个功能强大的 数据库语言 SQL 通常使用于数据库的通讯 ANSI 美国国家标准学会 声称 SQL 是关系数据库管理系统的标准语言 SQL 语句通常用于完成一些数据库的操作 任务 比如在数据库中更新数据 或者从数据库中检索数据 使用 SQL 的常见关系 数据库管理系统有 Oracle Mysql Sybase Microsoft SQL Server Access Ingress 等等 虽然绝大多数的数据库系统使用 SQL 但是它们同样有它们自立另外 的专有扩展功能用于它们的系统 但是 标准的 SQL 命令 比如 Select Insert Update Delete Create 和 Drop 常常被用于完成绝大多数数据库 的操作 MS SQL Server 就是用的 Transact SQL SQL 语言有着非常突出的优点 非过程化语言 SQL 是一个非过程化的语言 因为它一次处理一个记录 对数 据提供自动导航 SQL 允许用户在高层的数据结构上工作 而不对单个记录进行操 作 可操作记录集 所有 SQL 语句接受集合作为输入 返回集合作为输出 SQL 的集合特性允许一条 SQL 语句的结果作为另一条 SQL 语句的输入 SQL 不要求用户指定对数据的存放方法 这种特性使用户更易集中精力于要 得到的结果 所有 SQL 语句使用查询优化器 它是 RDBMS 的一部分 由它决定对 指定数据存取的最快速度的手段 查询优化器知道存在什么索引 在哪儿使用索引 合适 而用户则从不需要知道表是否有索引 有什么类型的索引 统一的语言 SQL 可用于所有用户的 DB 活动模型 包括系统管理员 数据库 管理员 应用程序员 决策支持系统人员及许多其它类型的终端用户 SQL 为许多任务提供了命令 其中包括 查询数据 在表中插入 修改和删除记录 建立 修改和删除数据对象 控制对数据和数据对象的存取 保证数据库一致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言 而 SQL 将全部任务 统一在一种语言中 所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持 SQL 语言 用户可将使用 SQL 的技能从一个 RDBMS 关系数据库管理系统 转到另一个 所有用 SQL 编写的程序都是可以移植的 SQL 语句 SQL 功能强大 是一种完备的数据处理语言 不仅用于数据库查询 而且用于数据库中的数据修改和更新 概括起来 它可以分成以下几组 DML Data Manipulation Language 数据操作语言 用于检索或者修改数据 DDL Data Definition Language 数据定义语言 用于定义数据的结构 比 如 创建 修改或者删除数据库对象 DCL Data Control Language 数据控制语言 用于定义数据库用户的权限 DML 组可以细分为以下的几个语句 SELECT 用于检索数据 INSERT 用于增加数据到数据库 UPDATE 用于从数据库中修改现存的数据 DELETE 用于从数据库中删除数据 DDL 语句可以用于创建用户和重建数据库对象 下面是 DDL 命令 CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX DDL 与 DML 数据定义语言 DDL 它是用来创建和修改数据库结构的一种语 句 包括 Create Alter 和 Drop 语句 数据操作语言 DML 包括数据查询与数据 更新 数据查询主要是由 Select 语句完成 这一点不再赘述 而数据更新所造成的 风险大大超过数据查询 数据库管理系统必须在更改期内保护所存储的数据的一致 性 确保有效的数据进入数据库 数据库必须保持一致性 DBMS 还必须协调多用 户的并行更新 以确保用户和它们的更改不至于影响其它用户的作业 用于修改数据库内容的 SQL 语句主要有以下三个 1 Insert 向一个表中加入新的数据行 2 Delete 从一个表中删除数据行 3 Update 更改数据库中已经存在的数据 Insert 标准语法 INSERT INTO table name col1 col2 VALUES value1 value2 Insert 语句还可以将多行数据添加到目标表中去 在这种形式的 Insert 语句中 新行的数据值不是在语句正文中明确地指定的 而是语句中指定的一个数据库查 询 添加的值来自数据库自身的行 在某些特定的状态下 这是非常有用的 多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法 但我在自己做的图书管理系 统中没有使用这种方法 我在系统中是使用循环依照上面的用法来完成多个记录的 插入 Update 语句用于更新单表中选定行的一列或多列的值 要更新的目标表 在语句中定义 Set 子句则指定要更新哪些列并计算它们的值 Update 语句总是包 含 Where 语句 而且 Update 语句比较危险 所以您必须明确地认识到 Where 语句 的重要性 Where 语句被用来指定需要更新的行 标准语法 UPDATE table name SET columnname1 value1 columname2 value2 WHERE search condition Delete 语句标准语法 DELETE FROM table name WHERE condition 复杂操作实现 在信息管理系统中 我们往往会遇到归类 汇总 映射 索引 子查询等复杂操作 相应的支持与实现如下 GROUP BY 子句语法为 SELECT column1 SUM column2 FROM list of tables GROUP BY column list 这个 GROUP BY 子句将集中所有的行在一起 它包含了指定例的数据以及 允许合计函数来计算一个或者多个列 在本人的系统中在显示数据时用到了此语句 来对查询所得的内容排序然后再显示 组合条件和布尔运算符 以下的 SQL 语句中就含有组合条件 SELECT column1 SUM column2 FROM list of tables WHERE condition1 AND condition2 有些时候 需要一起浏览多个查询的结果 组合它们的输出 我们可以使用 UNION 关键字 2 数据库 数据库处理在信息系统的研究中一直是非常重要的主题 然而 近年来 随着 World Wide Web WWW 的猛增及 Internet 技术的迅速发展 使得数据库技术之时成 为最热门技术之一 数据库技术能使 Internet 应用超越具有早期应用特点的简单的发 布 同时 Internet 技术提供了一种向用户发布数据库内容的标准化的访问方法 这 些技术没有脱离经典数据库技术的要求 它们只是加重了数据库技术的重要性 数据库的设计和开发及包括艺术有包括工程 理解用户的需求 然后 把它们 转变为有效的数据库设计是一个艺术过程 把设计转变为实际的数据库 并且这些 数据库带有功能完备 高效能的应用 是一个工程过程 数据库的目的是帮助人们跟踪事务 经典的数据库应用涉及诸如订单 顾客 工作 员工 学生 电话之类的项 或其它数据量较大 需要密起关注的事务 最 近 由于数据库的普及 数据库技术已经被应用到了新的领域 诸如用于 Internet 的 数据库或用于公司内联网的数据库 数据库也被越来越多地应用于生成和维护多媒 体应用程序上 4 1 2 数据库设计与实现数据库设计与实现 1 数据库功能设计 依据教学管理系统的处理需求 对数据库表的设计及功能如下 学生个人信息表 用于存放学生的基本信息 教师个人信息表 用于存放教师的基本信息 课程信息表 用于存放课程的基本信息 学生成绩表 用于存放学生的成绩纪录 选课情况表 用于存入学生的选课纪录 留言信息表 用于存放所有人的留言纪录 2 数据库概念结构设计 1 实体及其联系图 图图 4 1 实体及其联系图实体及其联系图 Fig 4 1 Entity and relation 2 系统流程图 图图 4 2 系统流程图系统流程图 Fig 4 2 System flowchart 3 数据库逻辑结构设计 数据库设计主要是进行数据库的逻辑设计 即将数据按一定的分类 分组系统 和逻辑层次组织起来 是面向用户的 数据库设计时需要综合企业各个部门的存档 数据和数据需求 分析各个数据之间的关系 按照 DBMS 提供的功能和描述工具 设计出规模适当 正确反映数据关系 数据冗余少 存取效率高 能满足多种查询 要求的数据模型 数据库设计的步骤是 1 数据库结构定义 目前的数据库管理系统 DBMS 有的是支持联机事 务处理 CLTP 负责对事务数据进行采集 处理 存储 的操作型 DBMS 有的可 支持数据仓库 有联机分析处理 CLAP 指为支持决策的制定对数据的一种加工操 作 功能的大型 DBMS 有的数据库是关系型的 有的可支持面向对象数据库 针 对选择的 DBMS 进行数据库结构定义 2 数据表定义 数据表定义指定义数据库中数据表的结构 数据表的逻辑 结构包括 属性名称 类型 表示形式 缺省值 校验规则 是否关键字 可否为 空等 关系型数据库要尽量按关系规范化要求进行数据库设计 但为使效率高 规 范化程度应根据应用环境和条件来决定 数据表设计不仅要满足数据存储的要求 还要增加一些如反映有关信息 操作责任 中间数据的字段或临时数据表 3 存储设备和存储空间组织 确定数据的存放地点 存储路径 存储设备 等 备份方案 对多版本如何保证一致性和数据的完整性 4 数据使用权限设置 针对用户的不同使用要求 确定数据的用户使用权 限 确保数据安全 5 数据字典设计 用数据字典描述数据库的设计 便于维护和修改 为了更好地组织数据和设计出实际应用数据库 应该注意如下问题 规范化地重组数据结构 对数据进行规范化表达 这在后面将会具体讨论 关 系数据结构的建立 在进行了数据基本结构的规范化重组后 还必须建立整体数据 的关系结构 这一步设计完成后数据库和数据结构设计工作基本完成 只待系统实 现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中 一个规范 化数据库系统结构就建立起来了 建立关系数据结构涉及三方面内容 确定关联的 关键指标项并建立关联表 确定单一的父系记录结构 建立整个数据库的关系结 构 根据上面的 E R 图 建立六张数据库表 其结构如下所示 表表 4 1 学生个人信息表学生个人信息表 Tab 4 1 Imformation of Student 字段名数据类型是否为空说 明 numbervarchar 20 not null学号 主码 namevarchar 20 not null姓名 sexvarchar 5 not null性别 agebigintnot null年龄 departmentvarchar 50 not null专业 collegevarchar 50 not null学院 phonevarchar 20 not null电话 addressvarchar 50 not null地址 inTimevarchar 50 not null入学时间 outTimevarchar 50 not null毕业时间 passwordvarchar 20 not null密码 表表 4 2 教师个人信息表教师个人信息表 Tab 4 2 Imformation of Teacher 字段名数据类型是否为空说 明 numbervarchar 20 not null职工号 主码 namevarchar 20 not null姓名 sexvarchar 5 not null性别 agebigintnot null年龄 departmentvarchar 50 not null部门 postvarchar 20 not null职称 remarkvarchar 100 not null备注 passwordvarchar 20 not null密码 表表 4 3 课程信息表课程信息表 Tab 4 3 Imfomation of Course 字段名数据类型是否为空说 明 numbervarchar 20 not null课程号 主码 namevarchar 20 not null课程名 creditbigintnot null学分 teachervarchar 20 not null授课老师 timevarchar 50 not null上课时间 addressvarchar 50 not null上课地点 typevarchar 50 not null课程类型 表表 4 4 学生成绩表学生成绩表 Tab 4 4 Preformence of Students 字段名数据类型是否为空说 明 snumbervarchar 20 not null学生学号 外码 cnumbervarchar 20 not null课程号 外码 yearvarchar 50 not null学年 termbigintnot null学期 gradefloatnot null成绩 chongXiuvarchar 10 not null重修标志 表表 4 5 选课情况表选课情况表 Tab 4 5 CurriculumSelectedByStudents 字段名数据类型是否为空说 明 snovarchar 20 not null学生学号 cnovarchar 20 not null课程号 namevarchar 20 not null课程名称 creditbigintnot null课程学分 teachervarchar 20 not null

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论