欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    高校图书管理系统的设计与实现(共18页).docx

    • 资源ID:14276920       资源大小:45.03KB        全文页数:18页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    高校图书管理系统的设计与实现(共18页).docx

    精选优质文档-倾情为你奉上高校图书管理系统的设计与实现一、项目功能随着计算机的广泛运用,图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息、还书信息。因此需要对读者资源、书籍资源、借书信息等进行管理,及时了解各个环节中信息的变更。图书管理系统的主要功能是实现图书管图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:借书管理、归还管理,还有一些基本的辅助功能:用户管理、图书管理、统计查询。二、 需求分析:1. 学生的身份信息及借阅情况(1) 借阅者(读者)的身份信息:读者号、姓名、性别等。(2) 这些信息保存在图书馆读者数据库,读者可以凭借自己的读者号(借书证号)及密码登录图书馆管理系统进行个人资料的修改和借阅情况的查询。一般只能查询本人的信息,在不知道他人读者号及密码的情况下,就能有效保护读者个人隐私。2. 图书信息及被借阅情况(1)图书信息包括:书号、书名、作者、出版社等。(2)每本图书信息会汇总在一起,保存在图书馆的图书数据库,读者可以在登陆图书馆管理系统后根据需要进行图书的搜寻与查询,在得到满意的查询结果后,再去图书馆进行借阅。而对于每本被借出的书,管理系统又会将相应的读者号、借出日期和应还日期保存在数据库中,供读者查询和系统管理。3. 图书馆系统管理员身份信息及工作情况(1)图书馆系统管理员身份信息包括:管理员号、姓名、性别等。(2) 这些数据保存在图书馆管理员数据库中,图书管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除、修改、图书借阅者的基本信息。具体模块如下:学生模块:学生模块个人信息修改查询图书信息借阅图书管理员模块:管理员模块个人信息修改添加图书信息修改图书信息学生信息管理图书借阅登记三、数据库设计1、概念结构设计实体“图书”的属性有:书号,书名,出版社,类别,数量实体“学生”的属性有:学号,姓名,性别,班级,密码 实体“管理员”的属性有:工作号,姓名,性别,密码E-R如下: “图书”E-R图:图书类别书名书号数量出版社“读者”E-R图:学生性别姓名密码学号“管理员”E-R图:管理员密码姓名工作号性别总E-R图:密码姓名性别工作号管理员新密码mm旧密码学生管理图书管理班级N借书时间N出版社MN借阅图书类别书号书名学号学生姓名性别密码还书时间2、逻辑结构设计图书(书号,书名,出版社,类别,数量)学生(学号,姓名,性别,班级,密码)管理员(工作号,姓名,性别,密码)图书类别(书号,书名,类别)借阅(学号,书号,学生姓名,书名,借书时间,还书时间)学生管理(管理员工作号,学号,学生姓名,学生旧密码,学生新密码)3、物理结构设计(1)book表(图书信息表)列名数据类型长度约束说明_idInt10主键not null书号b_nameVarchar20not null书名b_pubVarchar20not null 出版社Sort_idInt12外键not null类别编号b_numberInt5not null数量(2)student表(学生信息表)列名数据类型长度约束说明S_idInt12主键not null学号S_nameVarchar20not null姓名S_sexChar2not null性别S_classVarchar20not null班级S_pwdVarchar20not null密码(3)manager表(管理员信息表)列名数据类型长度约束说明M_idInt12主键not null工作号M_nameVarchar20not null姓名M_sexChar2not null性别M_pwdVarchar20not null密码(4)Sort(图书类别表)列名数据类型长度约束说明Sort_idInt12主键not null类别编号Sort_nameVarcher20not null类别名称B_idint10Not null书号(5)borrow(借阅信息表)列名数据类型长度约束说明S_idInt12主键not null学号B_idInt10主键not null书号S_nameVarchar20not null学生姓名B_nameVarchar20not null书名Borrowtimedatetimenot null借书时间returntimedatetimenot null还书时间(6)student_manager(学生管理表)列名数据类型长度约束说明M_idInt12主键not null管理员工作号S_idInt12主键not null学生学号S_nameVarchar20not null学生姓名S_pwd_oldVarchar20not null学生旧密码S_pwd_newVarchar20Not null学生新密码四、数据库的实现1、数据库数据库名对象定义SQL语句说明bookstorecreate database library;创建名为library的数据库2、表表名对象定义SQL语句说明bookcreate table book(b_id int(10) not null,b_name varchar(20) not null,b_pub varchar(20) not null,sort_id int(12) not null,b_number int(5) not null,primary key(b_id);alter table bookadd constraint fk_boforeign key(sort_id ) references sort(sort_id )on update cascadeon delete cascade;1. 创建book(图书信息表)2. 并添加名为fk_bo的外键约束,b_sort为此表的外键,参照sort表中的sort_id字段studentcreate table student(s_id int(12) not null,s_name varchar(20) not null,s_sex char(2) not null,s_class varchar(20) not null,s_pwd varchar(20) not null,primary key(s_id);创建student(学生信息表)managercreate table manager(m_id int(12) not null,m_name varchar(20) not null,m_sex char(2) not null,m_pwd varchar(20) not null,primary key(m_id);创建manager(管理员信息表)Sortcreate table sort(sort_id int(12) not null,sort_name varchar(20) not null,b_id int(10) not null,primary key(sort_id);创建sort(图书类别表)borrowcreate table borrow(s_id int(12) not null,b_id int(10) not null,s_name varchar(20) not null,b_name varchar(20) not null,borrow_time datetime not null,return_time datetime not null,primary key(s_id,b_id);alter table borrowadd constraint fk_stuforeign key(s_id) references student(s_id)on update cascadeon delete cascade;alter table borrowadd constraint fk_bookforeign key(b_id) references book(b_id)on update cascadeon delete cascade;1. 创建borrow(借阅信息表)2. 并添加名为fk_stu和fk_book的外键约束,其中s_id和b_id作为此表的外键,参照student表中的s_id和book表中的b_id字段student_managercreate table student_manager(m_id int(12) not null,s_id int(12) not null,s_name varchar(20) not null,s_pwd_old varchar(20) not null,s_pwd_new varchar(20) not null,primary key(m_id,s_id);alter table student_manageradd constraint fk_stu_manforeign key(s_id) references student(s_id)on update cascadeon delete cascade;alter table student_manageradd constraint fk_manforeign key(m_id) references manager(m_id)on update cascadeon delete cascade;1. 创建Student_manager(学生管理表),当管理员修改学生密码时,将学生的新密码以及旧密码存入此表中2. 并添加名为fk_stu_man和fk_man的外键,其中s_id和m_id为此表的外键,参照student表中的s_id和manager表中的m_id字段3、操作表中的数据操作类型数据操作SQL语句说明插入数据insert into book values('1001','数据库原理','清华大学出版社','01','50');insert into book values('1005','大学语文','北京大学出版社','05','45');insert into book values('1002','巴黎圣母院' ,'译林出版社','02','20');insert into book values('1003','大话物联网','清华大学出版社','01','20'); insert into student values('10001','张三','男','网络工程1班','1234');insert into student values('10002','章艳','女','网络工程(软件开发)1班','2345');insert into student values('10003','李四',' 男','园林1班','2222');insert into manager values('101','张小丽','女','6666');insert into manager values('102','王五','男','7777');insert into manager values('103','杨静','女','2222');insert into sort values('01','计算机类','1001');insert into sort values('02','外国文学类','1002');insert into sort values('05','中文教材类','1005'); insert into borrow values('10001','1001','张三','数据库原理','2019-09-16 12:03:03','2019-11-11 12:11:11');insert into borrow values('10001','1005','张三','大学语文','2019-11-11 11:11:11','2019-12-12 12:12:12');insert into borrow values('10002','1002','章艳','巴黎圣母院','2019-11-12 11:11:11','2019-12-13 13:13:13');分别向各个表中插入数据修改数据update book set b_number='20' where b_id='1003'update student set s_pwd='11111' where s_id='10003'update manager set m_pwd='1111' where m_id='103'1. 将book表中书号为1003的书籍的数量修改为202. 将student表中学号为10003的学生的密码修改为111113. 将manager中编号为103的管理员的密码修改为1111删除数据delete from book where b_id='1003'delete from manager where m_id='103'1. 删除book表中书号为1003的书籍信息2. 删除manager中编号为103 的管理员信息查询数据select * from book;select * from student where s_name='章艳'select * from manager where m_id='101'1. 查询book表中的所有信息2. 查询student表中名为章艳的学生信息3. 查询manager中编号为101的管理员信息4、视图视图名对象定义SQL语句说明book_view1create view book_view1 as select * from book;select * from book_view1;1. 在book表上建立一个查询书籍信息的视图book_view12. 验证:查询视图Book_view2create view book_view2as select book.b_id,b_name,sort_name,book.sort_idfrom book,sortwhere book.sort_id=sort.sort_id;select * from book_view2;1. 在book表和book_sort表上建立一个名为book_view2的视图,视图保留书籍的书号,书名,类别以及类别编号2. 验证:查看视图stu_view1create view stu_view1as select s_id,s_sex,s_class from studentwhere s_sex='女'select * from stu_view1;1. 在student表上创建一个名为stu_view1的视图,视图 中保留性别为女的学生的学号,性别,班级2. 验证:查看视图5、索引索引名对象定义SQL语句说明in_b_namecreate unique index in_b_name on book(b_name);为book表上b_name列建立一个唯一性索引in_b_namein_s_classcreate index in_s_class on student(s_class asc);为student表上s_class列建立一个普通升序索引6、存储过程存储过程名对象定义SQL语句说明proc_book1delimiter /create procedure proc_book1()beginselect * from bookwhere b_name like '数据库%' order by b_id;end/delimiter ;call proc_book1();1. 创建存储过程proc_book1从book表中查询出名字中含有“数据库”的图书信息2. 验证:调用存储过程proc_book1()proc_book2delimiter /create procedure proc_book2(in bookid int(10)beginselect * from book where b_id=bookid;end/delimiter ;call proc_book2('1001');1. 创建存储过程proc_book2,输入书号后,查询出此书籍的基本信息2. 验证:调用存储过程proc_book2(1001)7、存储函数存储函数名对象定义SQL语句说明func_stu1delimiter /create function func_stu1(st_id int(12)returns varchar(20)begin return (select s_name from student where s_id=st_id);end/delimiter ;select func_stu1('10001');1. 创建一个存储函数func_stu1,返回表student中指定学号的学生信息2. 验证:调用函数func_stu1(10001)8、触发器触发器名对象定义SQL语句说明sor_updatedelimiter /create trigger sor_update after updateon sort for each rowbegin update book set sort_id=new.sort_idwhere sort_id=old.sort_id;end/delimiter ;update sort set sort_id='06' where sort_name='中文教材类'select * from book where sort_id='06'1. 创建一个触发器,当更改sort表中的某本书的类型编号时,同时对book表的类型编号也进行相应的更改2. 验证:将sort表中的中文教材类的编号修改为06,并观察book表是否也做出相应的改变tri_stu1insert into student values('10004','王晓华','女','园林2 班','88888');create table de_stu select s_id,s_name,s_sex from student where 1=0;create trigger tri_stu1 after delete on student for each row insert into de_stu (s_id,s_name,s_sex) values(old.s_id,old.s_name,old.s_sex);delete from student where s_id='10004'select * from de_stu;1. 在student表中插入一条记录2. 创建一个空表de_stu3. 创建一个触发器tri_stu1, 当一个学生的信息被删除时,将该学生的编号,姓名以及性别添加到表de_stu中4. 验证:删除刚插入的学生信息,并查询de_stu表中是否有该条记录9、事件事件名对象定义SQL语句说明event1set global.event_scheduler = true;create event event1 on schedule every 1 daydo create table borrow1 as select * from borrow;show tables;select * from borrow1;1. 开启事件调度器2. 创建每天执行的事件event1,创建一个borrow1表,要求每隔一天将borrow表中的信息存入到borrow1表中3. 验证:查看所有表,并查看borrow2表中的内容event2delimiter /create event event2 on schedule every 1 weekstarts curdate()+interval 1 weekends '2019-12-31 23:59:59' do begin truncate table borrow1;end/delimiter ;创建事件event2,要求从下周开始,每周都清空borrow1表,并且在2019年12月31日23:59:59结束10、事务(在存储过程中使用事务)存储过程名对象定义SQL语句说明de_man1()insert into manager values('103','杨静','女','2222');delimiter /set autocommit=0;create procedure de_man1()beginstart transaction;delete from manager where m_id='103'select * from manager where m_id='103'rollback;select * from manager where m_id='103'end/delimiter ;call de_man1();1. 插入工作号为103的管理员信息2. 删除工作号为103的管理员信息,然后回滚,其中创建de_man1存储过程3. 验证:调用存储过程de_man1(),查看结果up_man1()delimiter /create procedure up_man1()beginstart transaction;update manager set m_id='104' where m_name='杨静'commit;select * from manager where m_name='杨静'end/delimiter ;call up_man1();1. 将manager表中名为杨静的管理员的工作号改为104,并提交事务,创建名为up_man1的存储过程2. 验证:调用存储过程up_man1(),并查看结果11、数据库用户及权限分配用户名定义用户SQL语句权限分配SQL语句说明manager1create user 'manager1''localhost' identified by '123'grant all on borrow.* to 'manager1''loaclhost' ;创建一个名为manager1的管理员用户,密码为123,用户manager1对borrow表的所有数据持有所有权限Manager2create user 'manager2''localhost' identified by '456'grant all on student_manager.* to manager1localhost;创建一个名为manager2的用户,密码为456,将student_manager表上的所有权限授予manager212、备份与恢复操作类型对应操作的SQL语句说明备份mysqldump -u root -p library > d:/library_backup.sql备份数据库library中的所有表,将其备份到D:,备份文件名为library_backup.sql恢复Delete from borrow1;source d:/library_backup.sql;1. 删除borrow1表(在执行事件event1时所创建的表)的数据2. 用source命令恢复。mysql -u root -default-character-set=utf8 -p library<d:/library_backup.sql使用mysql命令将备份文件library_backup.sql恢复到数据库中五、体会:从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计,亲身体验了一会系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰,但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法,其中删除数据库无数次。我们学习并应用了MYSQL语言,掌握了数据库的创建、修改、删除等一系列操作,为了建立一个数据库管理系统,必须得经过需求分析、概念设计、逻辑设计、物理设计等一系列的过程,也是为毕业设计提前打下了基础。这次课程设计使我对所学的数据库知识有了更进一步的理解,更加系统化,理论化。今后,无论对待什么问题,我一定会充满自信的面对,学习更多的知识来充实自己,争取做得更好。设计者:姚春萌 上交时间:2020年1月3日专心-专注-专业

    注意事项

    本文(高校图书管理系统的设计与实现(共18页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开