数据库课程设计学生考勤.doc

上传人:小** 文档编号:16809944 上传时间:2020-10-27 格式:DOC 页数:16 大小:806.60KB
返回 下载 相关 举报
数据库课程设计学生考勤.doc_第1页
第1页 / 共16页
数据库课程设计学生考勤.doc_第2页
第2页 / 共16页
数据库课程设计学生考勤.doc_第3页
第3页 / 共16页
点击查看更多>>
资源描述
湖南文理学院数据库原理与应用报告 专业班级: 电信12101班 学生姓名: 学生学号: 指导教师: 刘长青 设计时间: 2015.1.4-2015.1.10 目录一、 需求分析1、 数据需求2、 数据流图3、 数据字典二、 概念结构设计三、 逻辑结构设计四、 物理结构设计五、 数据库的实施1、 创建数据库2、 数据表的维护与创建3、 数据库索引和视图4、 查询操作六、 数据库触发器的规划和设计七、 数据库的安全管理与维护八、结论学生考勤管理系统一、 需求分析为物电学院设计一个学生考勤管理系统,该系统主要实现对学生基本信息、教师基本信息、学生考勤等的管理,学生考勤管理系统功能需求包括:学生基本信息表,教师基本信息表,班级表,专业表,课程表,班主任表,请假信息表,上课出勤记录表。1、 数据需求:(1) 学生基本信息表:学号,姓名,性别,班级,专业,院系(2) 教师基本信息表:姓名,性别,编号(3) 班级表:班主任,名称,编号(4) 专业表:专业名称,编号(5) 课程表:课程号,课程名,课程性质(6) 班主任表:编号,姓名,性别(7) 请假信息表:编号,学号,原因,开始时间,结束时间,请假天数,申请请假时间,班主任审批状态,班主任审批时间(8) 上课出勤记录表:编号,上课时间,学号2、 数据流图:学生考勤学生信息课程教师请假信息表学号课程编号编号3、数据字典(1)数据项数据项:学号别名:学生编号含义说明:唯一标识每个学生类型:字符型长度:9位取值范围:000000000-999999999取值含义:前四位表示学年,第5,6,7位表示专业和班级,第8,9,表示学号(2)数据结构数据结构:学生含义说明:学生考勤管理系统子系统的主体结构数据,定义了一个学生的有关信息组成:学号、姓名、性别、班级、专业、电话号码(3)数据流数据流名:请假信息表说明:学生请假信息及相关课程数据流来源:学生基本信息表,教师基本信息表、课程信息表数据流去向:请假学生、课程、组成:请假原因+学生学号+请假时间平均流量:500条/年高峰流量:50/天(4)数据存储数据存储:学生基本信息表说明:记录学生的基本信息写文件的处理:新生入学报到后从学院新生登记表中获取信息输入流出数据流:为请假信息表提供学生基本信息组成:学号、姓名、性别、班级、专业、手机号码、数据量:平均每年2000条存取方式:随机存取二、概念结构设计E-R模型:学生学号姓名性别专业班级院系专业班级班主任属于管理请假考勤课程授课教师假条课程号课程名课程性质姓名性别编号编号学号原因编号专业名称编号名称班主任编号姓名性别1属于111nnnnnnmm电话电话电话三、逻辑结构设计1、学生表student字段名数据类型可否为空键引用备注stu_nochar(10)否主键学生学号stu_namevarchar(30)否学生姓名stu_sexchar(2)否性别stu_classchar(13)否外键所属班级stu_majorchar(30)否外键所属专业Stu_tellvarchar(20)否电话号码2、专业表major字段名数据类型可否为空键引用备注major_idnumber否主键专业编号major_namechar(20)否专业名称3、教师表teacher字段名数据类型可否为空键引用备注tea_nochar(10)否主键任课老师编号tea_namechar(20)否任课老师姓名tea_sexchar(2)否性别tea_tellVarchar(20)否电话号码4、班主任表classteacher字段名数据类型可否为空键引用备注classtea_nochar(5)否主键任课老师编号classtea_namechar(20)否任课老师姓名classtea_sexchar(2)否性别classtea_majornumber否外键所属专业classtea_tellVarchar(20)否电话号码5、学生上课出勤记录表kaoqin_record字段名数据类型可否为空键引用备注kaoqin_idchar(13)否主键上课出勤编号sk_timedate否上课时间stu_numberchar(10)否外键学生学号stu_statuschar(10)否学生上课考勤状态teacher_nochar(10)否外键教师编号course_nochar(13)否外键课程编号6、课程信息表course字段名数据类型可否为空键引用备注course_nochar(13)否主键课程编号course_namechar(20)否课程名称course_xzchar(4)否课程性质7、班级表classes字段名数据类型可否为空键引用备注class_nochar(10)否主键课程编号class_namechar(20)否课程名称classtea_nochar(5)否外键课程性质8、请假信息表qingjia字段名数据类型可否为空键引用备注idnumber否主键请假代号class_idchar(10)否外键班级代号stu_novarchar2 (20)否外键学生学号leave_reasonvarchar2 (200)否请假原因start_timedate否开始时间end_timedate否结束时间day_numbernumber否请假天数qingjia_timedate否申请请假时间class_tea_idchar(5)否外键class_tea_sp_statuschar(10)否班主任审批状态class_tea_sp_timedate否班主任审批时间备注:status 表示审批状态:0为等待审批,1为同意请假,2为不同意请假。四、物理结构设计确定数据库的物理结构整个数据库包括八个表,每个表都有不同的联接关系,还有创建的视图也将表联系起来。 存取途径:索引存取方法 (1)按学生所在班级建立索引,可提高查询速度。 (2)查询常用到的字段(学生学号、学生姓名、课程编号、教师姓名),可创建索引。五、数据库的实施1、 创建数据库CREATE DATABASE studentkaoqin ON PRIMARY ( NAME = Nstudentkaoqin, FILENAME = NE:fsfsqlstudentkaoqin.mdf ) ( NAME = Nstudentkaoqin_log, FILENAME = NE:fsfsqlstudentkaoqin_log.ldf)2、 数据表的创建和维护(1) 表的创建- 专业表major create table major(major_id int not null,major_name char(10) not null,constraint pk_major primary key (major_id)- 教师表teachercreate table teacher(tea_no char(10) not null,tea_name char(20) not null,tea_sex char(2) check (tea_sex=男 or tea_sex=女), tea_tell varchar(20) not null,constraint pk_teacher primary key (tea_no)- 班级表classescreate table classes(class_no char(10) primary key,class_name char(20) not null,)- 学生表studentcreate table student(stu_no char(10) not null,stu_name varchar(30) not null,stu_sex char(2) check (stu_sex=男 or stu_sex=女), stu_tell varchar(20) not null,stu_class char(10) references classes(class_no),stu_major int references major(major_id),constraint pk_student primary key(stu_no)- 课程信息表coursecreate table course(course_no char(13) primary key,course_name char(20) not null,course_xz char(4) not null)- 学生上课出勤记录表kaoqin_recordcreate table kaoqin_record(kaoqin_id char(13) primary key not null,sk_time datetime not null,stu_number char(10) references student(stu_no),stu_status char(10) not null,teacher_no char(10) references teacher(tea_no),course_no char(13) references course(course_no)- 请假信息表qingjiacreate table qingjia(id int primary key,class_id char(10) references classes(class_no),stu_no char(10) references student(stu_no),leave_reason varchar(200) not null,start_time datetime not null,end_time datetime not null,day_number int not null,qingjia_time datetime not null,class_tea_id char(5) references classteacher(classtea_no),class_tea_sp_status char(10),class_tea_sp_time datetime,)- 班主任表classteachercreate table classteacher( classtea_no char(5) not null,classtea_name char(20) not null,classtea_sex char(2) check (classtea_sex=男 or classtea_sex=女 )classtea_tell varchar(20) not null,classtea_major int references major(major_id),constraint pk_classteacher primary key (classtea_no)(2)添加约束手机号码的限制alter table studentadd constraint ck_telphone1check(Telphone like 0-90-90-90-90-90-90-90-90-90-90-9)alter table classteacheradd constraint ck_telphone2 check(Telphone like 0-90-90-90-90-90-90-90-90-90-90-9)alter table teacheradd constraint ck_telphone2 check(Telphone like 0-90-90-90-90-90-90-90-90-90-90-9)(3)添加内容-1、学生表student 添加内容insert into student values(201210101, 黄小明,男,2012101,1,18244889098)insert into student values(201210102, 张乐, 男,2012101,1,18244787991)insert into student values(201220101, 刘丹, 男,2012201,2,18299238952)insert into student values(201220102, 程冬冬,男,2012201,2,19829742194)insert into student values(201230101, 胡雪露,男,2012301,3,18294919791)insert into student values(201230102, 张亮, 男,2012301,3,18997824741) -2、班主任表classteacher 添加内容insert into classteacher values(01, 刘敏, 女, 1,12882492124)insert into classteacher values(02, 刘圆圆,女, 1,12421412444)insert into classteacher values(03, 刘峰, 女, 2,21325252255)insert into classteacher values(04, 胡学达,女, 2,18224124144)-3、课程表course 添加内容insert into course values(01, 单片机原理及应用, 考试)insert into course values(02, 大学物理, 考试)insert into course values(03, 数据库原理及应用, 考察)insert into course values(04, 模拟电子技术, 考试)insert into course values(05, 高等数学, 考试)insert into course values(06, 大学英语, 考试)insert into course values(07, 大学体育, 考察)-4、考勤记录表kaoqin_record 添加内容insert into kaoqin_record values(01, 2015/1/8 8:00, 201210101, 缺课, 01 ,01)insert into kaoqin_record values(02, 2015/1/9 14:30, 201220102, 请假, 06 ,02)insert into kaoqin_record values(03, 2015/1/9 14:30, 201230101, 缺课, 04 ,05)insert into kaoqin_record values(04, 2015/1/10 9:00, 201230102, 缺课, 05 ,03)insert into kaoqin_record values(05, 2015/1/10 14:30, 201210102, 请假, 05 ,03)insert into kaoqin_record values(06, 2015/1/11 7:00, 201220101, 缺课, 02 ,06)-5、专业表major 添加内容insert into major values(1, 电子信息)insert into major values(2, 光电技术)insert into major values(3, 物理)-6、请假表qingjia 添加内容insert into qingjia values(1, 2012201, 201220102, 生病, 2015/1/8 0:00, 2015/1/10 0:00, 3,2015/1/7 0:00, 01 ,1, 2015/1/8 0:00,)insert into qingjia values(2, 2012101, 201210102, 考驾照, 2015/1/10 0:00, 2015/1/11 0:00, 1,2015/1/9 0:00, 02 ,1, 2015/1/9 0:00,)insert into qingjia values(3, 2012201, 201220101, 兼职, 2015/1/11 7:00, 2015/1/11 18:00, 1,2015/1/10 0:00, 04 ,2, 2015/1/10 0:00,)-7、班级表classes 添加内容insert into classes values(2012101, 电信)insert into classes values(2012201, 光电)insert into classes values(2012301, 物理)-8、教师表teacher 添加内容insert into teacher values(01, 刘大磊, 男, 18299890982)insert into teacher values(02, 赵霞, 男, 18242121414)insert into teacher values(03, 张天, 男, 18424244244)insert into teacher values(04, 张雪艳, 女, 18298948335)insert into teacher values(05, 刘涛, 女, 18985325222)insert into teacher values(06, 陈龙, 男, 13972985211)3、 数据库索引和视图(1) 创建索引-为表student 和teacher 中的Telphone 字段创建一个唯一索引PK_telphonecreate unique index unq_ stu_tell 1 ON student(stu_tell)create unique index unq_ tea_tell 2 ON teacher(tea_tell)-为表course中的course_no字段创建升序的聚集索引create clustered index clu_ course_no on student(course_no)(2) 创建视图学生考勤视图:CREATE VIEW dbo.考勤ASSELECT dbo.student.stu_name AS 学生姓名,dbo.kaoqin_record.stu_status AS 考勤状态, dbo.course.course_name AS 课程名, dbo.kaoqin_record.sk_time AS 上课时间, dbo.teacher.tea_name AS 教师姓名, dbo.teacher.tea_tel AS 教师电话FROM student,kaoqin_record, course,teacher 请假视图:CREATE VIEW dbo.请假ASSELECT dbo.classes.class_name AS 班级, dbo.student.stu_name AS 学生, dbo.qingjia.leave_reason AS 请假原因, dbo.qingjia.day_number AS 请假天数, dbo.classteacher.classtea_name AS 班主任, dbo.qingjia.class_tea_sp_status AS 审批状态FROM dbo.classes, dbo.classteacher , dbo.student , dbo.qingjia4、查询操作(1)基本查询-1查询student表中所有学生的全部信息SELECT * from student(2) 条件查询-1、查询电信班,男学生 select * from student where stu_sex=男 and stu_class=2012101(3) 排序查询- 查询考试的课程并按降序排列SELECT course_no,course_name,course_xz FROM courseWHERE course_xz=考试ORDER BY course_no DESC(4) 筛选和分组查询-查询请假天数小于2天的学生学号SELECT stu_no,day_number FROM qingjiaGROUP BY stu_no,day_numberHAVING day_number2(5) 联结查询-查询学生专业SELECT DISTINCT student.* ,major.*FROM student,majorWHERE student.stu_major=major.major_id(6) 嵌套查询-查询电信专业的学生SELECT stu_name FROM studentWHERE stu_major =1六、数据库触发器的规划和设计-为数据表qingjia创建一个触发器qingjia_t1,实现在更新操作中禁止修改请假天数CREATE TRIGGER qinjia_t1 on qingjiafor updateas if update(day_number)beginprint 请假天数不允许修改!ROLLBACK TRANSACTIONEND七、数据库的安全管理与维护-创建stu_admin 登录账号,密码为123,默认数据库为student_kaoqincreate login stu_adminwith password=123, default_database=student_kaoqin-在student_kaoqin数据库中为登录账号stu_admin 创建用户账号,并取名为U_1create user U_1 for login stu_admin-将kaoqin 的查询权限授予用户U_1grant select on kaoqin_recordto U_1八、 结论两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。这次实习证实提供了一个很好的机会。 通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。总之,这次课程设计使我收获很多、学会很多、比以往更有耐心很多。感谢学校及老师给我们这次课程设计的机会,最真挚的感谢我们的刘长青老师 ,在设计过程中,老师精心的辅导和不厌其烦地的态度才使得我们以顺利的完成这次设计,他那无私的奉献的精神照耀着我们对学习的热爱,同时也增加我们对知识的追求和欲望度。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人力资源


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!