图书管理系统数据库设计-MYSQL实现.doc

上传人:ng****60 文档编号:2116600 上传时间:2019-04-29 格式:DOC 页数:21 大小:551.94KB
下载 相关 举报
图书管理系统数据库设计-MYSQL实现.doc_第1页
第1页 / 共21页
图书管理系统数据库设计-MYSQL实现.doc_第2页
第2页 / 共21页
图书管理系统数据库设计-MYSQL实现.doc_第3页
第3页 / 共21页
图书管理系统数据库设计-MYSQL实现.doc_第4页
第4页 / 共21页
图书管理系统数据库设计-MYSQL实现.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、1图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。一个 设计良好的 图书管理系统数据库能够给图书管理带来很大的便利。2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同 时也可以 查阅自己的借阅信息。2.当学生需要借阅书籍时,通 过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借 阅的书籍是否还有剩余,同时更新学生个人的借阅信息。3.学生借阅图书之前需要将自己的个人信息注册,登陆时对 照学生信息。4.学生直接归还图书,根据图书编码 修改借阅信息5.管理员登陆管理系统后,可以修改 图书信息,增

2、加或者 删 除图书信息6.管理员可以注销学生信息。通过需求定义,画出图书管理系 统的数据流图:2数据流图学 生 查 询图 书 信 息登 陆 借 阅学 生 信 息 借 阅 信 息归 还借 阅 信 息学 生注 册学 生 信 息学 生学 生管 理 员 登 陆管 理 员 信 息图 书 管 理学 生 管 理图 书 信 息学 生 信 息管 理 员3二、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍。系统功能模块图:图 书 管 理 系 统借 阅 者 模 块 管 理 员 模 块 访 问 模 块查询图书借阅图书归还图书查询图书修改图书信息增加/删除图书查询借阅信息注册个人信息查询借阅信息删除学生

3、信息管理员登陆借阅者登陆三、数据库设计 方案图表1、系统 E-R 模型总体 E-R 图:学 生借 阅图 书 管 理 员管 理4精细化的局部 E-R 图:学生借阅-归还 E-R 图:学 生学 生 ID 年 级 年 龄性 别专 业诚 信 级借 阅图 书图 书 ID书 名 出 版 社 分 类 数 量作 者登 记 日 期图 书 借 阅 表学 生 ID图 书 ID归 还学 生 ID图 书 ID归 还 时 间借 阅 时 间图 书 归 还 表处 罚 表图 书 ID学 生 ID 超 期 处 罚 金 额管理员 E-R 图:管 理 员ID号姓 名 年 龄所 属 单 位联 系 电 话管 理 管 理学 生 图 书 属

4、 于 图 书 类 别类 别 编 号 类 别 名 称52、设计表给出设计的表名、结构以及表上 设计的完整性约束。student:列名 数据类型 是否为空/性质 说明stu_id int not null /PK 标明学生唯一学号stu_name varchar not null 学生姓名stu_sex varchar not null 学生性别stu_age int not null 学生年龄stu_pro varchar not null 学生专业stu_grade varchar not null 学生年级stu_integrity int not null/default=1 学生诚信级b

5、ook:列名 数据类型 是否为空/性质 说明book_id int not null / PK 唯一书籍序号book_name varchar not null 书籍名称book_author varchar not null 书籍作者book_pub varchar not null 书籍出版社book_num int not null 书籍是否在架上book_sort varchar not null 书籍分类book_record datatime null 书籍登记日期book_sort:列名 数据类型 是否为空/性质 说明sort_id varchar not null / PK 类

6、型编号sort_name varchar not null 类型名称borrow:存储学生的借书信息列名 数据类型 是否为空/性质 说明student_id varchar not null / PK 学生编号book_id varchar not null / PK 书籍编号borrow_date datatime null 借书时间expect_return_date datetime null 预期归还时间return_table:存 储学生的归还信息列名 数据类型 是否为空/性质 说明student_id varchar not null / PK 学生编号book_id varcha

7、r not null / PK 书籍编号borrow_date datetime null 借书时间return_date datatime null 实际还书时间ticket:存 储学生的 罚单信息列名 数据类型 是否为空/性质 说明student_id varchar not null / PK 学生编号6book_id varchar not null / PK 书籍编号over_date int null 超期天数ticket_fee float null 处罚金额manager:列名 数据类型 是否为空/性质 说明manager_id varchar not null / PK 管理

8、员编号manager_name varchar not null 管理员姓名manager_age varchar not null 管理员年龄manager_phone varchar not null 管理员电话3、设计索引给出在各表上建立的索引以及使用的语句。student:1.为 stu_id 创建索引,升序排序sql:create index index_id on student(stu_id asc);2.为 stu_name 创建索引,并且降序排序sql:alter table student add index index_name(stu_name, desc);插入索引操

9、作和结果如下所示:mysql create index index_id on student(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql alter table student add index index_name(stu_name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysqlbook:1.为 book_id 创 建索引,升序排列sql:create index index_b

10、id on book(book_id);2.为 book_record 创建索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on book(book_record);插入索引的操作和结果如下所示:mysql create index index_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 07mysql create index index_brecord on book(book_record);Query OK, 0

11、 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为 stu_id 和 book_id 创建多列索引:sql:create index index_sid_bid on borrow(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid on borrow(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0retur

12、n_table:1.为 stu_id 和 book_id 创建多列索引:sql:create index index_sid_bid on return_table(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid_r on return_table(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为 stu_id 和 book_id 创建多列索引:sql:

13、create index index_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid on ticket(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0manager:81.为 manager_id 创建索引:sql:create index index_mid on manager(manager_id);插入索引的操作和结果如下所示:

14、mysql create index index_mid on manager(manager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句。1.在表 student 上创建计算机专业(cs) 学生的视图 stu_cs:sql: create view stu_cs asselect *from studentwhere pro = cs;操作和结果:mysql create view stu_cs asselect *from studentwhere stu

15、_pro = cs;Query OK, 0 rows affected2. 在表 student, borrow 和 book 上创建借书者的全面信息视图 stu_borrow:sql: create view stu_borrow asselect student.stu_id, book.book_id, student.stu_name, book.book_name, borrow_date,adddate(borrow_date,30) expect_return_datefrom student, book, borrowwhere student.stu_id = borrow.

16、stu_id and book.book_id = borrow.book_id;操作和结果:mysql create view stu_borrow asselect student.stu_id, book.book_id, student.stu_name, book.book_name, borrow_date,adddate(borrow_date,30) expect_return_datefrom student, book, borrowwhere student.stu_id = borrow.stu_id and book.book_id = borrow.book_id;

17、9Query OK, 0 rows affected3.创建类别 1 的所有图书的视图 cs_book:sql: create view cs_book asselect *from bookwhere book.book_sort in(select book_sort.sort.namefrom book_sortwhere sort_id = 1);操作和结果显示:mysql create view cs_book asselect *from bookwhere book.book_sort in(select book_sort.sort_namefrom book_sortwher

18、e sort_id = 1);Query OK, 0 rows affected4.创建个人所有借书归还纪录视图 stu_borrow_return:sql:create view stu_borrow_return asselect student.stu_id, student.stu_name, book.book_id, book.book_name,return_table.borrow_date,return_table.return_datefrom student, book, return_tablewhere student.stu_id = return_table.st

19、u_id and book.book_id = return_table.book_id;105、设计触发器给出在各表上建立的触发器以及使用的语句。1.设计触发器 borrow, 当某学生借书成功后,图书表相应的图书不在架上,变为 0:sql:create trigger borrowafter insert on borrow for each rowbeginupdate book set book_num = book_num 1 where book_id = new.book_id;end操作与结果显示:mysql delimiter $mysql create trigger tr

20、igger_borrow- after insert on borrow- for each row- begin- update book set book_num = book_num - 1- where book_id = new.book_id;- end- $Query OK, 0 rows affected在插入表 borrow 之前, book_id = 1 的图书还在架上,为 1:学生 1 借了这本书后,在 borrow 中插入了一条记录:在 borrow 中插入 这条记录后,book_id =1 的图书,不在架上,为 0:2.设计触发器 trigger_return, 还书成功后,对应的书籍 book_num 变为 1:sql:create trigger trigger_returnafter insert on return_table for each rowbeginupdate book set book_num = book_num + 1 where book_id = new.book_id;end

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。