墙裂推荐(基于java图书管理系统)基于javaweb的图书馆管理系统,基于Java+Mysql实现的PC端图书管理系统软件【100010031】,用java开发pc端软件,
Library_system
图书管理系统。用Java实现的PC端软件。使用MySql作为DBMS操作本地数据库,用JDBC连接Java和数据库。实现图书管理系统的基本功能
项目介绍
该项目主要实现了图书管理系统几个主要的基本功能,做这小项目是为了简单学习数据库设计、包括ER图,关系模式,范式,完整性约束,安全性,视图等等。
学习简单SQL语言、学习使用JDBC对Java和数据库的连接等等
功能模块图
完整E-R图

关系模型
学生表( 学号,学生姓名,性别,年龄,学院)
图书表 (图书编号,图书名,图书总数,可借数目)

图书管理员(管理员编号,管理员姓名,性别,年龄)

学生借还信息表(学号,图书编号,管理员编号,借书时间,归还时间,借书数目)

学生登录信息表(学号(作为账号),密码)

管理员登录信息表(管理员编号(作为账号),密码)

zjz_Student( Sno,Sname,Ssex,Sage,Scollege,Sno→Sname,Sno→Ssex, Sno→Sage, Sno→Scollege)
学生表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
zjz_Book(Bno,Bname,BAllcount,Blendcount,Bno→Bname, Bno→BAllcount, Bno→Blendcount)
图书表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
zjz_Admin(Ano,Aname,Asex,Aage,Ano→Aname, Ano→Asex, Ano→Aage)
图书管理员表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
zjz_BS(Sno,Bno,Ano,BSlendtime,BSbacktime,BScount,(Sno,Bno,Ano,BSlendtime,BSbacktime) →BScount)
学生借还信息表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
zjz_Student_login(Sno,Spass,Sno→Spass)
学生登录信息表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
zjz_Admin_login(Ano,Apass,Ano→Apass);
管理员登录信息表所有的非主属性完全依赖于码,没有主属性部分或传递依赖于码,所以属于BCNF。
视图
学生已借图书(学生名和图书名)视图
View_StudentBookName(zjz_Student.Sname,zjz_Book.Bname,zjz_Admin.Aname, BSlendtime,BSbacktime,BScount)

安全性(用户类别和权限)设计和实现说明
登录或注册的时候用一个专门用于登录注册的数据库用户(account_library),用于查看或者更新学生登录信息表和管理员登录信息表,还有查看学生表。用于检验用户是否能登录成功,或创建用户。
学生登录信息表和管理员登录信息表用于保存所有的账户和密码。
有两个数据库用户(student_library,admin_library)分别用于学生和图书管理员用户登录后,用于连接数据库。
学生使用student用户,只拥有查看学生表、图书表、借书还书记录表的权限。
管理员使用admin用户拥有查看管理员表、学生表、图书表、借书还书记录表的权限,还有更新借书还书记录表的权限。
完整性(主、外码和用户自定义的完整性约束)设计和实现说明。
MySql使用触发器完成用户自定义的完整性约束
1、学生表( 学号,学生姓名,性别,年龄,学院)主码为学号,学生的年龄大于0,性别为男或女,姓名不为空2、图书表 (图书编号,图书名,图书总数,可借数目)主码为图书编号,图书总数大于0 可借数目大于等于0,可借数目小于等于可借总数,图书名不为空
3、图书管理员表(管理员编号,管理员姓名,性别,年龄)主码为图书管理员编号,管理员年龄大于0,性别为男或女,姓名不为空
4、学生借还信息表(学号,图书编号,管理员编号,借书时间,归还时间,借书数目)
主码为学号,图书编号,管理员编号,借书时间,归还时间,学号是外码,参照学生表,图书编号是外码,参照图书表,管理员编号是外码,参照图书管理员表。借书数目>05、学生登录信息表(学号(作为账号),密码)主码为学号,学号为外码,参照学生表
6、管理员登录信息表(管理员编号(作为账号),密码)主码为管理员编号,管理员编号为外码,参照管理员编号
♻️ 资源
大小: 148KB
➡️ 资源下载:
本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据