您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页学生学籍管理系统数据库系统)sql)

学生学籍管理系统数据库系统)sql)

来源:爱go旅游网
学生学籍管理系统(数据库系统)

1 设计内容和要求

1.1设计背景

随着我国教育改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。

1.2开发环境

本学生学籍管理系统(数据库系统)的开发与运行环境如下: 开发环境:Windows XP

辅助工具:PowerDesigner Trial 11 数据库管理系统:SQL Server 2000 运行环境:Windows 2000/XP/2003

1.3内容和要求

1.3.1系统目标设计

 使得学生的学籍管理工作更加清晰、条理化、自动化。

 很容易地完成新生信息的输入、老生信息的备份、毕业学生的信息可以很容易地保存。

 当学生需要查询成绩时,可以很简单地将其需要的信息从数据库中查找出来并可以打印查询结果。

 随着当今网络技术的发展,提供网络在线查询功能,可以为毕业生提供更多的就业机会。

1.3.2系统功能要求

(1)学生基本信息系统

 能够完成新、老生信息的输人、修改、插人、删除等工作。  可以按照特定的信息进行查找,并按照特定的要求进行排序。  可以对老生的信息进行备份,以便日后查询。  可以对学生的信息进行打印输出。  提供详细的帮助文件和系统维护功能。 (2)学生成绩管理系统 此部分的功能如下:

 学生成绩的输入、修改、删除等基本操作。

 成绩的综合统计功能,包括学生成绩按照不同条件进行排名。管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。

 计算各班的总分和平均分,并按照平均分将各班成绩进行排序。  统计不及格考生的信息,根据条件确定是重修还是补考。

 学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。

 本系统可以在单机上运行,也可以应用在网络上供在线查询成绩和其他一些学生的信息(此功能选做人提供给学生进行查询的系统和提供给教务处使用的系统,在不同用户使用时,应该会有不同的使用权限。

 提供详细的帮助文件。

由于数据库内的信息会很多,注意数据库表格设计,使得学生查询基本信息或学习成绩时使用时间较短。按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计。

系统的功能模块设计图如图所示。

图 1-1 系统功能模块设计图

2 需求分析

2.1 引言

进行数据库设计首先必须准确了解也分析用户需求(包括数据和处理)。目的是为学籍管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,是用户和系统分析员的项目依据文件。作为“地基”的需求分析是否做得充分与准确,它决定了在其上构建数据库大厦的速度和质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。

本系统的开发是设计一个学生学籍管理系统(数据库系统)。

2.2 用户需求

本系统是针对高等院校的学生学籍管理,因此学籍管理系统的用户包括系统管理员、教师和学生。主要涉及系部信息、班级信息、任课教师信息、学生信息、课程信息以及选课记录和成绩等多种数据信息。 实现的具体功能如下:

 基本信息管理——系统管理员负责对各种基本信息的录入、修改、删除等操

作。

 学生成绩管理——系统管理员负责对学生成绩的录入、修改、删除等操作,

学生可以查询各科成绩。

 信息查询统计——学生可以查询基本信息和各科的考试成绩,老师可以查询

基本信息和授课信息,系统管理员负责把老师提交的学生成绩进行管理,计算总成绩和平均成绩,统计不及格学生信息和获得奖学金学生的信息,最后再输出所有的信息。

 毕业生信息管理——系统管理员负责计算毕业学生在学校期间所修课程的总

学分,并进行审核,最后输出登记表和名册。

 系统用户管理——系统管理员负责用不同的权限来不同用户对系统的使

用。

以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。

2.3 划分功能模块

根据系统功能的需求分析和高等院校学籍管理的特点,经过模块化的分析得到如

下图1-1所示的系统功能模块结构图。

学籍管理系统 基本信息管理 学生成绩管理 信息查询统计 毕业生信息管理 系统用户管理 基本信息录入 基本信息修改 基本信息删除 学生成绩录入 学生成绩修改 学生成绩删除 基本信息查询 学生成绩查询 计算学生成绩 统计学生成绩 输出相关信息 计算学分 审核资格 输出名册 修改密码 帮助信息

图 2-1 系统功能模块图

2.4 数据字典

2.4.1 数据项

数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,学籍管理的主要数据见下表。

表 2.1 老师基本信息表

序号 1 2 3 4 5 字段 tno tname tsex profess dname 别名 学号 姓名 性别 职称 数据类型 数据长度 char varchar Char varchar 10 10 2 10 8 码 Y N N N N 所属院系 varchar 6 序号 1 2 3 4 5 6 7 8 9 10 序号 1 2 3 4 序号 1 2 3 4 5 6 7 8 序号 tel 字段 sno sname ssex symbol Id Intime birthplace 电话 别名 学号 姓名 性别 int N 码 Y N N N N N N N N N 码 Y N N N 码 Y N N N N N N N 码 表 2.2 学生基本信息表

数据类型 数据长度 varchar varchar Char 10 10 2 20 8 20 20 10 30 birthday 出生日期 timestamp 政治面貌 varchar 身份证号 varchar 入学时间 varchar 籍贯 varchar int homeaddr 家庭住址 varchar postcode 邮政编码 字段 mno sno mname intime 字段 gno sno sname ssex dname intime ycredit xcredit 字段 别名 专业号 学号 专业名 表 2.3 专业信息表

数据类型 数据长度 char varchar char 10 10 10 入学时间 datetime 表 2.4 毕业信息表

别名 毕业证编号 学号 姓名 性别 所属院系 已修学分 需修学分 别名 数据类型 数据长度 char varchar varchar char varchar 10 10 10 2 10 入学时间 datetime float float 表 2.5 院系信息表

数据类型 数据长度 1 2 3 序号 1 2 3 序号 1 2 3 序号 1 2 3 dmpno dname dmphead 字段 cno cname credit 字段 sno cno grade 字段 cno tno ctime 院系号 院长名 别名 课程号 课程名 学分 别名 学号 课程号 成绩 别名 课程号 教工号 课时 varchar varchar 10 10 20 Y N N 码 Y N N 码 Y Y N 码 Y Y N 院系名称 varchar 表 2.6 课程信息表

数据类型 数据长度 varchar varchar smallint 5 15 表 2.7 学生选课信息表

数据类型 数据长度 varchar varchar float 10 5 表 2.8 老师授课信息表

数据类型 数据长度 varchar char smallint 5 10 2.4.2数据结构

数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或若干个数据项和数据结构混合组成。经过数据项和用户需求的分析,我对本系统一共分了5个组,具体如下表所示:

表 2.9 数据结构表

组成部分 学号+姓名+性别+出生日期+身份证号+入学时间+政治面貌+家庭住址+籍贯+邮政编码+民族 老师基本信息管理 描述老师基本信息 教工号+姓名+性别+职称+所属院系+电话 学生、老师相关信息管理 描述学生选课信息,毕业学号+课程号+成绩 信息,专业、院系信息,课程号+教工号 老师授课信息,院系信息 毕业证编号+学号+姓名+性别+身份证号+所属院系+入学时间+已修学分+需修学分 学生成绩管理 描述学生平均成绩、总成学号+课程号+成绩 绩的计算,统计相关信息 系统管理 描述用户修改密码,帮助 信息 数据结构名 学生基本信息管理 含义说明 描述学生基本信息 2.4.3数据流

数据流是数据结构在系统内传输的路径。通过对用户的需求分析,以及数据项和数据流的设计,得出了相应的数据流描述如下表所示:

1、数据流定义表

表 2.10 数据流定义表

编号 01 数据流名 学生信息 02 03 04 05 06 07 教师信息 学生成绩 科目成绩 各门成绩 查询结果 统计分析 组成 学号+姓名+性别+出生日期+身份证号+入学时间+政治面貌+家庭住址+籍贯+邮政编码+民族 教工号+姓名+性别+职称+所属院系+电话 学号+姓名+性别+学号+课程号+成绩 学号+课程号+成绩 学号+课程号+成绩 课程号+课程名+学分 科目成绩+各门成绩 科目成绩+各门成绩 流量 备注 大 学生基本信息 一般 教师基本信息 大 学生详细信息 大 学生考试成绩 大 同上 大 大 各种信息 学生奖励 2、外部项定义表

表 2.11 外部项定义表

编号 名称 输入数据流 输出数据流 1 学生处 01 2 学生 06 3 老师 03 4 教务员 06/07 备注 主要用于录入学生信息 主要用语学生查询信息和成绩 主要用于老师提交成绩 主要用于输出查询和统计信息的结果 2.4.4数据存储

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。经过数据项、数据结构和数据流的设计,本系统一共选用了三个数据存储,具体对数据存储的描述通常如下表所示:

表 2.12 数据存储表

编号 A1 A2 A3 数据存储名 学生相关信息 教师相关信息 学生成绩单 输入数据流 03 输出数据流 01 02 06,07 数据量 大 一般 大 存取方式 批处理、顺序检索 批处理、顺序检索 批处理、更新、顺序检索 2.4.5处理过程

处理过程的具体处理逻辑一般用判定表或判定树来描述。对于本系统用于学生学籍管理一共设计了四种处理方法,具体处理方式如下表所示:

表 2.13 数据处理过程表

编号 B1 B2 B3 B4 名称 插入修改 更新修改 删除修改 统计分析 输入数据流 01,02,03 01,02,03 01,02,03 05,06 输出数据流 01,02,03 01,02,03 01,02,03 05,06 备注 插入学生信息和老师信息 更新学生信息和老师信息 删除学生信息和老师信息 统计学生信息和成绩 3 概念结构设计

概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成于具体DBMS的概念模型。

3.1数据流图

数据流图表达了数据和处理的关系,根据用户的需求分析和高校学籍管理系统的需求,得出如下图1-1所示的学籍管理数据流图。

学生 批准? 毕业 提交申请 审核信息 统计 合格 送进批准? 核对信息 新生? 学生信息 教师 成绩单 计算 录入 成绩 查询 录入 学生名单 管理员 学生更新

图 3-1 学籍管理系统数据流图

3.2 系统E-R图

1. 对于学生信息管理,我们可以将学生实体抽象出来,学生属于学院可以将学院作为一个实体,学生所属专业和毕业信息都将可以作为一个实体。

图 3-2 学生实体E-R图 图 3-3 院系实体E-R图 图 3-4 专业实体E-R图 图 3-5 毕业实体E-R图

在学生信息管理中存在这样的关系:选择(一个学生只能选择一个专业,而一个专业可以供多个学生选择,故是多对一的关系)、学习(一个学生只能在一个院系学习,而一个院系可以供多个学生学习,故是多对一的关系)。

图 3-6 学生关系E-R图

2. 对于老师信息管理,我们可以将老师实体抽象出来,老师属于学院可以将学院作为一个实体。

图 3-7 老师实体E-R图

在老师信息管理中存在这样的关系:拥有(一个老师只能在一个院系工作,而一个院系可以供多个多个老师工作,故是多对一的关系)。

图 3-8 老师关系E-R图

3. 对于教务信息管理,我们可以将课程实体抽象出来。

图 3-9 课程实体E-R图

在教务信息管理中存在这样的关系:毕业(一个学生拥有一个毕业信息,而一个毕业信息只属于一个学生,故是一对一的关系)、选修(一个学生可以选修多门课程,而一门课程可以被多个学生选修,故是多对多的关系)、开设(一个专业可以开设多门课程,而一门课程可以被多个专业选择,故是多对多的关系)、授课(一门课程可以被多个老师讲授,而一个老师可以讲授多门课程,故是多对多的关系)。

图 3-10 教务关系E-R图

以上是本系统中的基本的实体和关系,本系统是将其分步找出来加以描述,下面是本系统总体的E-R图:

图 3-11 学籍管理系统E-R图

3.3 概念模型

概念模型是在对用户需求分析之后,通过画出本系统抽象出的E-R图,由概念模型辅助工具PowerDesigner11进行设计,通过具体地设置和绘图,最后就形成了如下所示的概念模型图,生成的概念结构就能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型。

图 3-12 学籍管理系统概念模型图

4 逻辑结构设计

逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。

设计逻辑结构一般分为3步进行:

(1)将概念结构转换为一般的关系、网状、层次模型;

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; (3)对数据模型进行优化。

4.1 关系模型

将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型间的联系则有以下不同的情况:

(1)一个1:1联系可以转换为一个的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的侯选码。如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中加入另一个关系模式的码和联系本身的属性。

(2)一个1:n联系可以转换为一个的关系模式,也可以与n端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的个各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

(3)一个m:n联系转换为一个关系模式。与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

(5)具有相同码的关系模式可合并。

将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:

 学生(学号,专业号,院系号,姓名,性别,出生日期,身份证号,入学时间,政治面貌,家庭住址,籍贯,邮政编码,民族),此为学生实体对应的关系模式。  教师(教工号,姓名,性别,职称,所属院系,电话),此为老师实体对应的关

系模式。

 毕业(毕业证编号,学号,姓名,性别,身份证号,所属院系,入学时间,已修学分,需修学分),此为毕业实体对应的关系模式。

 课程(课程号,课程名,学分),此为课程实体对应的关系模式。  院系(院系号,院系名称,院长名),此为院系实体对应的关系模式。  选修(学号,课程号,成绩),此为选修关系对应的关系模式。  授课(课程号,教工号,课时),此为老师授课关系对应的关系模式。  开设(专业号,课程号),此为专业开设课程关系对应的关系模式。

4.2 物理模型

将生成的概念模型通过单击PowerDesigner11工具菜单栏上的Tools选项,再选择Generate Physical Data Model选项,就可以转换为物理模型,生成的最后结果具体如下图所示:

图 4-1 学籍管理系统物理模型图

5 物理结构设计与功能实现

5.1 物理结构设计

数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数

数据库的物理设计通常分为两步:

(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。

5.1.1 确定数据库的存储结构

由于本系统的数据库建立不是很大,所以数据存储采用的是一个磁盘的一个分区。

5.1.2 存取方法和优化方法

存取方法是快速存取数据库中数据的技术。数据库管理系统一般都是提供多种存取方法。常用的存取方法有三类。第一类是索引方法,目前主要是B+树索引方法;第二类是聚簇方法;第三类是HASH方法。数据库的索引类似书的目录。在书中,目录允许用户不必浏览全书就能迅速地找到所需要的位置。在数据库中,索引也允许应用程序迅速找到表中的数据,而不必扫描整个数据库。在书中,目录就是内容和相应页号的清单。在数据库中,索引就是表中数据和相应存储位置的列表。使用索引可以大大减少数据的查询时间。

但需要注意的是索引虽然能加速查询的速度,但是为数据库中的每张表都设置大量的索引并不是一个明智的做法。这是因为增加索引也有其不利的一面:首先,每个索引都将占用一定的存储空间,如果建立聚簇索引(会改变数据物理存储位置的一种索引),占用需要的空间就会更大;其次,当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的更新速度。

5.2 功能实现

完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库,最后就在此基础上编写各个表相关的触发器和存储过程。

5.2.1 触发器

触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,任何用户对

表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。由于本系统的触发器比较多,在这里我只写出了其中的一部分触发器,具体如下所示。

(1)数据更新

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER scupdate ON dbo.student //建立学生信息表更新触发器 FOR UPDATE AS

UPDATE SC //更新学生选课表SC

SET SNO = (SELECT SNO FROM INSERTED) //将SC表中的学号改成学生表改后的 WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER graduateupdate ON dbo.student //建立学生信息表更新触发器 FOR UPDATE AS

UPDATE GRADUATE //更新学生毕业信息表GRADUATE

SET SNO = (SELECT SNO FROM INSERTED) //将GRADUATE表中的学号改成学生表修

改后的

WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER majorupdate ON dbo.student //建立学生信息表更新触发器 FOR UPDATE AS

UPDATE MAJOR //更新专业信息表MAJOR

SET SNO = (SELECT SNO FROM INSERTED) //将MAJOR表中的学号改成学生表修改后

WHERE SNO = (SELECT SNO FROM DELETED); //更改对应的学生学号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER student1 ON dbo.major //建立专业信息表更新触发器 FOR UPDATE AS

UPDATE STUDENT //更新学生信息信息表STUDENT

SET MNO = (SELECT MNO FROM INSERTED) //将STUDENT表中的专业号改成专业表修

改后的

WHERE MNO = (SELECT MNO FROM DELETED); //更改对应的专业号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER student2update ON dbo.department //建立院系信息表更新触发器 FOR UPDATE AS

UPDATE STUDENT //更新学生信息信息表STUDENT

SET DMPNO = (SELECT DMPNO FROM INSERTED) //将STUDENT表中的院系号改成专业

表修改后的

WHERE DMPNO = (SELECT DMPNO FROM DELETED); //更改对应的院系号

---------------------------------------------------------------------------------------------------------------------

(2) 数据删除

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER teach1update ON dbo.teacher //建立教师信息表删除触发器 FOR DELETE AS

UPDATE TEACH //删除授课信息表TEACH

SET TNO = NULL //删除TEACH表中的教工号删除

WHERE TNO = (SELECT TNO FROM DELETED) //找到对应的教工号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER sc1update ON dbo.course //建立课程信息表删除触发器 FOR DELETE AS

UPDATE SC //删除选课信息表SC

SET CNO = NULL //删除SC表中的课程号删除

WHERE CNO = (SELECT CNO FROM DELETED) //找到对应的课程号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER stu_majorupdate ON dbo.major //建立专业信息表删除触发器 FOR DELETE AS

UPDATE STUDENT //删除学生信息表STUDENT SET MNO = NULL //删除STUDENT 表中的专业号删除

WHERE MNO = (SELECT MNO FROM DELETED) //找到对应的专业号

---------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER teacherupdate ON dbo.department //建立院系信息表删除触发器

FOR DELETE AS

UPDATE TEACHER //删除教师信息表TEACHER SET DMPNO = NULL //删除TEACHER表中的院系号删除

WHERE DMPNO = (SELECT DMPNO FROM DELETED) //找到对应的院系号

---------------------------------------------------------------------------------------------------------------------

5.2.2 存储过程

存储过程是PL/SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。

(1)数据查询

---------------------------------------------------------------------------------------------------------------------

存储过程名:教师信息查询

入口参数:@tno varchar(10) 出口参数:@tno char(10),

//输入教师的教工号

@tname varchar(10),

@profess varchar(10), @dname varchar(10),

@tel int, @tsex char(2),

//定义存放输出教师信息的变量

CREATE PROCEDURE selectteacher //建立查询教师信息存储过程

@tno AS

SELECT @tno = tno FROM INSERTED //选择与输入教工号相等的所

有记录

SELECT * //选出符合条件的教师所有信息

FROM teacher GO

---------------------------------------------------------------------------------------------------------------------

存储过程名:院系信息查询

入口参数:@dmpno

//输入院系的院系号

出口参数:@dmpno,

@dmpname,

@dmphead, //定义存放输出院系信息的变量

CREATE PROCEDURE selectdepartment//建立查询院系信息存储过程

@dmpno AS

SELECT @dmpno = dmpno FROM INSERTED //选择与输入院系号相等的所有记录 SELECT *

//选出符合条件的院系所有信息

FROM department GO

---------------------------------------------------------------------------------------------------------------------

(2)数据插入

---------------------------------------------------------------------------------------------------------------------

存储过程名:学生信息插入

入口参数:@sno varchar(10),

@id varchar(20),

@intime varchar(20), @sname varchar(10), @birthday varchar(20),

@birthplace varchar(10), @ssex char(2), @symbol varchar(8), @postcode int,

@homeaddr varchar(20),

//输入需要插入的学生所有信息

出口参数: 无

CREATE PROCEDURE insertstudent//建立插入学生信息的存储过程

@sno varchar(10),

@id varchar(20), @birthplace varchar(10), @ssex char(2), @symbol varchar(8),

@intime varchar(20), @sname varchar(10),

@birthday varchar(20),

@homeaddr varchar(20), @postcode int, //定义存放插入学生信息的变量

AS INSERT

INTO

student(sno,sname,ssex,birthday,symbol,id,intime,birthplace,

homeaddr,postcode)//插入学生表对应的列名

VALUES (@sno varchar(10), @sname varchar(10), @ssex char(2),

@birthday varchar(20), @symbol varchar(8), @id varchar(20),

@intime varchar(20), @birthplace varchar(10),

@homeaddr varchar(20), @postcode int)//插入学生表对应列

名值

GO

---------------------------------------------------------------------------------------------------------------------

存储过程名:教师信息插入

入口参数:@tno char(10),

@tname varchar(10), @dname varchar(10),

@profess varchar(10),

@tel int, @tsex char(2),

//输入需要插入的教师所有信息

出口参数: 无

CREATE PROCEDURE insertteacher

@tno char(10),

@tname varchar(10), @dname varchar(10), @tsex char(2),

@profess varchar(10), @tel int,

//定义存放输出教师信息的变量 AS

INSERT INTO teacher(tno,tname,tsex,profess,dname,tel) //插入教师表对应的列名

VALUES (@tno char(10), @tname varchar(10), @tsex char(2),

@profess varchar(10), @dname varchar(10), @tel int,)

//插入教师表对应列名值 GO

---------------------------------------------------------------------------------------------------------------------

(3)数据删除

---------------------------------------------------------------------------------------------------------------------

存储过程名:学生信息删除

入口参数:@sno varchar(10) //输入要删除学生的学号 出口参数: 无

CREATE PROCEDURE deletestudent //建立删除学生信息的存储过程

@sno,

AS

SELECT @sno = sno FROM DELETED

//选择与输入学号相等的所有记录 DELETE FROM student GO

---------------------------------------------------------------------------------------------------------------------

//删除符合条件的记录

存储过程名:专业信息删除

入口参数:@mno varchar(10) //输入要删除专业的专业号 出口参数: 无

CREATE PROCEDURE deletemajor

@ mname,

AS

SELECT @mname = mname FROM DELETED

//选择与输入专业号相等的所有记录 DELETE FROM major GO

//删除符合条件的记录

//建立删除专业信息的存储过程

---------------------------------------------------------------------------------------------------------------------

(4)数据更新

---------------------------------------------------------------------------------------------------------------------

存储过程名:学生学号更新

入口参数: @no int, 出口参数: @sno int,

//输入要更新的学生学号 //输出更新后的学生学号

CREATE PROCEDURE updatesno //建立更新学生学号的存储过程

AS

SELECT @no = sno FROM INSERTED //选择与输入学号相等的所有记录 UPDATE student SET sno=@no GO

---------------------------------------------------------------------------------------------------------------------

//更新符合条件的记录

@no int,

存储过程名:专业名更新

入口参数:@mname varchar(20), 出口参数:@name varchar(20),

//输入要更新的专业名称 //输出更新后的专业名称

CREATE PROCEDURE updatemname //建立更新专业名的存储过程

AS

@name varchar(20),

SELECT @mname = mname FROM INSERTED //选择与输入学号相等的所有记录 UPDATE major SET mname=@name GO

---------------------------------------------------------------------------------------------------------------------

//更新符合条件的记录

5.3 数据库的实施和维护

完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式。然后就可以组织数据入库了,这就是数据库实施阶段。

5.3.1 数据库的实施

数据库的实施主要是根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。

当在PowerDesigner Trial 11中设计好本系统的物理结构之后,就可以向数据库转换为相应的表。先选择菜单栏中Database的Connect,通过添加数据源,连接数据源,输入用户名和密码进行转换,生成相关的SQL语句,在通过运行之后,最终在SQL Server 2000中生成了如下所示的表。

 学生基本信息表(主要描述一些学生入学前的基本信息):

图 5-1 学生基本信息表结构图

 教师基本信息表(主要描述教师的一些基本信息):

图 5-2 教师基本信息表结构图

 院系信息表(主要描述学校中各个院系的一些基本信息):

图 5-3 院系信息表结构图

 专业信息表(主要描述学生选择专业的信息):

图 5-4 专业信息表结构图

 课程信息表(主要描述学校开设的课程的基本信息):

图 5-5 课程信息表结构图

 选课信息表(主要描述学生选修课程的信息):

图 5-6 选课信息表结构图

 授课信息表(主要描述教师授课的信息):

图 5-7 授课信息表结构图

 学生毕业信息表(主要描述学生毕业的基本信息):

图 5-8 学生毕业信息表结构图

5.3.2 数据的载入

数据库实施阶段包括两项重要的工作,一项是数据的载入,另一项是应用程序的编码和调试。由于本次课程设计没有进行应用程序的开发,因此对于后一项工作在这里就不做描述了。具体输入的一部分数据如下图所示:  输入学生基本信息:

图 5-9 学生部分基本信息数据图

 输入教师基本信息:

图 5-10 教师基本信息数据图

 输入课程基本信息:

图 5-11 课程信息数据图

 输入院系基本信息:

图 5-12 院系基本信息数据图

 输入专业信息:

图 5-13 专业信息数据图

 输入学生毕业基本信息:

图 5-14 学生毕业基本信息数据图

 输入学生选课信息:

图 5-15 学生选课信息数据图

 输入教师授课信息:

图 5-16 教师授课基本信息数据图

5.3 数据库的试运行

5.3.1 通过SQL语句进行简单测试

当一小部分数据输入数据库后,就可以开始对数据库系统进行联合调试,这一阶段要实际运行数据库应用程序,执行对数据库的各种操作,由于没有应用程序,所以只有通过SQL语言直接在数据库中执行对数据库的各种操作。

通过在SQL Server 2000的查询分析器中输入相应的SQL语句,就可以得到相应的结果,具体如下所示:

(1)查询学生的基本信息

输入SQL语句:

SELECT sno,sname,ssex,dmpno,mno,birthday,sid,intime FROM student;

执行结果:

图 5-17 查询学生基本信息结果图

(2)插入教师的基本信息

输入SQL语句:

INSERT

INTO teacher (tno,dmpno,tname,tsex,profess,tel) VALUES ('25','05','田七','男','教授','1345263526');

执行结果:

图 5-18 插入教师基本信息结果图

(3)删除课程的基本信息

输入SQL语句:

DELETE FROM course

WHERE cname = '大学英语';

执行结果:

图 5-19 删除课程信息结果图

(4)更新学生的基本信息(将学号为‘1’的学生的入学时间改为

‘2006-9-1’)

输入SQL语句:

UPDATE student SET intime = 2006-9-1 WHERE sno = '1';

执行结果:

图 5-20 更新学生基本信息结果图

5.4 数据库的运行和维护

数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。

在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,包括: (1)数据库的转储和恢复——DBA要针对不同的应用要求制定不同的转储计划,一保

证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。

(2)数据库的安全性、完整性控制——DBA根据实际情况修改原有的安全性控制和数据库的完整性约束条件,以满足用户要求。

(3)数据库性能的监督、分析和改造——在数据库运行过程中,DBA必须监督系统运行,对监测数据进行分析,找出改进系统性能的方法。

(4)数据库的重组织与重构造——数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织。

6 设计体会与建议

通过近两周的数据库程序设计课,使我对这学期学的知识有了全面的认识。由于以前大部分时间都在学习理论的知识,所以对数据库设计不是很了解。而学校提供的这次实习机会使我收获颇多,从中也发现了许多不足,让我找到了以后学习的方向。

通过努力,我们组设计出了一个学籍管理的数据库系统,这个系统可以帮助用户更好、更快、更有效地管理学生的学籍问题。在这个系统中,我们主要实现了的功能有能够完成新、老生信息的输人、修改、插人、删除等工作,可以按照特定的信息进行查找,并按照特定的要求进行排序,可以对老生的信息进行备份,以便日后查询,可以对学生的信息进行打印输出,学生成绩的输入、修改、删除等基本操作,成绩的综合统计功能,包括学生成绩按照不同条件进行排名。管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出,计算各班的总分和平均分,并按照平均分将各班成绩进行排序,统计不及格考生的信息,根据条件确定是重修还是补考,学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。其中有优点,但也存在不足的地方。优点是可以保证用户更好地管理数据,可以运用多种功能。不足的地方是我在设计触发器和存储过程的时候没有实现好,分析其中的原因,是我自己对触发器和存储过程没有更加深入的了解,平时没有花时间去练习,因此我决定在以后的学习中要更加努力。

实习结束后,我发现理论和实践之间还是存在一定的差距,要把理论知识灵活运用于实践才是最好的,因此我也希望学校能多给我们提供一些实践的机会。

7 参考文献

[1] 王珊、萨师煊.数据库系统概论. 北京.高等教育出版社.2006. [2] 王珊等. 数据仓库技术与联机分析处理. 北京.科学出版社.1998. [3] Inmon W H .数据仓库.北京.机械工业出版社,2000. [4] Inmon W H等 .数据仓库管理.北京.电子工业出版社,2000. [5] Kimball R等.数据仓库工具箱.北京. 电子工业出版社,2003. [6] Imhoff C等.数据仓库设计. 北京. 机械工业出版社,2004. [7] Mattison R.Web仓库工程与知识管理.北京.清华大学出版社,2003.

[8] Bain T等.SQL Server 2000数据仓库与Analysis Services.北京.中国电力出版社,2003.

[9] 贾讽波.杨树青、杨玉顺.数据库应用实例.北京:人民邮电出版社.2006.

致 谢

首先我要感谢学校给了我们两周宝贵的实习时间,经过这两周的实习,使我对数据库系统概论这门学科有了更深一步的认识,也不在像最初接触数据库那么迷茫了,通过近两周的程序设计课,使我对这学期学的知识有了全面的认识。由于以前大部分时间都在学习理论的知识,所以对项目不是很了解。而学校提供的这次实习机会使我收获颇多,从中也发现了许多不足,让我找到了以后学习的方向。在这次程序设计过程中,也出现了不少的问题,但在老师和同学的耐心帮助下,问题都得到了解决,正是有了你们的帮助,我才能顺利地完成学籍管理系统的设计。在此,我感谢帮助过我的所有同学,并向帮助过我的所有老师说一声:“您们辛苦了!”。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务