重庆交通大学数据库课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学
实验报告
专业:计算机科学与技术
班级:计科1502班
学号: 631507020209 姓名:郁超顺
组员:刘楷文、彭鑫、王文星
实验项目名称:高校教材管理系统
实验项目性质:设计性
实验室(中心): 801软件实验室
指导教师:蒋震
实验完成时间: 2018 年 1 月14 日
一、软件需求分析
1.1需求调查
开发教材管理系统的目的就是充分利用计算机和现代办公软件,摆脱传统办公工具,用计算机实现集中方便的管理工作,把学校教材科的工作人员从繁重的体力劳动中解脱出来以提高工作效率和质量,最终实现教材管理的全面自动化为和现代化。因此系统主要是实现教材管理信息的输入包括入库、出库、需求信息的输入等。教材管理各种信息的查询、修改以及各学院各教师的教材需求管理等。
1.2系统功能分析
1、供应商出版社表信息管理:主要是教材采购人员选择相应的供应商,由供应商联系出版社订购教材,可以直接把订购信息发给各个供应商和各个出版社,然后供应商把教材送到学校。
2、入库表信息管理:主要用于订单到货入库,学生退书等。用备注字段来具体标记入库信息。
3、出库表信息管理:主要用于发放教材,统计各个班级的各种教材发放数量。用备注字段来具体标记出库信息。
4、教材表信息管理:主要是查询教材,对教材的分类以及查看本教材是否是按照教学计划购买的。统计各种教材的库存信息,为发放教材做准备。
5、订购表信息管理:用于教材的订购,统计各个学科需要的教材,然后发给出版社。
6、角色权限管理:对于不同的用户赋予不同的角色,使用不同的功能来操纵表。从而达到对权限的控制。
二、功能模块设计及数据库设计
2.1功能模块设计
在教材管理系统中,最主要的功能就是进行一系列的查询和各类数据的管理。因此,可以将教材管理系统分为管理系统(有数据变化)和查询系统两个子系统。而在所设计的教材管理系统中,主要有三类用户,即普通学生,授课教师和教材管理员。各类用户在该系统中的需求不同,权限也不同。因此,为了更明确,更系统的了解用户需求,并且能更好的把握系统需求,我们还可以为用户分配权限,不同用户拥有不同的权限。
下面从细分后的不同用户的需求:
1、用户权限:职工用户在使用该系统时,首先必须通过账号和密码登录系统。因此,对密码的设置和修改是最基本的需求。不同的用户拥有不同的权限功能,对应不同的表的操作。用户的最主要的需求就是通过该系统进行操作相关表。
2、用户查询:学生用户在该系统中是最低级的用户,所以可以查询的数据也是有限的,主要是
自己掌管的表。
3、报送征订管理:授课教师选择课程书籍,订购本数报送至教材管理部门。
4、教材管理员管理:首先当然个人信息的维护。对于教务管理员来说,在职工由于种种原因而弄错数据时,教务管理员还有重新修改的需求。教务管理员还应该可以查询出版社信息,库存等各种职工可以看到的信息。最重要的还有对于书籍订购、出库入库的操作、修改库存等重要的权限操作。
5、系统管理员管理系统。作为系统管理员,是该系统中最高级的用户,因此该用户的需求相对比较的多。第一,进行教材的设置,教材的添加、删除、修改,查询。第二,对各职工管理,其中就包括职工,教材管理员的权限设置。最后,系统管理员管理系统还应该可以利用该系统进行用户的管理和维护,包括用户的添加、删除,修改等。
2.2数据库设计
概念模型
逻辑模型
物理模型
用户权限设置
数据字典
入库订单表
图书表
支持表
触发器
创建触发器:inkucun_in
作用:增加入库表记录后自动将记录增加到图书表中,保证库存的正确性DROP TRIGGER IF EXISTS inkucun_in;
CREATE TRIGGER inkucun_in
AFTER INSERT ON inkucun
FOR EACH ROW
BEGIN
UPDATE book
SET nums=nums+ru_num
WHERE book.ISBN=inkucun.ISBN;
END;
创建触发器:outkucun_out
作用:增加出库表记录后自动将记录增加到图书表中,保证库存的正确性DROP TRIGGER IF EXISTS outkucun_out;
CREATE TRIGGER outkucun_out
AFTER INSERT ON outkucun
FOR EACH ROW
BEGIN
IF outkucun.chu_num <= book.nums
THEN
UPDATE book
SET nums=nums-chu_num
WHERE book.ISBN=outkucun.ISBN;
END IF
END;
存储过程
创建存储过程:inorder_in
作用:填写入库信息
DROP PROCEDURE IF EXISTS inorder_in
CREATE PROCEDURE inorder_in(IN id INT)) BEGIN
DECLARE num INT DEFAULT 0;;
DECLARE time VARCHAR(50);
DECLARE sou VARCHAR(40);
DECLARE is VARCHAR(50);
SELECT og_num INTO num FROM orderget WHEN orderget.og_id = id;
SELECT date_format(now(), '%Y-%m-%d-%T') INTO time;
SELECT ISBN INTO is FROM orderget WHEN orderget.og_id = id;
SELECT distinct suplier.su_name INTO sou FROM suplier,orderget WHEN suplier.su_id = orderget.su_id;
INSERT INTO inkucun(ru_num,ru_time,ru_sou,ISBN) values(num,time,sou,is);
END;
创建存储过程:
作用:因退书填写入库信息
DROP PROCEDURE IF EXISTS tuishu
CREATE PROCEDURE tushu(IN n INT,IN is VARCHAR(50))
BEGIN
DECLARE time VARCHAR(50);
DECLARE is VARCHAR(50);
SELECT date_format(now(), '%Y-%m-%d-%T') INTO time;
INSERT INTO inkucun(ru_num,ru_time,ru_sou,ISBN) values(n,time,‘学生退书’,is);
END;
创建存储过程:wirteinorder
作用:填写入库订单
DROP PROCEDURE IF EXISTS wirteinorder
CREATE PROCEDURE wirteinorder(IN id INT,IN discount FLOAT))
BEGIN
DECLARE time VARCHAR(50);