


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 绪论1.1 成教管理系统需求分析当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机 被广泛应用于信息管理系统的环境。 计算机的最大好处在于利用它能够进行信息管理。 使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其 对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息 管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好我 校成人教育学生学籍、成绩信息而设计的。在学校里,学校学生资料繁多,包含很多的信息数据的管理,现今,有很多的学 校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前
2、 对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于学生成绩的统计 和核实等往往采用算盘,计算器等工具进行,对学生考试资料,以及成绩管理多用手 抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。 总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于 信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基 本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式 对教务档案进行管理,由于信息比较多,信息的管理工作混乱而又复杂;平时档案资 料放在档案柜里,教师和教务处的管理员也只是当时对它比较清楚,
3、时间一长,如再 要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长 时间以前的成绩进行更改就更困难了。基于这此问题,我认为有必要建立一个成人教育管理系统,使学生学籍、成绩管 理工作规范化,系统化,程序化,避免教务管理的随意性,提高信息处理的速度和准 确性,能够及时、准确、有效的查询和修改信息本系统基于 WEB 设计,采用 B/S 三层结构体系(前端即浏览器,中间层即响应 层,后端即数据端)。所有应用数据安装在服务器端(后端) ,由中间层封装了所有业 务逻辑,负责前端与后端之间的数据传递和处理,数据库的维护和系统功能升级只需 在服务器端进行即可,客户端不进行任何模块的安装
4、与设置,从而实现客户端的零维护,大大减轻管理员的工作量,并且提高了工作效率。1.2 功能模块介绍1.2.1 学籍管理模块 (如图 1.1 所示)实现对学校在校成教班学生、离校生档案信息资源的查询、统计、维护与管理。包 括:(1)后台管理员添加、修改(姓名、密码、性别、身份证号、准考证号、专业、学 习形式、民族、籍贯、学号、政治面貌、健康状况、婚否、参加工作时间、放学前最 高学历、入学时间、现在工作单位名称、详细地址、联系电话、邮政编码、家庭地址、 简历、社会关系、结业时间、毕业证编号、学籍变动情况、注册日期)。2 前台学生登陆后查询自己的档案信息,并可修改除姓名、准考证号、专业、 学号、结业时
5、间、毕业证编号之外的所有信息。注册日期为程序自动提取并录入数据 库。1.2.2 班主任管理模块 ( 如图 1.1 所示)实现对学校在校成教班学生、离校生成绩信息资源、毕业设计信息的查询、统计、 维护与管理。包括:(1) 班主任登陆后台可添加修改删除本班的所有学期的所有课程。(2)班主任登陆后台将本班学生成绩添加到相应课程中,并可修改、删除。输入 成绩时按成绩一(第一次考试成绩) 、成绩二(如有补考,则输入成绩二) 最终记入数据库的成绩为成绩一和成绩二的最高成绩。(3)班主任登陆后台可对本班学生的毕业设计信息进行增删改查等日常维护。(4)学生登陆后可查询自己的所有成绩,及自己的毕业设计信息。1.
6、2.3 超级管理模块 (如图 1.1 所示)1. 新闻管理超级管理员 admin 登陆后台,可对本系统新闻公告进行增删改查等维护。2. 留言管理超级管理员 admin 登陆后台,可回复、删除学生提问及访客留言3.班主任、专业、管理超级管理员admin登陆后台,可对班主任、专业、课程进行增删改查等日常维护。图1.1成教管理系统功能模块介绍1.3 B/S模式分析Browser/Server(简称B/S)即浏览器/服务器模式,是一种从传统的二层C/S模 式发展起来的新的网络结构模式,其本质是三层结构C/S模式。B/S模式是基于Intranet的需求而出现并发展的,Intranet是应用TCP/IP协
7、议建立的企事业单位内 部专用网络,它采用诸如 TCP/IP、HTTP、SMTP和HTML等In ternet技术和标 准,能为企事业单位内部交换信息提供服务。在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL语法, 并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理, 然后将处理后的结果返回给 Web服务器,Web服务器再一次将得到的所有结果进行 转化,变成HTML文档形式,转发给客户端浏览器以友好的 Web页面形式显示出来。B/S 模式管理信息系统基本上克服了 C/S 模式管理
8、信息系统的不足,其主要表 现在: 系统开发、维护和升级的经济性对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的, B/S 模式 所具有的框架结构可以大大节省这些费用,同时, B/S 模式对前台客户机的要求并不 高,可以避免盲目进行硬件升级造成的巨大浪费。 B/S模式提供了一致的用户界面B/S模式的应用软件都是基于 Web浏览器的,这些浏览器的界面都很相似。对 于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费 用。B/S 模式具有很强的开放性在 B/S 模式下,外部的用户亦可通过通用的浏览器进行访问。B/S 模式的结构易于扩展由于 Web 的平台无关性, B
9、/S 模式结构可以任意扩展,可以从一台服务器、几 个用户的工作组级扩展成为拥有成千上万用户的大型系统。B/S 模式具有更强的信息系统集成性在 B/S 模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的 多系统模式,因而它能提供更高的工作效率。B/S 模式提供灵活的信息交流和信息发布服务B/S模式借助In ternet强大的信息发布与信息传送能力可以有效地解决企业、高 等学校内部的大量不规则的信息交流。2 数据库理论基础一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常 重要的条件和关键技术。信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻
10、 辑设计、物理设计与加载测试。数据库的设计中, 如何处理多对多的关系和如何设计主键, 是两个有着较大难度、 需要重点考虑的问题。本章着重从 SQL应用、数据库设计范式和查询优化等方面来分 析本系统的关键技术和实现难点。2.1 数据库系统设计及范式分析信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和 管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅 速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标 之一。2.1.1 数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和 逻辑层次组织起来,是面
11、向用户的。数据库设计时需要综合企业各个部门的存档数据 和数据需求,分析各个数据之间的关系,按照 DBMS 提供的功能和描述工具,设计 出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的 数据模型。数据库设计的步骤是:(1)数据库结构定义( 2)数据表定义(3)数据使用权限设置(4)数据字典设计2.1.2 数据库设计范式分析建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一 个良好的数据指标体系是建立 DB 的必要条件,但不是充分条件。我们完全可以认为 所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的 一个个具体指标就是这个基
12、本表中的一个字段。但如果直接按照这种方式建库显然还 不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而 在这个关系下的每个数据指标项则被称为数据元素 (dataelement,这种关系落实到具 体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字 (key),它可以唯一地标识出该 表中其它相关的数据元素。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范 化模式,称为范式。在这五种范式中,一般只
13、用前三种,对于常用系统就足够了。而 且这五种范式是 “向上兼容 ”的,即满足第五范式的数据结构自动满足一、二、三、四 范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式(first normal form,简称1 NF)就是指在同一表中没有重复项出现, 如 果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论 的开发方法里, 1 NF 实际上是没有什么意义的。因为我们按规范化建立的指标体系 和表的过程都自动保证了所有表都满足 1 NF。第二范式(second normal form,简称2 NF)是指每个表必须有一个(而且仅一个) 数据元素为主关键字
14、(primary key),其它数据元素与主关键字对应。只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。 通常我们称这种关系为函数依赖(functional depEndence关系。即表中其它数据元素 都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(third normal form,简称3 NF)就是指表中的所有数据元素不但要能 够唯一地被主关键字所标识, 而且它们之间还必须相互独立, 不存在其它的函数关系。 也就是说对于一个满足了 2NF 的数据结构来说,表中有可能存在某些数据元素依赖 于其它非关键宇数据元素的现象,必须加以消除。为防
15、止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系 型数据库要尽量按关系规范化要求进行数据库设计。2.2 SQL 语言介绍2.2.1 SQL 基础SQL(Structured Query Language结构查询语言)是一个功能强大的数据库语 言。SQL通常使用于数据库的通讯。ANSI (美国国家标准学会)声称,SQL是关 系数据库管理系统的标准语言。 SQL 语句通常用于完成一些数据库的操作任务, 比如 在数据库中更新数据,或者从数据库中检索数据。使用 SQL 的常见关系数据库管理 系统有: Oracle、 Sybase、 Microsoft SQL Server、 Acce
16、ss 等等。虽然绝大 多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们 的系统。但是,标准的 SQL 命令,比如"Select"、"Insert"、"Update"、"Delete"、 "Create'和"Drop"常常被用于完成绝大多数数据库的操作。SQL 语言有着非常突出的优点,主要是:非过程化语言统一的语言是所有关系数据库的公共语言2.2.2 SQL 语句SQL 功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于 数据库中的数据修
17、改和更新,概括起来,它可以分成以下几组:DML ( Data Manipulation Language,数据操作语言):用于检索或者修改数 据;DDL ( Data Definition Language,数据定义语言):用于定义数据的结构, 比如 创建、修改或者删除数据库对象;DCL( Data Control Language,数据控制语言):用于定义数据库用户的权限。DML 组可以细分为以下的几个语句:SELECT :用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE :用于从数据库中删除数据。DDL 语句可以用于创建用户和重建数
18、据库对象。下面是 DDL 命令:CREATE TABLE ,ALTER TABLE ,DROP TABLE ,CREATE INDEX , DROP INDEX下面是一个简单 SQL 语句的例子:我们使用SQL语句来从Students中检索stuD为15的学生姓名:SELECT Name FROM Students WHERE stu_ID = 15数据定义语言DDL :它是用来创建和修改数据库结构的一种语句,包括Create Alter 和 Drop 语句。数据操作语言 DML :包括数据查询与数据更新。数据查询主要是由 Select 语句 完成,这一点不再赘述。而数据更新所造成的风险大大超
19、过数据查询。数据库管理系 统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库 必须保持一致性, DBMS 还必须协调多用户的并行更新,以确保用户和它们的更改 不至于影响其它用户的作业。用于修改数据库内容的 SQL 语句主要有以下三个:(1) Insert,向一个表中加入新的数据行(2) Delete,从一个表中删除数据行(3) Update,更改数据库中已经存在的数据3 ASP 数据库编程3.1 ASP 简介Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的 服务器端脚本环境, ASP 内含于 IIS 3.0 和 4
20、.0 之中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、 交互且高效的 WEB 服务器 应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为 所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序 执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览 器的负担,大大提高了交互的速度。以下罗列了 Active Server Pages 所独具的一些特点:1. 使用 VBScript 、 Jscript 等简单易懂的脚本语言,结合 HTML 代码,即 可快速地完成网站的应用程
21、序。2. 无须 compile 编译,容易编写,可在服务器端直接执行。3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码 的浏览器,即可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户 端的浏览器不需要能够执行这些脚本语言。5. Active Server Pages 能与任何 ActiveX scripting 语言相
22、容。除了可使用 VBScript 或 Jscript 语言来设计外, 还通过 plug-in 的方式, 使用由第三方所提供 的其他脚本语言,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。6. Active Server Pages 的源程序,不会被传到客户浏览器,因而可以避免所写 的源程序被他人剽窃,也提高了程序的安全性。7. 可使用服务器端的脚本来产生客户端的脚本。8. 物件导向( Object-oriented )。9. ActiveX Server Components(ActiveX 服务器元件 )
23、 具有无限可扩充性。 可以使用 Visual Basic 、 Java 、 Visual C+ 、 COBOL 等编程语言来编写 你所需要的 ActiveX Server Component 。3.2 ASP 内置组件介绍什么叫组件 (Active Server Compontents)?组件是基于 Activex 技术的代码片断, 通过指定接口提供指定的一组服务, 组件 供给客户端(Clients)在运行时候请求的对象。你可以理解成组件是一种程序,通过 调用这种程序,你可以实现你在 ASP 程序中无法实现或者很难实现的功能,组件是 一种很好的代码重用方法。我们可以运用Active Serve
24、r Pages设计制作动态、交互的 Web页面,但是一 旦你开始着手工作,参与一些实际工作的时候,你会发现asp在某些方面功能不强,甚至不借助服务器端组件就很难实现某些功能,例如:数据库操作(我们通常使用 ADO,ADO 就是一个组件),邮件功能,文件系统操作,图形功能 .但是幸运的是我 们可以找到很多组件来提高 ASP编程应用能力,下面对ASP内置组件作简单的介绍。AD ROTATOR 组件广告轮显组件属性: Border,Clickable,TargetFarms方法: GetAdvertisementFILE ACCESS 组件文件操作组件FileSystemObject 对象方法: C
25、reateTextFile , OpenTestFile , CopyFile , DeleteFile,FileExists , GetExtensionName , GetFile , GetFileName , MoveFile , CopyFolder , GetParentFolderName , GetSpecialFolder , GetTempName , GetDrive , GetDriveName , DriveExists , Drives ,GetAbsolutePathName ,GetBaseName. .CONTENT LINKING 组件此组件主要用于管理网页
26、网址间的超文本链接方法: GetListCount , GetNextURL , GetPreviousDescription , GetListIndex , GetNthDescription , GetPreviousURL , GetNextDescription , GetNthURL.BROWER CAPABILITIES 组件浏览器性能组件属性: browser,version,majorver,minorver,beta,Platform,ActiveXControls,backgroundsounds,Cookies,Frames,Javaapplets ,Tables,Vb
27、script,Javascript,cdf. 建立方法Set BrowerType = Server.CreateObject("MSWC.BrowserType")3.3 SQL语言在ASP中的应用数据库查询语言(SQL)是使用于关系数据库的标准语言,被很多类型的数据库 所支持。下面简单介绍我们平时使用最频繁, 也是本系统所使用的主要语句: SELECT 的语法以及使用。 语句的语法如下:SELECT all | * | distinct column1, column2FROM table1, table2WHERE condition1 | expression1 A
28、ND condition2 | rxpression2在上面的语法中, 外的语句是必须的,而 内的是可选的,对于以 | 分割的操 作符,则表明语法中必须从 | 分割的操作符中选择一个。下面的语法描述同上。在 SELECT.FROM.WHERE 语句中其中 SELECT 指定需要检索的字段, FROM 指定要查询的表, WHERE 指定选择纪录的条件,另外还可以包含 ORDER BY 语 句来制定排序纪录。语法如下:ORDER BY column1 | Integer ASC | DESC其中 column1 制定排序的字段,也可以使用 Integer 指定的字段索引来排序, ASC 为升序、
29、DESC 为降序。在 SELECT 语句的 WHERE 中,我们可以使用操作符号 来比较大小以及使 用 LIKE 进行匹配。在 WHERE 语句中,可以使用的操作符有以下几类:1、比较操作符包含 =、 、=、= 等若干类2、逻辑操作符包含以下若干类:LIKE、IN、BETWEEN、UNIQUE、IS NULL 、EXISTS、ALL 和 ANYLIKE操作符通过使用通配符将一个值同其它值比较, 在ASP的SQL查询中, 可以使用的通配符是 * 和 ? 其中 * 代表任意的若干个字符,而 ? 代表一个字符, 例如上面语句中的 LIKE '*Beginner* 代表查找所有包含字符串 Be
30、ginner 的值。不 过要注意的是使用 * 和 ? 作为通配符是 VB 的专利。真正的 SQL 语言的通配符 是 % 和 _,其中 %代表任意多个字符, _代表一个字符。另外 Microsoft Jet Engine对于LIKE操作符还提供了其它一些的过滤选项。IN操作符用于比较某一个 值是否等于几个值中的一个值,例如下面的语句:"SELECT stu_name,Year FROM student WHERE Year IN (2001,2002,2003)"将从表 Titles 中选择所有在 2001,2002,2003年入学的学生名单。BETWEEN 操作符勇于在两个
31、值之间搜索,例如 WHERE Year BETWEEN 2000 AND 2003 指定入学年份必须在 1989年和 1991年之间。对于逻辑操作符,可以结合 NOT 操作符实现改变查询条件的方向。例如 WHERE Year NOT IN (2001,2002,2003)3、连接符WHERE 中的连接符包括 AND 和 OR ,使用 AND 时,所有查询都必须是 True时,条件才成立,而使用 OR时,只要连接的一个查询为True,条件就成立。在使用比较操作符时要注意,在 ASP 操作数据库引擎时对于查找的字符串,要 使用单引号或者双引号将字符串括起来,例如 WHERE Name='L
32、iGang' 。而对于 日期类型的数据, 要使用#号将日期括起来, 例如 WHERE BirthDay > #1980-10-01#而在使用通配符和 LIKE 操作符时,需要使用引号而不是 #号,例如 WHERE BirthDay LIKE "1990-01-*" 。引号告诉数据库引擎将日期当字符串处 理,而#号告诉数据库引擎将日期当数字处理。4 成教管理信息系统设计4.1 成教管理系统数据库设计4.1.1 概念设计在概念设计阶段中,应该从用户的角度看待数据及处理要求和约束,产生一个反 映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程
33、 中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定 DBMS 的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部 ER模式, 然后把各局部 ER 模式综合成一个全局模式, 最后对全局 ER 模式进行优化, 得到最终 的模式,即概念模式。(1)设计局部ER模式(如图4.1)实体和属性的定义:学生 id (自动编号)、stu_name (姓名)、stu_pw (密码)、stu_sex(性别)、stu_card(身份证号)、 stu_id(准考证号)、spe_name (专业)、stu_style(学习形式)、stu_mz(民族)、stu_jg(籍贯)、stu
34、_xh(学 号卜stu_zz (政治面貌)、stuk(健康状况卜stu_hf(婚否卜stu_cjgz(参加工作时间)、stu_xl(入学前最 高学历)、stu_rxsj(入学时间)、stu_now_name(现在工作单位名称 )、stu_now_address(详细地址)、stu_now_tel(联系电话)、stu_now_post(邮政编码)、stu_home(家庭地址 )、stu_resume(简历)、 stu_shgx(社会关系)、stu_jysj(结业时间)、stu_byzh(毕业证编号)、stu_xjbd(学籍变动情况 卜stu_date(注 册日期)管理员表 (超级管理员、班主任)
35、 id (自动编号 )、 admin_name (管理员名 )、 admin_pw (管理员密码)、check (检查是否为超级管理员 )spe_name专业名)学生成绩表stu_xh (学生学号)、cou_id(课程编号)、stu_cj_1(学生第一次成绩)stu_cj_2(学生补考成绩 )、 stu_cj_3 (学生最终成绩)毕业设计表stu_xh (学生学号)、gra_title(毕业论文题目卜gra_teacher(指导老师)、gra_db (答辩负责人)、gra_cj (答辩成绩)奖惩情况表stu_xh (学生学号)、stu_award(奖惩情况)课程表cou_id(课程编号)、co
36、u_name(课程名)、cou_teacher(开课教师卜cou_term(开课学期)专业表 spe_name 专业名) spe_teacher(班主任)图4.1局部ER图的设计示例(部分属性未列出)图4.2 联系定义ER模型的 联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任 意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否 存在联系。若有联系,进一步确定是 1:N,M:N,还是1:1等。还要考察一个实体类 型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在 联系,等等。联系定义如图4.2所示。解释如下:一个学生可以选择多门课程学
37、习,而一门课程有多个学生学习;一个专业可以拥有多名学生,而一名学生只能选择一个专业;一个专业可以拥有多门课程,而一门课程也可在不同的专业讲授。(2)设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。 全局概念结构不仅要支持所有局部 ER模式,而且必须合理地表示一个完整、一致的 数据库概念结构。图4.3成教管理系统”的全局ER模式(1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中 的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般 把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类
38、型作为公共实 体类型的另一类候选。(2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构(3) 消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部 ER模式形式上合并为一个ER模式, 而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。(4) 全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求 对ER模式进行优化。一个好的全局 ER模式,除能准确、全面地反映用户功能需求 外,还应满足下列条件:实体类型的个数要尽
39、可能的少;实体类型所含属性个数尽可 能少;实体类型间联系无冗余。综上所述,成教管理系统”的全局ER模式图4.3所示。4.1.2 数据库的实现本系统选用了 SQL2000数据库来进行数据库的逻辑设计。首先创建一个数据库: huoyan、然后建立七个基本数据库表如表 4.1表4.7所示。表4.1学生基本信息表的结构字段名数据类型长度是否关键字必填说明Studint4是是自动编号stu_n amen varchar50否是学生姓名stu pwn varchar50否是密码stu sexn varchar50否是性别stu cardnu meric9否是身份证号studnu meric9否否准考证号s
40、pe_ namen varchar50否是专业stu stylen varchar50否是学习形式stu mzn varchar50否是民族stugn varchar50否是籍贯stu xhnu meric9是否学号stu_zzn varchar50否是政治面貌stukn varchar50否是健康状况stu_hfn varchar50否是婚否stu_cjgzdatetime8否否参加工作时间stu_xln varchar50否是放学前最高学历stu_rxsjdatetime8否是入学时间stu_ now_n amen varchar50否否现在工作单位stu _no w_addressn v
41、archar50否是详细地址stu_ no w_telnu meric9否是联系电话stu_ no w_postnu meric9否是邮政编码stu homen varchar50否是家庭地址stu resumen text16否是简历stu shgxn text16否是社会关系stu jysjdatetime8否否结业时间stu byzhnu meric9否否毕业证编号stu datedatetime8否是注册日期stu xjbdn varchar50否否学籍变动情况表4.2学生成绩表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号stu xhnu meric9是是学生学号
42、cou idnu meric9是是课程编号stu cj 1nu meric9否是学生第一次成绩stu cj 2nu meric9否否学生补考成绩stu cj 3nu meric9否是学生最终成绩表4.3课程表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号Coudnu meric9是是课程编号Spe_n amen varchar9否是所属专业名cou_ namen varchar50否是课程名cou teachern varchar50否是开课教师cou termn varchar50否是开课学期表4.4专业表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号
43、spe_ namenv archar50是是专业名teacher pwnv archar50否是班主任密码spe teachernv archar50否是班主任表4.5毕业设计表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号stu xhnu meric15是是学生学号gra titlenv archar30否是毕业论文题目gra teachernv archar15否是指导老师gra dbnv archar15否是答辩负责人gra cjnu meric10否是答辩成绩表4.6管理员表的结构字段名数据类型长度是否关键字必填说明idint4是是自动编号Admin_checkn
44、varchar50否否是否为超级管理员Spe_namen varchar50否是专业名admin namen varchar50否是管理员名adm in_pwn varchar50否是管理员密码表4.7新闻表的结构字段名数据类型长度是否关键字必填说明idnu meric15是是自动编号News_datedatetime50否是添加/修改日期News_titlenv archar50否是新闻名News_ contentn text16否是新闻内容4.2学籍管理模块的实现学籍管理模块分成学生前台注册,管理员后员添加、修改、删除两个板块。学生前台注册不包括学号、毕业证号等学生无权填写的项目。stu_
45、reg.asp文件包含script脚本语言对输入数据进行检查,若不允许为空的字段未输入数据,则提示错误。 对于学号等数字类型字段,由stu_reg_save.asp进行验证,若这些字段为非数字类型, 则定义 SESSION("ERROR")二"YES",并 response.Redirect("stu_reg.asp")跳转 到stu_reg.asp文件,由if语句判断并输出出错信息 sorry!身份证号、准考证号、学 号、电话、邮编、毕业证编号必须为数字! ”若所有输入都正确,则连接数据库huoyan, 查询并打开student表,
46、用add new方法将发出请求的数据录入数据库,并跳转到成功 页面 ok.htm。程序流程图见图4.4图4.4程序流程图stu reg.asp学生注册页面(部分代码)<!-#include file二"./include/conn.asp"-> / 头文件包含数据库连接文件 <!-#i nclude file="./i nclude/pass.asp"->/ 头文件包含密码验证文件<script>fun cti on error()if (docume nt.form1.stu _n ame.value="&
47、quot;)alert("请输入姓名! ”);.return false;elsereturn true;v/script>/检查输入是否完整正确<%if SESSION("ERROR")二"YES" the n%>vtable width二"59%" border二"0" align="center" cellpadding="0"cellspac in g="0"><tr><td height二&qu
48、ot;13"><div alig n="ce nter"><spa n class二"fo nt1 style2">sorry !身份证号、准考证号、学号、电话、邮编、毕业证编号必须为数字!</spa n>< /div>v/td>v/tr></table><%end ifSESSION("ERROR")=""%>-/用SESSION方法检查输入错误,并显示信息vform name="form1"
49、method二"post" action="stu_reg_save.asp"on Submit二"return error()"><select name="spe_id" size二"1" id="spe_id"><%DIM RSSET RS二SERVER.CreateObject("ADODB.RECORDSET")SQL二"SELECT * FROM speciality where spe_name='&
50、quot; & SESSION("SPE_NAME") &,”"RS.OPEN SQL,CONN,1,1DIM SPE_NAME : SPE_NAME=RS("spe_name")DIM ID : ID=RS("id")%><option selected value二"<% =ID %>"><% =SPE_NAME %></optio n><% rs.closeset rs=Nothi ng %>v/select>/
51、用speciality中查询并列出专业表供学生注册时选择v/form>用户界面如图4.5所示学狡如 艺月阳丸 :t且机議 求要留普想目肯贝县碗号:cO26BExl1:l 11111 号:姑环电亍侖齐应科: 矿區密码图4.5用户前台登陆查看档案界面stu_reg_save.asp学生学籍信息存入数据库(部分代码) <%DIM stu_card : stu_card二REQUEST("stu_card")If not(isnumeric(stu_card)Or n ot(is nu meric(REQUEST("stu_id")or n ot(i
52、s nu meric(REQUEST("stu_xh")Or n ot(is numeric(REQUEST("stu_now_post") or not(isnumeric(REQUEST("stu_byzh") then SESSION("ERROR")=" YES"response.Redirect("stu reg.asp")END IF%>-/ 检查学号等属性是否为数字,如果不是数字类型,只跳转到注册页面,并定义session方法<%DIM RSSET
53、RS二SERVER.CreateObject("ADODB.RECORDSET")SQL二"SELECT * FROM stude nt"RS.OPEN SQL,CONN,1,3rs.add newrs("stu_ name")二request("stu _n ame") stu_del.asp 删除学生文件rs.update%>/将注册信息录入数据库<% Dim ID : ID=Request("id")%>/将发出请求的id定义成变量ID<% DIM RSSET RS
54、=SERVER.CreateObject("ADODB.RECORDSET") SQL="SELECT * FROM stude nt WHERE id=" & IDRS.OPEN SQL,CONN,1,3RS.DELETERS.UPDATEResp on se.Redirect("./i nclude/ok.htm")RS.CLOSESET RS=Nothi ngCONN.CLOSESET RS=Nothi ng%>/从学生表中将编号为ID的记录删除4.3成绩管理模块的实现成绩管理模块是本系统的重点和难点。它涉及到专业
55、信息管理、课程信息管理、 成绩的录入修改与查询三大板块。专业信息管理板块由超级管理员操作,一个专业由 一个班主任管理,所以添加专业信息时包括专业代号、名称,及班主任的用户名和密 码。课程信息管理板块由班主任操作,所添加的课程信息包括课程编号、课程名等。 成绩的录放修改与查询板块也由班主任操作,班主任录入本班学生各科成绩;按学生 学号查询该生所有科目成绩;按课程代号查询本班所有学生的该科成绩。需要说明的 是,班主任只可以对本专业的课程、及专业的学生进行管理操作(select - fromwhere order by 语法)。程序说明:(一)log in .asp登陆,若是否为超级管理员”一项为空
56、,则视为班主任管理员,并进行验证。查询speciality表中spe_teache字段中是否存在该记录,若不存在则 报错,若存在则验证其密码,并获取该记录的专业名spe_name重新定义为SPE_NAME(二)从courses表中查询专业名为SPE_NAME的所有记录,可进行修改、添 加等操作,唯一不可修改的是专业名。(三)从achievement表中查询专业名为 SPE_NAM E的所有记录,并获取到 stud字段,定义为STU_ID,再从student表中查询STU_ID所在的记录,获取其 stu_name字段。同样的方法,从courses表中查询到所coud(课程编号)所对应的 cou
57、_n ame课程名)431专业信息管理spe_add.asp添加专业(代码略)spe _add_save.asp将添加的专业信息录入数据库(部分代码) <%DIM RSSET RS二SERVER.CreateObject("ADODB.RECORDSET")SQL二"SELECT * FROM speciality"RS.OPEN SQL,CONN,1,3rs.add newrs("spe_name")二SPE_NAMErs("spe_teacher")二SPE_TEACHERrs("teacher
58、_pw")二TEACHER_PWrs.update%>spe _all.asp 列出所有专业(部分代码)<%DIM RSSET RS二SERVER.CreateObject("ADODB.RECORDSET")SQL="SELECT * FROM speciality order by id desc"RS.OPEN SQL,CONN,1,1%><table width二"365" border二"0" align="center" cellpadding=&q
59、uot;1" cellspac in g="1" bgcolor="#66CC00"><% while not rs.eof %><tr bgcolor二"#319A00"><td height二"25"><div align="center"><font color="#FFFFFF"><% =RS("spe_name") %>v/fon t>v/div>v/td><td><div align="center">vfont color="#FFFFFF"><% =RS("spe_teacher") %>v/fon t></div></td><td><div align="center"><a href="spe_edit.asp?id=<% =RS("id") %>&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- rhcsa考试题及答案
- pfv考试题及答案
- 浙江省杭州区钱塘区学正教育集团2024-2025学年第一学期四年级科学期中专项练习(含答案)
- 电站安全培训知识课件
- 电磁感应课件
- 电焊知识培训教学课件
- 北京自主招生考试题目及答案
- 职教高考语文复习 写作与综合实践活动专题十三 一般性文章写作 课件
- 北京磁学实验考试真题及答案
- 电焊工安全知识培训课件
- DB65-T 4773-2024 生物安全实验室消毒技术指南
- 2024年新北师大版七年级上册数学全册课件(新版教材)
- 成人体外膜氧合辅助期间感染防控专家共识2024版
- 2024年河北石家庄市井陉矿区人力资源和社会保障局公益性岗位招聘100人历年(高频重点提升专题训练)共500题附带答案详解
- 抖音火花合同电子版获取教程
- 优化方案语文必修上册
- 云南省大中型水电站情况表
- HYT 0318-2021 填海项目竣工海域使用验收测量规范
- 旅游景区规划设计方案
- 高中历史知识竞赛省公开课一等奖全国示范课微课金奖课件
- DL-T 5117-2021水下不分散混凝土试验规程-PDF解密
评论
0/150
提交评论