学习笔记整理-数据库系统原理复习7-备份与还原、数据库与完整性、并发控制与数据库恢复


以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~


一、备份与还原数据库

1、mysql根据数据库运行状态可以分为:冷备份、温备份、热备份
①冷备份:是指在数据库停止的情况下进行备份,这种备份最为简单,一般只需要拷贝相关的数据库物理文件即可。
②温备份:是在数据库运行时进行,但是会对当前数据库的操作有所影响可执行读操作,不可执行写操作
③热备份:是指数据库运行中直接备份,对正在运行的数据库没有影响读写操作都可以
其中,myisam存储引擎不支持热备份,innodb存储引擎都支持,而目前,一般都是innodb默认存储引擎使用热备份。

2、物理备份和逻辑备份:
物理备份时直接复制数据文件进行备份,与存储引擎有关占较多的空间,速度快
逻辑备份时从数据库中导出数据另存的备份,与存储引擎无关,占用空间少,速度慢
逻辑备份主要有:完全备份、增量备份、表备份

3、导出或者导入表数据(只是数据,如果表的结构损坏必须要先恢复表结构)“
①导出:select * from table into outfile '文件名'
②导入:load data infile '文件名' into table 表名

4、备份数据:
①表的备份:mysqldump 数据库名 [表名...] > 备份的文件名
数据库备份:mysqldump databases 数据库名 > 备份的文件名 

5、还原恢复数据库:mysqldump程序备份的文件存储的时sql语句的集合,用户可以将这些语句还原到服务器中以恢复一个损坏的数据库。
a2e61f2ce3684d45a1ac3dd66fd97b15.png

 也可以使用mysqlimport恢复数据:提供了load data inflie语句a8f390a6f12b409fbf3859d8a7490868.png

也可以直接复制。 

二、数据库安全与完整性

1、数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一,一般来说对数据库的破坏主要来自于:
非法用户:利用权限机制
非法数据:利用完整性约束,防止非法数据进入数据库
多用户的并发访问:提供并发控制机制,控制多个用户对同以数据的并发操作,以保证多个用户并发访问的顺序进行
④各种故障:提供故障恢复能力,以保证各种故障发生之后,能将数据库中的数据从错误状态恢复到一致状态

2、数据安全性控制的一般方法:
用户标识和鉴定f3e53036131a4d40b7bd7c9cceadb729.png
用户存取权限控制:指的是不同的用户对于不同的数据对象允许执行的操作权限。在数据库中,定义用户存取权限称为授权,这些授权定义经过编译之后以一张授权表的形式存放在数据字典中。
6ae410ba48724c6aa2bc36c646caed96.png
③定义视图
数据加密:根据一定的算法将原始数据加密称为不能直接识别的格式,数据以密文的形式存储和传输。
审计:是一种监视措施,跟踪有关数据的访问活动。19b9f503c4f84b74a2138e54902f4b1c.png

 3、mysql的权限管理:
数据库的用户分为:
root用户是超级管理员有所有的权限
普通用户只能拥有创建用户时赋给它的权限
全局性的管理权限:作用于整个mysql实例级别。
数据库级别的权限:作用于某个数据库上或者所有数据库上。
数据库对象级别的权限:作用于指定的数据库对象上(表、视图)或者所有的数据库对象上。

 4、MySQL的控制权限表:
user表:存放用户账户信息以及全局级别(所有数据库)的权限决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限。
db表:存放数据库级别的权限,决定了哪些主机的哪些用户可以访问此数据库。
Tables_priv表存放表级别的权限,决定了哪些主机哪些用户可以访问数据库的这个表。
Columns_priv表存放列级别的权限,决定了~可以访问这个数据库的这个字段。
Procs_priv表:存放存储过程函数级别的权限。

5、用户:
①创建用户:create user 'username'@'host' identified by 'password';
mysql数据库的user表存储用户信息,可以通过insert语句向user表插入用户数据来创建用户。
但是需要flush privileges命令使用户生效。
②修改用户密码:alter user 'username'@'localhost' identified with mysql_native_password by '新密码';
③删除用户:drop user 'username'@'host';或 delete from user where user='username' and host='localhost'; flush privileges;

6、数据库完整性的含义:是指保护数据库中数据的正确性(数据的合法性)、有效性(是否属于所定义域的有效范围)、相容性(表示同一事实的两个数据应当一致),防止错误的数据进入数据库造成无效操作。防止合法用户使用数据库时向数据库加入不符合语义的数据。
0580429fd31d4c5181efc7a35152fe28.png

 7、完整性规则:
①D:代表约束作用的数据对象,可以是关系、元组、列三种对象。
②O:代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即执行还是延迟执行。
③A:表数据对象必须满足的语义约束,这是规则的主体
④C:代表选择A作用数据对象值的谓词
⑤P:代表违反完整性规则时触发执行的操作过程
59ea0ffbc01849e189de12f348376eff.png

 8、完整性约束条件的分类:
①值的约束7c58cfde1e7643c092425a1d8286d9bc.png
②结构约束0c3d08fa78314d4084135b9f57307a94.png

三、 并发控制与数据库恢复

 1、事务时数据库系统中执行的一个工作单位是由用户定义的一组操作。可以是一组/一条sql语句或者整个程序,一个应用程序可以包括多个事务。
定义事务:
①事务的开始:begin transaction
②事务的提交:commit
③事务的回滚:rollback

2、事务的特征:
①原子性②一致性③隔离性④持久性

3、并发控制概述:为了充分利用数据库资源,很多时候用户都是对数据库并行存取数据,因此会发生多个用户并发存取同一个数据块的情况。若并发操作不加以控制可能会产生不正确的数据,破坏数据的完整性。并发控制就是解决这个问题,保证数据库数据的一致性,任何时刻数据库都以相同的形式给用户提供数据

4、并发操作与数据的不一致性包括三种类型:
丢失更新:两个事务读入同一数据,并发执行修改时,可能会把某一方修改的结果覆盖,造成了数据丢失更新的问题,导致数据不一致。
污读:事务1更新数据r,事务2读取了更新后的数据r,事务1由于某种原因被撤销,修改无效,r恢复了原值,但是事务2还是修改后(没撤销之前)的数据
不可重读:事务1读取了数据r,事务2读取并且更新了数据r,当事务1再读取核对的时候,得到两次读取值不一致

5、实现并发控制的主要方法包括:封锁(Lock)、时间戳和乐观控制法,商业DBMS一般都是采用封锁方法。
封锁当一个事务在对某个数据对象(可以是数据项、记录、数据集以至整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的正确性和一致性。

 6、基本的封锁类型:
①排它型封锁(X锁):原理是禁止并发操作
②共享封锁(S锁):原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改

7、封锁协议:
①一级封锁协议:T在修改数据对象之前必须对其加X锁直到事务结束
②二级封锁协议:一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后释放S
③三级封锁协议:一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后并不释放S锁,而直到事务T结束才释放

8、封锁颗粒:
封锁粒度越小,系统中能够被封锁的对象就越,并发度越,但封锁机构复杂,系统开销也就越
封锁粒度越大,系统中能够被封锁的对象就越,并发度越,封锁机构越简单,相应系统开销也就越4b46b24000084986a601fcd9972963a9.png

 9、死锁和活锁:
①死锁:在同时处于等待状态的两个或多个事务中,其中的每一个在它能够进行之前,都等待着某个数据,而这个数据已被它们中的某个事务所封锁,这种状态称为死锁。
②活锁:当某个事务请求对某一数据进行排它性封锁时,由于其他事务对该数据的操作而使这个事务处于永久等待状态,这种状态称为活锁。

10、死锁条件:
①互斥②不可抢③部分分配④循环等待465b851e1cf1466fa0ea3c72df649eb8.png

11、数据库的恢复:系统必须具有检测故障并把错误状态恢复到某一正确状态的功能,这就是数据库的恢复。基本原理是利用存储在系统其他地方的冗余数据来恢复
数据转储是指定期地将整个数据库复制到多个存储设备(如磁带、磁盘)上保存起来的过程,它是数据库恢复中采用的基本手段
d46aaa5d3e644879923624c71840a8b9.png

 12、数据库的故障分:①事务故障②系统故障③介质故障和计算机病毒引起的故障 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aure_xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值