学生考勤管理系统数据库设计数计系.docx

上传人:b****2 文档编号:493060 上传时间:2022-10-10 格式:DOCX 页数:12 大小:139.37KB
下载 相关 举报
学生考勤管理系统数据库设计数计系.docx_第1页
第1页 / 共12页
学生考勤管理系统数据库设计数计系.docx_第2页
第2页 / 共12页
学生考勤管理系统数据库设计数计系.docx_第3页
第3页 / 共12页
学生考勤管理系统数据库设计数计系.docx_第4页
第4页 / 共12页
学生考勤管理系统数据库设计数计系.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

学生考勤管理系统数据库设计数计系.docx

《学生考勤管理系统数据库设计数计系.docx》由会员分享,可在线阅读,更多相关《学生考勤管理系统数据库设计数计系.docx(12页珍藏版)》请在冰豆网上搜索。

学生考勤管理系统数据库设计数计系.docx

学生考勤管理系统数据库设计数计系

钦州学院

考勤管理系统数据库设计

数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库以及应用环境,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。

数据库的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。

数据库设计的一个特点是“三分技术,七分管理,十二分基础数据”。

数据库设计的基本步骤如下:

(1)需求分析

(2)概念结构设计

(3)数据库逻辑设计

(4)数据库物理设计

(5)数据库实施

(6)数据库运行和维护

一.数据库需求分析

设计这个系统的主要目的就是实现学生的考勤管理的规范化。

数据库的需求分析阶段是整个数据库设计过程中的基础,也是耗时就多,最困难的一步。

需求分析的任务就是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

这个阶段的工作成果主要以下三个方面的内容:

(1)数据项:

每种具体数据的名称、意义、类型、取值范围以及与其他数据项之间的逻辑关系。

(2)数据集:

若干数据项的有逻辑关联的集合,包括名称、意义和组成数据集的数据项。

(3)数据流:

应用系统运行时,数据是怎么输入、处理和输出。

二.数据库概念结构设计

局部e-r图设计

(1)学生信息表的e-r图

(2)刷卡表的e-r图

刷卡

(3)刷卡记录表的e-r图

全局e-r图如下:

三.数据库逻辑结构设计

数据库逻辑设计主要是将概念结构设计转换为某个dbms所支持的数据模型设计出

刷卡表结构如下:

字段

skid

Kid

数据类型

number(4)

能否为空

不能

不能

备注

刷卡编号

卡编号(主键)

zctime

date

注册时间

number(4)

学生信息表结构如下:

刷卡记录表结构如下:

四.数据库物理结构设计

物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻辑结构设计中的表用sql语句创建出来。

(1)创建表空间

(2)创建新用户

(3)给新用户授权

(4)以新用户的身份登入,创建表

首先创建学生表,实现语句如下:

Createtablestuent

Snovarchar2(8)notnullprimarykey,

Snamevarchar2(20)notnull,

Sexvarchar2

(2)notnull,

Sagenumber

(2),

Specialityvarchar2(16),

Banjivarchar2(12)

Tablespacezhuzhu;

执行结果如下:

然后,创建刷卡表

实现语句如下:

Createtablesk

Skidnumber(4)notnull,

Kidnumber(4)notnullprimarykey,

Zctimedate

Tablespacezhuzhu;

执行结果如下:

接着,再创建刷卡记录表

实现语句如下:

Createtableskrecord

Skidnumber(4)notnull,

Kidnumber(4)notnull,

Snovarchar2(8)notnullprimarykey,

Sktimetimestamp

Tablespacezhuzhu;

最后,建立各个表之间的约束

实现语句:

Altertableskrecord

Add

(constraintsk_kid_fkforeignkey(kid)referencessk(kid)

Constraintskrecord_snoforeignkey(sno)references

stuent(sno)

);

(5)创建一个序列实现刷卡编号的自动增长

Createsequenceseq_in

Incrementby1

Startwith1

Nomaxvalue;

Createsequenceseq_in2

Incrementby1

Startwith1

Nomaxvalue;

(6)创建触发器

只要学生一刷卡,就会在sk表中插入一条记录,此时查找刷卡记录表看是否存在与之同卡编号的记录,如果存在,则输出’有出勤,没有旷课’,否则,输出‘该学生没有来上课’的信息。

Createorreplacetriggertest

Beforeinsert

Onsk

Declareisexistnumber;

Begin

Selectcount(*)intoisexistfromskrecordwhere

:

new.kid=skrecord.kid;

If(isexist>0)then

Dbms_output.put_line(‘有出勤,没有旷课’);

Else

Dbms_output.put_line(‘这同学没有来上课’);

Endif;

End;

(7)创建视图

首先,创建学生表的视图

实现语句如下:

Createviewstudent_view

As

Select*fromstuent;

实现结果如下:

然后创建sk表的视图

实现语句如下:

Createviewsk_view

As

Select*fromsk;

实现结果如下:

同理,创建skrecord的视图

执行结果如下:

(8)插入演示数据

Insertintostuentvalues(‘19890001’,’tom’,’m’,20,’计算机’,’计071’);

Insertintostuentvalues(‘19890002’,’lucy’,’f’,19,’电子商务’,’电子商务071’);

Insertintostuentvalues(‘19890003’,’lily’,’f’,19,’英语’,’英本072’);

Insertintostuentvalues(‘19890004’,’john’,’m’,21,’网络工程’,’网络072’);

执行结果如下:

对sk表插入如下演示数据:

Insertintoskvalues(seq_in.nextval,’0010’,’10-1月-2000’);

Insertintoskvalues(seq_in.nextval,’0011’,’8-3月-2008’);

Insertintoskvalues(seq_in.nextval,’0012’,’11-5月-2008’);

Insertintoskvalues(seq_in.nextval,’0013’,’17-9月-2009’);

执行结果如下:

对skrecord表插入如下的演示数据:

Insertintoskrecordvalues(seq_in2.nextval,’0010’,’19890001’,

’7-9月-20098:

30:

20’);

Insertintoskrecordvalues(seq_in2.nextval,’0012’,’19890003’,

‘7-10月-200910:

20:

30’);

执行结果如下:

(9)数据库性能分析

学校执行刷卡机制可以较好的管理学生的考勤,通过查看刷卡记录表,领导可以比较直观的查看学生的到课情况,这样就可以减少学生考勤的统计工作,但是我觉得刷卡机制也有不足的地方,如果有的学生忘记了刷卡,那么,刷卡记录表中就不存在这条记录,就会认为他没有来上课,从而会产生错误。

要实行刷卡机制的前提,就是学校必须严格执行“一个一卡,学生刷卡进出”的制度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1