1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据库课程设计-图书馆管理系统(2.数据库实现-基于mysql)

数据库课程设计-图书馆管理系统(2.数据库实现-基于mysql)

时间:2022-07-14 00:29:06

相关推荐

数据库课程设计-图书馆管理系统(2.数据库实现-基于mysql)

如果对你有帮助,可以给卑微的博主留个赞、关注、收藏 (不是)

(骗一下数据,说不定以后面试就过了,拜谢)

数据库选用mysql 8.0.25 64位, 配合使用navicat

mysql可以在主页下载安装包,或者网上自己搜索

数据库安装配置可以参考网上的教程,有很多人都做了教程,例如这篇博文Mysql8.0.17压缩包安装——超详细简单教程_singular港的博客-CSDN博客

navicat的安装可参考这篇博文

Navicat16安装教程-图文详解_victor_王泽华的博客-CSDN博客

目录

1. 新建数据库 (模式)

2. 基本表的创建

3. 视图的创建

4. 完整性的创建

5. 触发器创建

6. 存储过程的创建

7. 索引创建

8. 数据库权限管理

9. 备份与恢复策略

安装好navicat和mysql后

先启动mysql服务,然后使用navicat进行连接,连接成功后点击新建查询

1. 新建数据库 (模式)

例如创建数据库名字叫library_db ,之后我们新建的表、存储过程等内容都属于这个数据库(模式)

create database library_db;use library_db;

2. 基本表的创建

3. 视图的创建

4. 完整性的创建

(主键、外键、check、非空、唯一、用户定义完整性、自增)

5. 触发器创建

6. 存储过程的创建

7. 索引创建

mysql创建表时默认引擎InnoDB,如果表有主键,会建立主键聚集索引,如果一个字段有unique约束,会建立unique索引,如果一个字段有外键约束,会建立外键索引。在此基础上我们只多建立一个索引,books表的book_name字段建立非聚集索引。

create index book_name_index on books(book_name);

给books表的book_name创建非聚集索引,其他索引由数据库引擎创建

完成后各表上的索引如下

各字段解析如下

8. 数据库权限管理

使用严格的权限管理,只有允许的操作才能进行;有三类用户使用数据库,创建reader,manager,sys_manager。每个用户只授权某些函数的执行,不允许修改,也不允许权限传递,更不能直接接触到表,这样保证数据库的安全性和独立性(只通过函数接口访问)。

除了这三个用户外,实现时还使用一个checker用户,这个用户负责在我们没有登录成功前,连接数据库进行用户检查,检查通过后,建立用户连接进行数据库操作(reader/manager/sys_manager), 同时checker连接释放,另外读者用户注册也需要checker帮助传递读者信息到数据库完成注册,manager的注册有sys_manager负责验证。

各用户授予权限如下

(关于创建用户和授权可以参考以下代码

CREATE USER 'checker'@'localhost' IDENTIFIED BY 'checkerpassword';#其他类似

...................

grant execute on procedure library_db.insert_opinion to 'reader'@'localhost';

........................)

(也可以使用navicat图形化的方式创建,百度一下)

9. 备份与恢复策略(可不做,但是做了的话比较完善)

采取海量+增量的方式备份数据。 每周进行一次海量备份,两次海量备份之间采用增量备份方式。由于mysql不直接提供增量备份方式,故采用日志记录的方式来实现增量备份。

备份流程如下:

1.在配置文件开启二进制日志功能,设置日志地址(根据),服务id 如图

注:backup 文件夹需要自己创建、mysql-bin是日志文件的命名方式,不用创建,结合下图看看

2.先进行海量备份如

mysqldump -u root -p -R library_db> C:\Users\Administrator\Desktop\library_db.sql

或者使用navicat图形化进行备份

3.之后mysql会记录执行日志,保存到我们指定的地址,命名是mysql-bin.00000x 这样我们就可以通过海量备份加日志的方式恢复数据。(从mysql-bin.000001开始计数)

示例恢复如下:

1.先恢复海量备份

mysql -u root -p < C:\Users\Administrator\Desktop\library_db.sql

2.再利用日志逐个循环恢复增量备份 (到日志目录文件夹下执行恢复命令)

mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p+密码

(如mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p123456)

mysqlbinlog --no-defaults mysql-bin.000002| mysql -uroot -p+密码

.........

实际运行时备份方式采用navicat创建一个批处理作业,指定执行全量备份,然后重置日志,(从000001开始计数),执行时间为每周日凌晨2点 ,设置如下图

注:每次进行恢复后,需要重新对存储过程进行授权

至此数据库实现完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。