资源描述
成教管理系统需求分析
54
2020年4月19日
文档仅供参考
1 绪 论
1.1 成教管理系统需求分析
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不但提高了工作效率,而且大大的提高了其安全性。特别对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好我校成人教育学生学籍、成绩信息而设计的。
在学校里,学校学生资料繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,她们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于学生成绩的统计和核实等往往采用算盘,计算器等工具进行,对学生考试资料,以及成绩管理多用手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,可是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式对教务档案进行管理,由于信息比较多,信息的管理工作混乱而又复杂;平时档案资料放在档案柜里,教师和教务处的管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的成绩进行更改就更困难了。
基于这此问题,我认为有必要建立一个成人教育管理系统,使学生学籍、成绩管理工作规范化,系统化,程序化,避免教务管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改信息
本系统基于WEB设计,采用B/S三层结构体系(前端即浏览器,中间层即响应层,后端即数据端)。所有应用数据安装在服务器端(后端),由中间层封装了所有业务逻辑,负责前端与后端之间的数据传递和处理,数据库的维护和系统功能升级只需在服务器端进行即可,客户端不进行任何模块的安装与设置,从而实现客户端的零维护,大大减轻管理员的工作量,而且提高了工作效率。
1.2 功能模块介绍
1.2.1 学籍管理模块(如图1.1所示)
实现对学校在校成教班学生、离校生档案信息资源的查询、统计、维护与管理。包括:
(1)后台管理员添加、修改(姓名、密码、性别、身份证号、准考证号、专业、学习形式、民族、籍贯、学号、政治面貌、健康状况、婚否、参加工作时间、放学前最高学历、入学时间、现在工作单位名称、详细地址、联系电话、邮政编码、家庭地址、简历、社会关系、结业时间、毕业证编号、学籍变动情况、注册日期)。
〔2〕 前台学生登陆后查询自己的档案信息,并可修改除姓名、准考证号、专业、学号、结业时间、毕业证编号之外的所有信息。注册日期为程序自动提取并录入数据库。
1.2.2 班主任管理模块(如图1.1所示)
实现对学校在校成教班学生、离校生成绩信息资源、毕业设计信息的查询、统计、维护与管理。包括:
(1) 班主任登陆后台可添加修改删除本班的所有学期的所有课程。
(2) 班主任登陆后台将本班学生成绩添加到相应课程中,并可修改、删除。输入成绩时按成绩一(第一次考试成绩)、成绩二(如有补考,则输入成绩二),最终记入数据库的成绩为成绩一和成绩二的最高成绩。
(3) 班主任登陆后台可对本班学生的毕业设计信息进行增删改查等日常维护。
(4) 学生登陆后可查询自己的所有成绩,及自己的毕业设计信息。
1.2.3 超级管理模块(如图1.1所示)
1. 新闻管理
超级管理员admin登陆后台,可对本系统新闻公告进行增删改查等维护。
2. 留言管理
超级管理员admin登陆后台,可回复、删除学生提问及访客留言。
3. 班主任、专业、管理
超级管理员admin登陆后台,可对班主任、专业、课程进行增删改查等日常维护。
管理员登陆(login.asp)
超级管理员
班主任
新闻管理
专业及
班主任
管理
添加超级管理员
课程管理
学生档案管理
学生成成绩管理
毕业设计 管理
学生备注管理
图1.1成教管理系统功能模块介绍
1.3 B/S模式分析
Browser/Server (简称B/S) 即浏览器/服务器模式,是一种从传统的二层C/S模式发展起来的新的网络结构模式,其本质是三层结构C/S模式。B/S模式是基于Intranet 的需求而出现并发展的,Intranet是应用TCP/IP协议建立的企事业单位内部专用网络,它采用诸如TCP/IP、HTTP、SMTP和HTML等Internet技术和标准,能为企事业单位内部交换信息提供服务。
在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web 服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web页面形式显示出来。
B/S模式管理信息系统基本上克服了C/S 模式管理信息系统的不足,其主要表现在:
● 系统开发、维护和升级的经济性
对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,B/S模式所具有的框架结构能够大大节省这些费用,同时,B/S模式对前台客户机的要求并不高,能够避免盲目进行硬件升级造成的巨大浪费。
● B/S模式提供了一致的用户界面
B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而能够降低软件的培训费用。
● B/S模式具有很强的开放性
在B/S模式下,外部的用户亦可经过通用的浏览器进行访问。
● B/S模式的结构易于扩展
由于Web 的平台无关性,B/S模式结构能够任意扩展,能够从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。
● B/S模式具有更强的信息系统集成性
在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。
● B/S模式提供灵活的信息交流和信息发布服务
B/S模式借助Internet强大的信息发布与信息传送能力能够有效地解决企业、高等学校内部的大量不规则的信息交流。
2 数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。
信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。
数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。本章着重从SQL应用、数据库设计范式和查询优化等方面来分析本系统的关键技术和实现难点。
2.1 数据库系统设计及范式分析
信息系统的主要任务是经过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都能够迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
2.1.1 数据库系统设计
数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
数据库设计的步骤是:
(1) 数据库结构定义
(2) 数据表定义
(3) 数据使用权限设置
(4) 数据字典设计
2.1.2 数据库设计范式分析
建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全能够认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。
在数据的规范化表示中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表示还规定在每一个基本表中必须定义一个数据元素为关键字(key),它能够唯一地标识出该表中其它相关的数据元素。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常见系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1 NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1 NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1 NF。
第二范式(second normal form,简称 2 NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。只要知道了一个合同记录的合同号,就能够唯一地在同一行中找到该合同的任何一项具体信息。一般我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(third normal form,简称 3 NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
2.2 SQL语言介绍
2.2.1 SQL基础
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL一般使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句一般见于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access等等。虽然绝大多数的数据库系统使用SQL,可是它们同样有它们自立另外的专有扩展功能用于它们的系统。可是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。
SQL语言有着非常突出的优点,主要是:
n 非过程化语言
n 统一的语言
n 是所有关系数据库的公共语言
2.2.2 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
下面是一个简单SQL语句的例子:
我们使用SQL语句来从Students中检索stu_ID为15的学生姓名:
SELECT Name FROM Students WHERE stu_ID = 15
数据定义语言DDL:它是用来创立和修改数据库结构的一种语句,包括 Create、Alter和Drop 语句。
数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的 SQL 语句主要有以下三个:
(1) Insert,向一个表中加入新的数据行
(2) Delete,从一个表中删除数据行
(3) Update,更改数据库中已经存在的数据
3 ASP数据库编程
3.1 ASP简介
Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 经过 ASP 我们能够结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
以下罗列了 Active Server Pages 所独具的一些特点:
1. 使用 VBScript 、 Jscript 等简单易懂的脚本语言,结合 HTML代码,即可快速地完成网站的应用程序。
2. 无须 compile 编译,容易编写,可在服务器端直接执行。
3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。
4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5. Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 Jscript 语言来设计外,还经过 plug-in 的方式,使用由第三方所提供的其它脚本语言,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。
6. Active Server Pages 的源程序,不会被传到客户浏览器,因而能够避免所写的源程序被她人剽窃,也提高了程序的安全性。
7. 可使用服务器端的脚原来产生客户端的脚本。
8. 物件导向( Object-oriented )。
9. ActiveX Server Components(ActiveX 服务器元件 ) 具有无限可扩充性。能够使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL 等编程语言来编写你所需要的 ActiveX Server Component 。
3.2 ASP内置组件介绍
什么叫组件(Active Server Compontents)?
组件是基于Activex技术的代码片断,经过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象。你能够理解成组件是一种程序,经过调用这种程序,你能够实现你在ASP程序中无法实现或者很难实现的功能,组件是一种很好的代码重用方法。
我们能够运用Active Server Pages设计制作动态、交互的Web页面,可是一旦你开始着手工作,参与一些实际工作的时候,你会发现asp在某些方面功能不强,甚至不借助服务器端组件就很难实现某些功能,例如:数据库操作(我们一般使用ADO,ADO就是一个组件),邮件功能,文件系统操作,图形功能...可是幸运的是我们能够找到很多组件来提高ASP编程应用能力,下面对ASP内置组件作简单的介绍。
· AD ROTATOR组件
广告轮显组件
属性: Border,Clickable,TargetFarms
方法: GetAdvertisement
· FILE ACCESS组件
文件操作组件
FileSystemObject 对象
方法: CreateTextFile , OpenTestFile , CopyFile , DeleteFile,
FileExists , GetExtensionName , GetFile , GetFileName , MoveFile ,
CopyFolder , GetParentFolderName , GetSpecialFolder , GetTempName ,
GetDrive , GetDriveName , DriveExists , Drives ,
GetAbsolutePathName ,GetBaseName..
· CONTENT LINKING组件
此组件主要用于管理网页网址间的超文本链接
方法: GetListCount , GetNextURL , GetPreviousDescription ,
GetListIndex , GetNthDescription , GetPreviousURL ,
GetNextDescription , GetNthURL...
· BROWER CAPABILITIES组件
浏览器性能组件
属性: browser,version,majorver,minorver,beta,Platform, ActiveXControls,backgroundsounds,Cookies,Frames,
Javaapplets ,Tables,Vbscript,Javascript,cdf...
建立方法
Set BrowerType = Server.CreateObject("MSWC.BrowserType")
3.3 SQL语言在ASP中的应用
数据库查询语言(SQL)是使用于关系数据库的标准语言,被很多类型的数据库所支持。下面简单介绍我们平时使用最频繁,也是本系统所使用的主要语句:SELECT 的语法以及使用。 语句的语法如下:
SELECT [all | * | distinct column1, column2]
FROM table1[, table2]
WHERE [condition1 | expression1] [AND condition2 | rxpression2]
在上面的语法中,[]外的语句是必须的,而[]内的是可选的,对于以 | 分割的操作符,则表明语法中必须从| 分割的操作符中选择一个。下面的语法描述同上。在SELECT...FROM...WHERE语句中其中SELECT指定需要检索的字段,FROM指定要查询的表,WHERE指定选择纪录的条件,另外还能够包含ORDER BY语句来制定排序纪录。语法如下:
ORDER BY column1 | Integer [ASC | DESC]
其中column1制定排序的字段,也能够使用Integer指定的字段索引来排序,ASC为升序、DESC为降序。
在SELECT语句的WHERE中,我们能够使用操作符号 > 来比较大小以及使用LIKE进行匹配。在WHERE语句中,能够使用的操作符有以下几类:
1、比较操作符
包含 =、<>、>、<、>=、<= 等若干类
2、逻辑操作符
包含以下若干类:
LIKE、IN、BETWEEN、UNIQUE、IS NULL、EXISTS、ALL和ANY
LIKE 操作符经过使用通配符将一个值同其它值比较,在ASP的SQL查询中,能够使用的通配符是 * 和 ? 其中 * 代表任意的若干个字符,而 ? 代表一个字符,例如上面语句中的LIKE '*Beginner* 代表查找所有包含字符串Beginner的值。不过要注意的是使用 * 和 ? 作为通配符是VB的专利。真正的SQL语言的通配符是 % 和 _ ,其中 % 代表任意多个字符,_ 代表一个字符。另外Microsoft Jet Engine对于LIKE操作符还提供了其它一些的过滤选项。IN 操作符用于比较某一个值是否等于几个值中的一个值,例如下面的语句:
"SELECT [stu_name],[Year] FROM [student] WHERE [Year] IN ( , , )"
将从表Titles中选择所有在 , , 入学的学生名单。
BETWEEN 操作符勇于在两个值之间搜索,例如 WHERE [Year] BETWEEN AND 指定入年份必须在1989年和1991年之间。
对于逻辑操作符,能够结合NOT操作符实现改变查询条件的方向。例如 WHERE [Year] NOT IN ( , , )
3、连接符
WHERE中的连接符包括 AND 和 OR ,使用AND时,所有查询都必须是True时,条件才成立,而使用OR时,只要连接的一个查询为True,条件就成立。
在使用比较操作符时要注意,在ASP操作数据库引擎时对于查找的字符串,要使用单引号或者双引号将字符串括起来,例如 WHERE [Name]='LiGang'。而对于日期类型的数据,要使用#号将日期括起来,例如 WHERE [BirthDay] > #1980-10-01#而在使用通配符和LIKE操作符时,需要使用引号而不是#号,例如 WHERE [BirthDay] LIKE "1990-01-*"。引号告诉数据库引擎将日期当字符串处理,而#号告诉数据库引擎将日期当数字处理。
4 成教管理信息系统设计
4.1 成教管理系统数据库设计
4.1.1 概念设计
在概念设计阶段中,应该从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定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_xh(学号)、stu_zz (政治面貌)、stu_jk(健康状况)、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(注册日期)}
管理员表(超级管理员、班主任){ 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(课程编号)、cou_name(课程名)、cou_teacher(开课教师)、cou_term(开课学期)}
专业表{spe_name (专业名) spe_teacher(班主任)}
学 生
学 号
姓 名
性 别
密 码
身份证号
专业
地址
准考证号
简 历
毕业证编号
结业时间
其它…
图4.1 局部ER图的设计示例 (部分属性未列出)
学 生
成 绩
课 程
专 业来、
拥 有
学 生
M
N
N
1
专 业
拥 有
课 程
N
M
图4.2 联系定义
ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图4.2所示。解释如下:
u 一个学生能够选择多门课程学习,而一门课程有多个学生学习;
u 一个专业能够拥有多名学生,而一名学生只能选择一个专业;
u 一个专业能够拥有多门课程,而一门课程也可在不同的专业讲授。
(2)设计全局ER模式
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不但要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
专 业
班 主 任
专 业 名
1
拥 有
学生学号
N
学 生
1
课程编号
M
第一次成绩
拥 有
成 绩
最终成绩
N
课 程
N
开课学期
开课教师
课程编号
课 程 名
图4.3 “成教管理系统”的全局ER模式
(1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
(2)局部ER模式的合并
合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
(3)消除冲突
冲突分为三类:属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
(4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。
综上所述,“成教管理系统”的全局ER模式图4.3所示。
4.1.2 数据库的实现
本系统选用了SQL 数据库来进行数据库的逻辑设计。首先创立一个数据库:huoyan、然后建立七个基本数据库表如表4.1------表4.7所示。
表4.1 学生基本信息表的结构
字段名
数据类型
长度
是否关键字
必填
说明
Stu_id
int
4
是
是
自动编号
stu_name
nvarchar
50
否
是
学生姓名
stu_pw
nvarchar
50
否
是
密码
stu_sex
nvarchar
50
否
是
性别
stu_card
numeric
9
否
是
身份证号
stu_id
numeric
9
否
否
准考证号
spe_name
nvarchar
50
否
是
专业
stu_style
nvarchar
50
否
是
学习形式
stu_mz
nvarchar
50
否
是
民族
stu_jg
nvarchar
50
否
是
籍贯
stu_xh
numeric
9
是
否
学号
stu_zz
nvarchar
50
否
是
政治面貌
stu_jk
nvarchar
50
否
是
健康状况
stu_hf
nvarchar
50
否
是
婚否
stu_cjgz
datetime
8
否
否
参加工作时间
stu_xl
nvarchar
50
否
是
放学前最高学历
stu_rxsj
datetime
8
否
是
入学时间
stu_now_name
nvarchar
50
否
否
现在工作单位
stu_now_address
nvarchar
50
否
是
详细地址
stu_now_tel
numeric
9
否
是
联系电话
stu_now_post
numeric
9
否
是
邮政编码
stu_home
nvarchar
50
否
是
家庭地址
stu_resume
ntext
16
否
是
简历
stu_shgx
ntext
16
否
是
社会关系
stu_jysj
datetime
8
否
否
结业时间
stu_byzh
numeric
9
否
否
毕业证编号
stu_date
datetime
8
否
是
注册日期
stu_xjbd
nvarchar
50
否
否
学籍变动情况
表4.2 学生成绩表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
int
4
是
是
自动编号
stu_xh
numeric
9
是
是
学生学号
cou_id
numeric
9
是
是
课程编号
stu_cj_1
numeric
9
否
是
学生第一次成绩
stu_cj_2
numeric
9
否
否
学生补考成绩
stu_cj_3
numeric
9
否
是
学生最终成绩
表4.3 课程表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
int
4
是
是
自动编号
Cou_id
numeric
9
是
是
课程编号
Spe_name
nvarchar
9
否
是
所属专业名
cou_name
nvarchar
50
否
是
课程名
cou_teacher
nvarchar
50
否
是
开课教师
cou_term
nvarchar
50
否
是
开课学期
表4.4 专业表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
int
4
是
是
自动编号
spe_name
nvarchar
50
是
是
专业名
teacher_pw
nvarchar
50
否
是
班主任密码
spe_teacher
nvarchar
50
否
是
班主任
表4.5 毕业设计表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
int
4
是
是
自动编号
stu_xh
numeric
15
是
是
学生学号
gra_title
nvarchar
30
否
是
毕业论文题目
gra_teacher
nvarchar
15
否
是
指导老师
gra_db
nvarchar
15
否
是
答辩负责人
gra_cj
numeric
10
否
是
答辩成绩
表4.6 管理员表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
int
4
是
是
自动编号
Admin_check
nvarchar
50
否
否
是否为超级管理员
Spe_name
nvarchar
50
否
是
专业名
admin_name
nvarchar
50
否
是
管理员名
admin_pw
nvarchar
50
否
是
管理员密码
表4.7 新闻表的结构
字段名
数据类型
长度
是否关键字
必填
说明
id
numeric
15
是
是
自动编号
News_date
datetime
50
否
是
添加/修改日期
News_title
nvarchar
50
否
是
新闻名
News_ content
ntext
16
否
是
新闻内容
4.2 学籍管理模块的实现
学籍管理模块分成学生前台注册,管理员后员添加、修改、删除两个板块。
学生前台注册不包括学号、毕业证号等学生无权填写的项目。stu_reg.asp文件包含script脚本语言对输入数据进行检查,若不允许为空的字段未输入数据,则提示错误。对于学号等数字类型字段,由stu_reg_save.asp进行验证,若这些字段为非数字类型,则定义SESSION("ERROR")="YES",并response.Redirect("stu_reg.asp") 跳转到stu_reg.asp文件,由if语句判断并输出出错信息“sorry!身份证号、准考证号、学号、电话、邮编、毕业证编号必须为数字!”。若所有输入都正确,则连接数据
展开阅读全文