数据库笔记(二)数据库的保护技术

本文深入探讨数据库的保护技术,包括安全性控制(用户标识、权限控制、视图机制、审计和数据加密)和完整性约束(键码、单值约束等)。重点讲解并发控制,详细阐述事务的ACID特性、并发不一致问题及其解决方案,如封锁协议、两段锁协议,并介绍了故障恢复的基本原理和策略,如日志文件和检查点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一.安全性

 数据库的安全性主要指保护数据库,防止不合法的使用,以免数据的泄露,更改和破坏。

 在计算机系统中,安全措施是以一级一级层层设置的,安全模型如下图:

安全性控制方法:

        1.1用户标识和鉴别

                    禁止未经授权的用户对数据库操作,可利用身份认证,口令认证的方式标识用户。

        1.2用户存取权限控制

                    不同类型的用户拥有不同的权限。

        1.3视图机制

                    存取权限的控制的不仅可以通过授权实现,也可以通过定义用户的外模式来实现。

        1.4审计方法

                    审计是一种监视措施,把用户对数据库的所有操作记录下来放在审计日志中。

        1.5数据加密

                    数据加密是防止在存储和传输过程中失密的有效手段。

二.完整性

数据库的完整性是指数据库中数据的正确性和相容性,防止错误的数据进入数据库造成无效操作。

如月份只能用1~12来表示,否则就违反完整性;如一个学生不能有两个学号,否则就违反相容性。

常用来保证完整性的方法有约束和触发器两种。

约束:

1. 键码                   (primary key)      

用于唯一表示一个实体。

键码可以由多个属性构成,每个构成键码的属性称为码。

2. 单值约束              (unique)

某个属性的值是唯一的。

3. 引用完整性约束   (foreign key)

一个实体的属性引用的值在另一个实体的某个属性中存在。

4. 域约束                  (check )

某个属性的值在特定范围之内。

5. 一般约束              (check )

比如大小约束,数量约束。


触发器:

        触发器是当设定的事件发生时,由DBMS自动启动的维护程序数据库一致的程序。

        粒度: 行粒度(for each row) ,表粒度(for each statment)

        触发时间: 操作前(BEFORE),操作后(AFTER),取代操作(INSTEAD OF)

        触发操作:    删除(DELETE),插入(INSERT), 更新(UPDATE).


三.并发控制*(重点)

我们先来了解一下事务的概念:

    


事务指的是满足 ACID 特性的一系列操作。在数据库中,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。在提交之前的所有操作就是一个事务,即使只有一条指令,或有很多条指令。

事务的四大特性(ACID)

1. 原子性(Atomicity)

事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值