图书管理系统数据库设计MYSQL实现
数据库课程设计——图书管理系统

借阅管理模块
实现图书的借阅、归还和 续借功能,记录借阅历史 和当前借阅状态。
系统管理模块
实现用户管理、权限管理 、日志管理等功能,保障 系统的安全性和稳定性。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code、MySQL Workbench
运行环境
Windows 10、MySQL 5.7
息。
借阅数据
包括借阅编号、读者 编号、图书编号、借 阅日期、归还日期等
信息。
系统用户数据
包括用户编号、用户 名、密码、角色和权
限等信息。
性能需求
响应时间
01
系统响应时间应小于2秒。
并发用户数
02
系统应支持至少100个并发用户。
数据备份与恢复
03
系统应具备定期自动备份和手动备份功能,同时能够在需要时
数据库课程设计— —图书管理系统
2024-01-09
目录
• 引言 • 系统需求分析 • 系统设计 • 系统实现 • 系统测试与优化 • 课程设计总结与展望
01
引言
课程设计目的
01 掌握数据库设计的基本步骤和方法
通过课程设计,使学生熟悉数据库设计的流程, 包括需求分析、概念设计、逻辑设计、物理设计 等阶段,并掌握各个阶段的主要任务和方法。
模块实现
图书管理模块
实现图书的录入、修改、删除等功能 ,提供对图书信息的全面管理。
借阅管理模块
实现图书的借阅、归还等功能,记录 借阅历史,方便管理员和读者查看。
读者管理模块
实现读者的注册、登录、个人信息管 理等功能,提供对读者信息的全面管 理。
系统管理模块
实现用户权限管理、系统日志查看等 功能,保障系统的安全性和稳定性。
图书管理系统数据库设计说明书

图书管理系统数据库设计说明书图书管理系统数据库设计说明书1、引言本文档旨在对图书管理系统的数据库设计进行详细说明,包括数据库架构、表结构设计、数据流图等内容,以便于系统开发人员进行系统开发和维护。
2、数据库架构设计2.1 数据库类型本系统将采用关系型数据库,具体使用的数据库管理系统为MySQL。
2.2 数据库服务器架构本系统将采用分布式数据库架构,包括一个主数据库服务器和多个副本数据库服务器。
2.3 数据库服务器部署主数据库服务器和副本数据库服务器将部署在不同的物理机器上,以实现数据的冗余备份和负载均衡。
3、数据库表设计3.1 用户表(User)字段:用户ID、用户名、密码、姓名、年龄、性别、联系方式、电子邮箱、注册时间3.2 图书表(Book)字段:图书ID、图书名称、作者、出版社、出版日期、图书类别、价格、库存数量3.3 图书借阅表(Borrow)字段:借阅ID、用户ID、图书ID、借阅日期、归还日期、借阅状态3.4 图书类别表(Category)字段:类别ID、类别名称、类别描述3.5 出版社表(Publisher)字段:出版社ID、出版社名称、联系方式、地质4、数据流图设计4.1 用户注册流程图描述用户注册过程,包括用户输入信息、系统验证信息、保存用户信息等流程。
4.2 用户借阅图书流程图描述用户借阅图书的过程,包括用户查找图书、用户借阅图书、系统更新库存数量等流程。
4.3 用户归还图书流程图描述用户归还图书的过程,包括用户查找借阅记录、用户归还图书、系统更新借阅状态等流程。
5、附件本文档附带的相关附件包括:- 数据库表结构设计文档- 数据流图设计文档- ER图设计文档6、法律名词及注释本文档涉及的法律名词及其注释如下:- 数据库管理系统(Database Management System,简称DBMS):是一种管理和整理数据库的软件系统。
- 关系型数据库(Relational Database):是一种基于关系模型的数据库,采用表格来组织和管理数据。
图书管理系统数据库设计-MYSQL实现

图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。
一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。
2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。
2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。
3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。
4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息。
通过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计三、数据库设计方案图表1、系统E-R模型总体E-R图:管理员E-R图:给出设计的表名、结构以及表上设计的完整性约束。
student:book:book_sort:borrow:存储学生的借书信息return_table:存储学生的归还信息ticket:存储学生的罚单信息manager: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);插入索引操作和结果如下所示: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: 0mysql>book:1.为book_id创建索引,升序排列sql:create index index_bid 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: 0mysql> create index index_brecord on book(book_record);Query OK, 0 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: 0return_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 onreturn_table(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为stu_id和book_id创建多列索引:sql: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:1.为manager_id创建索引:sql:create index index_mid on manager(manager_id);插入索引的操作和结果如下所示:mysql> create index index_mid on manager(manager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句。
图书管理系统数据库设计

图书管理系统数据库设计1. 引言图书管理系统是一个用于管理图书馆馆藏图书的软件系统。
它提供了图书的借阅、归还、查询等功能,方便读者进行图书借阅和图书馆管理员进行图书管理。
本文档将介绍图书管理系统的数据库设计。
通过组织图书、读者、借阅记录等相关数据,实现图书管理系统的各项功能。
2. 数据库设计2.1 数据库结构图书管理系统的数据库主要包含以下几个表:•图书表(books):存储图书的基本信息,如图书编号、名称、作者、出版社等。
•读者表(readers):存储读者的基本信息,如读者编号、姓名、性别、年龄等。
•借阅记录表(borrow_records):存储图书的借阅记录,包括借阅编号、借阅日期、归还日期、读者编号等。
2.2 数据库字段2.2.1 图书表(books)•book_id:图书编号,主键•book_name:图书名称•author:作者•publisher:出版社•publication_date:出版日期•price:价格2.2.2 读者表(readers)•reader_id:读者编号,主键•reader_name:读者姓名•gender:性别•age:年龄•phone:联系电话2.2.3 借阅记录表(borrow_records)•record_id:借阅记录编号,主键•book_id:借阅图书编号,外键•reader_id:借阅读者编号,外键•borrow_date:借阅日期•return_date:归还日期2.3 数据库关系•图书表与读者表之间是多对多的关系,通过借阅记录表进行关联。
•图书表与借阅记录表是一对多的关系,一个图书可以对应多条借阅记录。
•读者表与借阅记录表也是一对多的关系,一个读者可以借阅多本图书。
2.4 数据库约束•图书编号(book_id)在图书表中是唯一的,不能重复。
•读者编号(reader_id)在读者表中是唯一的,不能重复。
•借阅记录编号(record_id)在借阅记录表中是唯一的,不能重复。
mysql(图书管理系统实验报告)

数据库课程设计报告专业:微电子技术系班级:2940710820姓名:指导教师:成绩:2011年12月12日一、课程设计概述1.课程设计背景某大学图书馆开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,罚款处理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库.2.编写目的让学生熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统,来实际演练,达到融会贯通的效果。
3.软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet 上得中小型网站中,它由mysql AB公司开发、发布并支持。
本实验用的是mysql 5.1版本4.开发环境本实验用的是mysql 5.1版本,windows2007二、需求分析1.问题的提出1:怎么通过mysql和信息之间的关系来创建图书管理系统的数据库及表?2:怎样来实现对插入读者信息并保存、修改及删除?3:怎么来实现对图书的管理?4:怎样实现对借书后在读书借还处添加读者借书信息和还书后删除读者借还处中的借书信息且更新图书管理处的图书数量?5:怎么实现对超期读者进行罚款操作和生成这些读者的名单,以方便通知?6:怎样实现图书的借书排行榜和查看库存书量?7:怎么样来根据不同用户对数据库的等级的不同来设置这些用户的权限?2.需要完成的功能及各部分功能概述1:读者登记建卡处的功能是对读者基本信息进行登记,读者信息发生变化对读者基本信息进行修改,读者要求退还借书卡时对读者信息进行删除等操作2:图书管理处的功能是对图书和出版社、作者、书价,数量,剩余书量进行管理更新。
数字化图书馆管理系统设计与实现

数字化图书馆管理系统设计与实现随着科技的快速发展,传统的图书馆管理方式已经无法满足现代社会对图书馆的需求。
为了提高图书馆的管理效率和用户体验,数字化图书馆管理系统应运而生。
本文将介绍数字化图书馆管理系统的设计与实现,并探讨其对图书馆管理的重要意义。
一、设计目标与需求分析数字化图书馆管理系统的设计目标是提供一套完整的解决方案,实现图书馆的各项管理工作。
首先,系统需要支持图书馆的图书管理,包括图书的入库、借阅、归还等功能。
同时,系统还应该提供搜索和查询功能,方便读者快速找到所需的图书信息。
此外,系统还需要支持读者管理、借阅管理、预约管理等功能,以及统计和报告等辅助管理功能。
在需求分析阶段,需要与图书馆管理人员和读者进行充分的沟通和交流,了解他们的需求和期望。
同时,要考虑系统的安全性和稳定性,包括防止数据泄露和系统故障等方面的设计。
二、系统架构设计数字化图书馆管理系统的架构设计是整个系统的基础。
系统应该采用分层的架构,分为用户界面层、应用层和数据存储层。
用户界面层是系统与用户之间的接口,应该设计简洁、易用的用户界面,方便读者和管理人员使用系统。
应用层是系统的核心部分,负责实现各项功能模块,包括图书管理、读者管理、借阅管理等。
数据存储层是系统的数据仓库,用于存储图书馆的各项数据,包括图书信息、读者信息、借阅记录等。
同时,系统应该采用模块化设计,将各个功能模块进行拆分,提高系统的可维护性和可扩展性。
通过模块化设计,可以方便后续对系统的功能进行升级和扩展。
三、核心功能实现1. 图书管理功能:该功能包括图书入库、图书分类、图书查询、图书借阅与归还等子功能。
图书管理员可以通过系统添加、修改和删除图书信息。
读者可以通过系统查询图书信息、预约图书并借阅。
2. 读者管理功能:该功能用于管理读者的信息和权限。
读者可以通过系统注册账号、修改个人信息、查询借阅记录等。
3. 借阅管理功能:该功能用于管理图书的借阅过程。
系统记录借阅信息和归还信息,并提供超期提醒和欠费管理等功能。
mysql数据库表设计案例

设计一个简单的MySQL数据库表,以存储用户的图书收藏信息为例:
表名: user_book_collection
字段:
1.id:主键,自增,用于唯一标识每条记录。
er_id:用户ID,外键,关联用户表。
3.book_title:图书标题,字符串类型,用于存储图书的名称。
4.author:作者,字符串类型,用于存储图书的作者姓名。
5.publication_date:出版日期,日期类型,用于存储图书的出版日期。
6.isbn:国际标准书号,字符串类型,用于存储图书的唯一标识码。
7.added_date:添加日期,日期时间类型,用于记录用户将图书添加到收藏的
时间。
索引:
1.主键索引:id字段。
2.外键索引:user_id字段,关联用户表。
3.联合索引:user_id和book_title字段,用于优化根据用户ID和图书标题
的查询性能。
示例SQL语句创建表:
这个表可以存储用户的图书收藏信息,包括每本图书的标题、作者、出版日期、ISBN号以及用户添加该图书到收藏的时间。
通过外键关联用户表,可以实现查询
某个用户的全部图书收藏。
同时,使用联合索引可以提高根据用户ID和图书标题查询的效率。
mysql数据库实操题

mysql数据库实操题MySQL数据库实操题通常涉及到数据库的创建、表的设计、数据的插入、查询和更新等方面。
以下是一个MySQL数据库实操题的示例:题目:假设你是一个图书馆管理员,需要创建一个数据库来管理图书馆的图书信息。
请按照以下要求完成数据库的设计和操作:1. 创建一个名为"library"的数据库。
2. 在该数据库中创建一个名为"books"的表,包含以下字段:book_id,图书编号,为整数类型,主键。
title,图书标题,为字符串类型。
author,图书作者,为字符串类型。
publication_year,图书出版年份,为整数类型。
quantity,图书数量,为整数类型。
3. 向"books"表中插入以下数据:book_id: 1, title: "Harry Potter and the Philosopher's Stone", author: "J.K. Rowling",publication_year: 1997, quantity: 5。
book_id: 2, title: "To Kill a Mockingbird", author: "Harper Lee", publication_year: 1960, quantity: 3。
book_id: 3, title: "1984", author: "George Orwell", publication_year: 1949, quantity: 2。
4. 查询"books"表中所有图书的信息。
5. 查询"books"表中所有作者为"J.K. Rowling"的图书信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作;一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利;2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息;2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息;3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息;4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息;通过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍; 系统功能模块图:三、数据库设计方案图表1、系统E-R模型总体E-R图:精细化的局部E-R图:学生借阅-归还E-R图:管理员E-R图:2、设计表给出设计的表名、结构以及表上设计的完整性约束; student:book:book_sort:borrow:存储学生的借书信息return_table:存储学生的归还信息ticket:存储学生的罚单信息manager:3、设计索引给出在各表上建立的索引以及使用的语句;student:1.为stu_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 affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> alter table student add index index_namestu_name desc; Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql>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 bookbook_id;Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql> create index index_brecord on bookbook_record;Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为stu_id和book_id创建多列索引:sql:create index index_sid_bid on borrowstu_id asc, book_id asc;插入索引的操作和结果如下所示:mysql> create index index_sid_bid on borrowstu_id asc, book_id asc;Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0return_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 asc, book_id asc;Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket: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 affectedRecords: 0 Duplicates: 0 Warnings: 0manager:1.为manager_id创建索引:sql:create index index_mid on managermanager_id;插入索引的操作和结果如下所示:mysql> create index index_mid on managermanager_id;Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 04、设计视图给出在各表上建立的视图以及使用的语句;1.在表student上创建计算机专业cs学生的视图stu_cs:sql: create view stu_cs asselectfrom studentwhere pro = ‘cs’;操作和结果:mysql> create view stu_cs asfrom studentwhere stu_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,adddateborrow_date,30 expect_return_date from student, book, borrowwhere student.stu_id = borrow.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,adddateborrow_date,30 expect_return_datefrom student, book, borrowwhere student.stu_id = borrow.stu_id and book.book_id = borrow.book_id;Query OK, 0 rows affected3.创建类别1的所有图书的视图cs_book:sql: create view cs_book asfrom bookwhere book.book_sort infrom book_sortwhere sort_id = 1;操作和结果显示:mysql> create view cs_book asselectfrom bookwhere book.book_sort inselect book_sort.sort_namefrom book_sortwhere 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_date from student, book, return_tablewhere student.stu_id = return_table.stu_id and book.book_id = return_table.book_id;5、设计触发器给出在各表上建立的触发器以及使用的语句;1.设计触发器borrow, 当某学生借书成功后,图书表相应的图书不在架上,变为0:sql:create trigger borrowafter insert on borrowfor each rowbeginupdate book set book_num = book_num – 1where book_id = new.book_id;end操作与结果显示:mysql> delimiter $$mysql> create trigger 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-> $$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_tablefor each rowbeginupdate book set book_num = book_num + 1where book_id = new.book_id;end还书时在return_table插入表项:此时图书归还架上:3.定义定时器事件eventJob,每天自动触发一次,扫描视图stu_borrow,若发现当前有预期归还时间小于当前时间,则判断为超期,生成处罚记录,这个定时器将每天定时触发存储过程proc_gen_ticket:sql:create event if not exists eventJobon schedule every 1 DAY /每天触发/on completion PRESERVEdo call proc_gen_ticketgetdate; /调用存储过程/set global event_scheduler = 1;alter event eventJob on completion preserve enable; /开启定时器/ 操作和结果显示:1. 学生1借了图书1,生成借书记录stu_borrow视图,如下:2. 当他在1月27日前还书时,没有生成罚单:3. 当他在1月27日后还书时,生成罚单:4.设计触发器trigger_credit,若处罚记录超过30条,则将这个学生的诚信级设置为0,下次不允许借书:sql:create trigger trigger_creditafter insert on ticketfor each rowbeginif select count from ticket where stu_id=new.stu_id>30 then update student set stu_integrity = 0 where stu_id = new.stu_id;end if;end操作和结果显示,测试时选择插入ticket项大于3,因为30太大了,不容易测试:学生1超过3次超期归还图书后,产生了4条罚单:此时触动触发器trigger_credit,将学生1的诚信级设置为0:四、应用程序设计与编码实现1、系统实现中存储函数和存储过程的设计要求给出功能描述和代码;1. 设计存储过程,产生罚单proc_gen_ticket:当日期超过预定归还日期时,产生罚单,并将记录写入表ticket中,这个存储过程在定时器eventJob中调用:sql:create procedure proc_gen_ticketin currentdate datetimeBEGINdeclare cur_date datetime;set cur_date = currentdate;replace into ticketstu_id, book_id, over_date, ticket_feeselect stu_id, book_id, datediffcur_date,stu_borrow.expect_return_date,0.1datediffcur_date ,stu_borrow.expect_return_datefrom stu_borrowwhere cur_date>stu_borrow.expect_return_date;end操作和结果显示:1. 学生1借了图书1,生成借书记录stu_borrow视图,如下:2. 当他在1月27日前还书时,没有生成罚单:3. 当他在1月27日后还书时,生成罚单:2.设计学生注册信息存储过程:学生注册信息stu_registersql:create procedure stu_registerin stu_id int, in stu_name varchar20, in stu_sex varchar20, in stu_age int, in stu_pro varchar20, in stu_grade varchar20begininsert into studentstu_id, stu_name, stu_sex, stu_age, stu_pro, stu_gradevaluesstu_id, stu_name, stu_sex, stu_age, stu_pro, stu_grade;end3. 设计管理员注册信息存储过程:ma_registersql:create procedure ma_registerin ma_id int, in ma_name varchar20, in ma_age int, in ma_phone intBEGINinsert into managervaluesma_id, ma_name, ma_age, ma_phone;END4. 借书过程的实现:1)设计存储函数,func_get_credit,返回学生的诚信级:create function func_get_creditstu_id int returns intreturnselect stu_integrity from student where student.stu_id = stu_id;end2)设计存储函数,func_get_booknum,返回书籍是否在架上:create function func_get_booknumbook_id int returns intbeginreturnselect book_num from book where book.book_id = book_id;end3)设计存储过程proc_borrow,调用func_get_credit和func_get_booknum,判断这个学生诚信度和书籍是否在架上,若为真,则借书成功,在borrrow 表中插入纪录;否则提示失败:create procedure proc_borrowin stu_id int, in book_id int, in borrow_date datetimebeginif func_get_creditstu_id = 1 and func_get_booknumbook_id =1 theninsert into borrowvaluesstu_id, book_id, borrow_date;elseselect 'failed to borrow';end if;实验操作与结果显示:borrow纪录为空:执行函数,学生1借图书2:call proc_borrow1,2,now;学生1的诚信级为0:借书失败:修改学生1诚信级为1:此时借书成功:5. 还书存储过程proc_return:当还书时,查看是否书是否超期,即查询ticket表项,当发现超期,提示交罚单后再次还书,如没有超期,则纪录归还项目到return_table中,并且删除借书纪录以免还书后定时器仍然扫描这个纪录:sql:create procedure proc_returnin stu_id int, in book_id int, in return_date datetimebeginDECLARE borrowdate datetime;if select payoff from ticket where ticket.stu_id = stu_id and ticket.book_id=book_id = 1 then /判断是否交了罚单,1表示没有交/ select 'please pay off the ticket';else /纪录归还项目到return_table中,并且删除借书纪录/set borrowdate = select borrow_date from borrow where borrow.stu_id = stu_id and borrow.book_id = book_id;insert into return_tablevaluesstu_id, book_id, borrowdate, return_date;delete from borrowwhere borrow.stu_id = stu_id and borrow.book_id = book_id;end if;end实验操作与结果显示:学生1借了图书2:超期产生了罚单,没有交罚单,payoff=1:此时调用还书过程:call proc_return1, 2, now;提示交罚单:交罚单,调用proc_payoff:call proc_payoff1, 2;交罚单成功,payoff = 0;此时再次调用还书过程:call proc_return1, 2, now;还书成功,在return_table生成了还书纪录:6. 交罚单存储过程:修改罚单中payoff段为0,表明罚单已交:create procedure proc_payoffin stuid int, in bookid intbeginupdate ticketset payoff = 0where ticket.stu_id = stuid and ticket.book_id = bookid;select ‘succeed’;end交罚单,调用proc_payoff:call proc_payoff1, 2;交罚单成功,payoff = 0;2、功能实现按各功能模块进行描述;要求:画出流程图并给出实现代码;创建学生统一账户,账户名:student_account,并且授予权限:sql:create user 'student_account''localhost';grant insert,select on student to 'student_account''localhost';grant select on book to 'student_account''localhost';grant insert,select on borrow to 'student_account''localhost';grant insert,select on return_table to 'student_account''localhost';grant select on ticket to 'student_account''localhost';创建管理员统一账户,账户名:manager_account, 并且授予全部权限:sql:create user 'manager_account''localhost' identified by '123'; grant all on library_management to 'manager_account''localhost'; 查询图书信息按书名查找:select from book where book_name = ‘sql’;按作者查找:select from book where book_author = ‘author’;借书功能:proc_borrowin stu_id int, in book_id int, in borrow_date datetime如果要接的书还在架上,并且学生的诚信级为1,那么可以借书call proc_borrow1, 1, now;命令行操作:表borrow:视图stu_borrow:表book:还书功能:proc_returnin stu_id int, in book_id int, in return_date datetimecall proc_return1, 1, now;命令行操作:表return_table:表borrow:表book:交罚单功能:proc_payoffin stuid int, in bookid int call proc_payoff1,1;实验操作和结果见上节:“6. 交罚单存储过程“管理员添加图书:insert into bookvalues…;操作与结果:管理员删除图书:delete from bookwhere condition;管理员注销学生信息:delete from studentwhere condition;管理员恢复学生的诚信级:update studentset stu_integrity=1where condition;学生借书-归还流程图:管理员管理流程图:数据库设计结果:五、实习体会自己写。