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

2013-07-04 06:17□文/董
合作经济与科技 2013年11期
关键词:主键触发器数据表

□文/董 军

(安徽国防科技职业学院 安徽·六安)

引入

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

一、需求分析

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

二、数据库表

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

表1 Teacher表结构

表2 student表结构

表3 course表结构

表4 grade表结构

表5 class表结构

三、索引

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

索引创建以后会提高查询效率,但也会引起一些问题,如降低数据更新的速度、索引建后需要维护。所以,在创建索引时,要综合考虑其优缺点。可以参考以下原则为表中的列创建查询:(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 STU

DENT 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.

猜你喜欢
主键触发器数据表
基于列控工程数据表建立线路拓扑关系的研究
主从JK触发器逻辑功能分析
使用触发器,强化安全性
图表
基于VSL的动态数据表应用研究
数据库主键设置探讨
对触发器逻辑功能转换的分析
触发器逻辑功能转换的两种方法