学生成绩管理系统数据库设计

更新时间:2024-04-19 作者:用户投稿原创标记本站原创 点赞:11007 浏览:46116

[提要] 一个好的数据库,不但可以提高数据查询效率,而且还可以保证数据的完整性和一致性.所以,数据库在信息管理系统中有着非常重要的作用.本文介绍如何使用SQL Server 2005完成学生成绩管理系统的数据库设计.

关 键 词 :SQL Server;成绩管理系统;数据库设计

中图分类号:TP 文献标识码:A

原标题:学生成绩管理系统数据库的设计

收录日期:2013年4月9日

引入

因为各高校学生人数的增多以及学生成绩管理工作的复杂性,人工管理学生成绩信息的效率越来越低.这种情况下,学生成绩管理系统就出现了.

一、需求分析

需求分析是整个数据库设计中重要的一步,在这个阶段要充分地与用户沟通交流,了解与分析用户的需求.学生信息管理系统中涉及的主要人员有学生、教师、管理人员;主要的部门有教务处、系部.在需求分析时可以通过问卷调查、谈话等方式,了解用户的需求,最终绘制系统的数据流程图.

二、数据库表

关系数据库中所有的数据都存储在关系表中,通过需求分析,我们可以在学生成绩管理系统中创建以下数据表(此处只列举主要的数据表).(表1、表2、表3、表4、表5)

三、索引

索引是提高查询的主要方法,在图书管理系统中,因为图书数量的庞大,所以建立索引是必不可少的.在为表中的主键建立索引以后,系统会自动地在主键上创建聚集索引.除此之外,我们还可以为一些经常查询的字段上,创建非聚集索引.


索引创建以后会提高查询效率,但也会引起一些问题,如降低数据更新的速度、索引建后需要维护.所以,在创建索引时,要综合考虑其优缺点.可以参考以下原则为表中的列创建查询:(1)经常用于查询的列;(2)经常用于分组和排序的列;(3)在连接中常用到的列.

按照以上原则,我们可以为以下列创建索引:Stu_Id、Stu_Name、Tea_Id、Tea_Name、speciality_Id、class_Id等.

四、存储过程

存储过程是T-SQL语句的集合,能够实现特定的功能.使用存储过程,可以大大减少网络传输流量,提高应用程序性能,而且由于它只在第一次执行时被优化、编译.因此使用存储过程不仅可以极大地降低应用程序的实现难度,而且还可以极大地提高系统的运行速度、效率.SQL Server 2005中存储过程分为:系统存储过程、用户自定义存储过程、扩展存储过程三种.例如:在该系统中,我们可以创建存储过程实现按照学生姓名查询成绩.实现代码如下:

CREATE PROCEDURE grade_by_name

@name char(10)

AS

BEGIN

SELECT*FROM grade

WHERE Stu_Id等于(SELECT Stu_Id FROM STUDENT WHERE Stu_Name等于@name)

END

五、触发器

触发器是在执行操作语句时自动执行的一种存储过程.触发器可以侦测到数据库内数据的操作,并自动地级联影响到整个数据库的操作,从而保证数据库数据的完整性和一致性.例如:在某一个学生退学删除学生基本信息以后,那么该学生相应的成绩信息也应该被删除.可以以下代码完成该功能:

CREATE TRIGGER STUDENT_DELETE

ON Student

FOR Delete

As

BEGIN

Delete from grade

Where stu_id等于(Select stu_id from deleted)

END

主要参考文献:

[1]黄存东.数据库原理及应用.中国水利水电出版社,2011.1.

[2](美)Peter Rob,Carlos Coronel.张瑜,张继萍等译.数据库系统设计、实现与管理.清华大学出版社,2005.