一.安全性
数据库的安全性主要指保护数据库,防止不合法的使用,以免数据的泄露,更改和破坏。
在计算机系统中,安全措施是以一级一级层层设置的,安全模型如下图:
![]()
安全性控制方法:
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)
事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。