图书管理系统数据库设计MYSQL实现.pdf
《图书管理系统数据库设计MYSQL实现.pdf》由会员分享,可在线阅读,更多相关《图书管理系统数据库设计MYSQL实现.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图书管理系统数据库设计 一、系统概述 1、系统简介 图书管理是每个图书馆都需要进行的工作;一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利;2、需求分析 图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息;2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息;3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息;4.学生直接归还图书,根据图书编码修改借阅信息 5.管理员登陆管理系统后,可以修改图书信息,增加或者删除
2、图书信息 6.管理员可以注销学生信息;通过需求定义,画出图书管理系统的数据流图:数据流图 二、系统功能设计 画出系统功能模块图并用文字对各功能模块进行详细介绍;系统功能模块图:三、数据库设计方案图表 1、系统 E-R 模型 总体 E-R 图:精细化的局部 E-R 图:学生借阅-归还 E-R 图:管理员 E-R 图:2、设计表 给出设计的表名、结构以及表上设计的完整性约束;student:列名 数据类型 是否为空/性质 说明 stu_id int not null/PK 标明学生唯一学号 stu_name varchar not null 学生姓名 stu_sex varchar not nul
3、l 学生性别 stu_age int not null 学生年龄 stu_pro varchar not null 学生专业 stu_grade varchar not null 学生年级 stu_integrity int not null/default=1 学生诚信级 book:列名 数据类型 是否为空/性质 说明 book_id int not null/PK 唯一书籍序号 book_name varchar not null 书籍名称 book_author varchar not null 书籍作者 book_pub varchar not null 书籍出版社 book_num
4、int not null 书籍是否在架上 book_sort varchar not null 书籍分类 book_record datatime null 书籍登记日期 book_sort:列名 数据类型 是否为空/性质 说明 sort_id varchar not null/PK 类型编号 sort_name varchar not null 类型名称 borrow:存储学生的借书信息 列名 数据类型 是否为空/性质 说明 student_id varchar not null/PK 学生编号 book_id varchar not null/PK 书籍编号 borrow_date dat
5、atime null 借书时间 expect_return_date datetime null 预期归还时间 return_table:存储学生的归还信息 列名 数据类型 是否为空/性质 说明 student_id varchar not null/PK 学生编号 book_id varchar not null/PK 书籍编号 borrow_date datetime null 借书时间 return_date datatime null 实际还书时间 ticket:存储学生的罚单信息 列名 数据类型 是否为空/性质 说明 student_id varchar not null/PK 学生
6、编号 book_id varchar not null/PK 书籍编号 over_date int null 超期天数 ticket_fee float null 处罚金额 manager:列名 数据类型 是否为空/性质 说明 manager_id varchar not null/PK 管理员编号 manager_name varchar not null 管理员姓名 manager_age varchar not null 管理员年龄 manager_phone varchar not null 管理员电话 3、设计索引 给出在各表上建立的索引以及使用的语句;student:1.为 stu
7、_id 创建索引,升序排序 sql:create index index_id on studentstu_id asc;2.为 stu_name 创建索引,并且降序排序 sql:alter table student add index index_namestu_name,desc;插入索引操作和结果如下所示:mysql create index index_id on studentstu_id asc;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 mysql alter table student add inde
8、x index_namestu_name desc;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 mysql book:1.为 book_id 创建索引,升序排列 sql:create index index_bid on bookbook_id;2.为 book_record 创建索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on bookbook_record;插入索引的操作和结果如下所示:mysql create index index_bid on boo
9、kbook_id;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 mysql create index index_brecord on bookbook_record;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 borrow:1.为 stu_id 和 book_id 创建多列索引:sql:create index index_sid_bid on borrowstu_id asc,book_id asc;插入索引的操作和结果如下所示:mysql cr
10、eate index index_sid_bid on borrowstu_id asc,book_id asc;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 return_table:1.为 stu_id 和 book_id 创建多列索引:sql:create index index_sid_bid on return_tablestu_id asc,book_id asc;插入索引的操作和结果如下所示:mysql create index index_sid_bid_r on return_tablestu_id as
11、c,book_id asc;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 ticket:1.为 stu_id 和 book_id 创建多列索引:sql:create index index_sid_bid on ticketstu_id asc,book_id asc;插入索引的操作和结果如下所示:mysql create index index_sid_bid on ticketstu_id asc,book_id asc;Query OK,0 rows affected Records:0 Duplicates:0 W
12、arnings:0 manager:1.为 manager_id 创建索引:sql:create index index_mid on managermanager_id;插入索引的操作和结果如下所示:mysql create index index_mid on managermanager_id;Query OK,0 rows affected Records:0 Duplicates:0 Warnings:0 4、设计视图 给出在各表上建立的视图以及使用的语句;1.在表 student 上创建计算机专业 cs 学生的视图 stu_cs:sql:create view stu_cs as
13、select from student where pro=cs;操作和结果:mysql create view stu_cs as select from student where stu_pro=cs;Query OK,0 rows affected 2.在表 student,borrow 和 book 上创建借书者的全面信息视图 stu_borrow:sql:create view stu_borrow as select student.stu_id,book.book_id,student.stu_name,book.book_name,borrow_date,adddatebor
14、row_date,30 expect_return_date from student,book,borrow where student.stu_id=borrow.stu_id and book.book_id=borrow.book_id;操作和结果:mysql create view stu_borrow as select student.stu_id,book.book_id,student.stu_name,book.book_name,borrow_date,adddateborrow_date,30 expect_return_date from student,book,b
15、orrow where student.stu_id=borrow.stu_id and book.book_id=borrow.book_id;Query OK,0 rows affected 3.创建类别 1 的所有图书的视图 cs_book:sql:create view cs_book as select from book where book.book_sort in from book_sort where sort_id=1;操作和结果显示:mysql create view cs_book as select from book where book.book_sort in
16、 select book_sort.sort_name from book_sort where sort_id=1;Query OK,0 rows affected 4.创建个人所有借书归还纪录视图 stu_borrow_return:sql:create view stu_borrow_return as select student.stu_id,student.stu_name,book.book_id,book.book_name,return_table.borrow_date,return_table.return_date from student,book,return_ta
17、ble where student.stu_id=return_table.stu_id and book.book_id=return_table.book_id;5、设计触发器 给出在各表上建立的触发器以及使用的语句;1.设计触发器 borrow,当某学生借书成功后,图书表相应的图书不在架上,变为0:sql:create trigger borrow after insert on borrow for each row begin update book set book_num=book_num 1 where book_id=new.book_id;end 操作与结果显示:mysql
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 数据库 设计 MYSQL 实现
限制150内