收藏 分销(赏)

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

上传人:w****g 文档编号:2227321 上传时间:2024-05-23 格式:DOC 页数:16 大小:170.04KB 下载积分:8 金币
下载 相关 举报
学生考勤管理系统数据库设计.doc_第1页
第1页 / 共16页
学生考勤管理系统数据库设计.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
学生考勤管理系统数据库设计 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 16 个人收集整理 勿做商业用途 考勤管理系统数据库设计 数据库设计是指对于一个给定的应用环境,构造设计优化的数据库逻辑模式和物理结构,并据此建立数据库以及应用环境,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。 数据库的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。数据库设计的一个特点是“三分技术,七分管理,十二分基础数据”。 数据库设计的基本步骤如下: (1) 需求分析 (2) 概念结构设计 (3) 数据库逻辑设计 (4) 数据库物理设计 (5) 数据库实施 (6) 数据库运行和维护 一. 数据库需求分析 设计这个系统的主要目的就是实现学生的考勤管理的规范化。 数据库的需求分析阶段是整个数据库设计过程中的基础,也是耗时就多,最困难的一步.需求分析的任务就是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确 定新系统的功能。这个阶段的工作成果主要以下三个方面的内容: (1)数据项:每种具体数据的名称、意义、类型、取值范围以及与其他数据项之间的逻辑关系。 (2)数据集:若干数据项的有逻辑关联的集合,包括名称、意义和组成数据集的数据项. (3)数据流:应用系统运行时,数据是怎么输入、处理和输出。 二.数据库概念结构设计 局部e-r图设计 (1)学生信息表的e-r图 (2)刷卡表的e-r图 刷卡 (3)刷卡记录表的e—r图 全局e-r图如下: 三. 数据库逻辑结构设计 数据库逻辑设计主要是将概念结构设计转换为某个dbms所支持的数据模型设计出 刷卡表结构如下: 学生信息表结构如下: 刷卡记录表结构如下: 四。数据库物理结构设计 物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构,将逻辑结构设计中的表用sql语句创建出来。 (1)创建表空间 (2)创建新用户 (3)给新用户授权 (4)以新用户的身份登入,创建表 首先创建学生表,实现语句如下: Create table stuent ( Sno varchar2(8) not null primary key, Sname varchar2(20) not null, Sex varchar2(2) not null, Sage number(2) , Speciality varchar2(16), Banji varchar2(12) ) Tablespace zhuzhu; 执行结果如下: 然后,创建刷卡表 实现语句如下: Create table sk ( Skid number(4) not null, Kid number(4) not null primary key, Zctime date ) Tablespace zhuzhu; 执行结果如下: 接着,再创建刷卡记录表 实现语句如下: Create table skrecord ( Skid number(4) not null, Kid number(4) not null, Sno varchar2(8) not null primary key, Sktime timestamp ) Tablespace zhuzhu; 最后,建立各个表之间的约束 实现语句: Alter table skrecord Add (constraint sk_kid_fk foreign key(kid) references sk(kid) Constraint skrecord_sno foreign key(sno) references stuent(sno) ); (5)创建一个序列实现刷卡编号的自动增长 Create sequence seq_in Increment by 1 Start with 1 Nomaxvalue; Create sequence seq_in2 Increment by 1 Start with 1 Nomaxvalue; (6)创建触发器 只要学生一刷卡,就会在sk表中插入一条记录,此时查找刷卡记录表看是否存在与之同卡编号的记录,如果存在,则输出’有出勤,没有旷课’,否则,输出‘该学生没有来上课’的信息。 Create or replace trigger test Before insert On sk Declare isexist number; Begin Select count(*) into isexist from skrecord where :new。kid=skrecord.kid; If (isexist>0) then Dbms_output.put_line(‘有出勤,没有旷课'); Else Dbms_output。put_line(‘这同学没有来上课’); End if; End; (7)创建视图 首先,创建学生表的视图 实现语句如下: Create view student_view As Select * from stuent; 实现结果如下: 然后创建sk表的视图 实现语句如下: Create view sk_view As Select * from sk; 实现结果如下: 同理,创建skrecord的视图 执行结果如下: (8)插入演示数据 Insert into stuent values(‘19890001',’tom’,’m',20,’计算机','计071’); Insert into stuent values(‘19890002’,’lucy’,'f’,19,'电子商务’,’电子商务071’); Insert into stuent values(‘19890003’,’lily',’f’,19,'英语’,’英本072'); Insert into stuent values(‘19890004’,'john’,'m’,21,’网络工程’,’网络072'); 执行结果如下: 对sk表插入如下演示数据: Insert into sk values(seq_in.nextval,'0010','10—1月-2000'); Insert into sk values(seq_in。nextval,’0011’,'8—3月-2008’); Insert into sk values(seq_in。nextval,'0012’,’11-5月—2008'); Insert into sk values(seq_in.nextval,’0013’,'17-9月-2009’); 执行结果如下: 对skrecord表插入如下的演示数据: Insert into skrecord values(seq_in2。nextval,’0010’,’19890001’, ’7-9月-2009 8:30:20’); Insert into skrecord values(seq_in2.nextval,'0012’,’19890003’, ‘7-10月-2009 10:20:30'); 执行结果如下: (9)数据库性能分析 学校执行刷卡机制可以较好的管理学生的考勤,通过查看刷卡记录表,领导可以比较直观的查看学生的到课情况,这样就可以减少学生考勤的统计工作,但是我觉得刷卡机制也有不足的地方,如果有的学生忘记了刷卡,那么,刷卡记录表中就不存在这条记录,就会认为他没有来上课,从而会产生错误。要实行刷卡机制的前提,就是学校必须严格执行“一个一卡,学生刷卡进出”的制度。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服