数据库系统概论
第四章数据库安全性
一、数据库安全性概述
不安全因素:
1、非授权用户对数据库恶意存取破坏
2、重要敏感数据被泄漏
3、安全环境的脆弱性
二、数据库安全性的控制
1、用户身份鉴别:静态口令、动态口令、生物特征鉴别、智能卡鉴别
2、存取控制
3、自主存取控制方法
4、授权:授予与收回
授权:
grant select
on table Student
to User1;
收回:
revoke insert
on table student
from User1
角色:是权限的集合。是被命名的一组与数据库操作相关的权限
三、视图机制
为不同用户定义不同视图,把要保密的数据对无权存取的用户隐藏起来。
create view CS_Student
as
select *
from Student
where sdept=‘cs’;
grant select
on CS_Student
to User1
四、审计
把用户对数据库的操作自动记录下来放入审计日记,审计员利用审计日记监控数据库的各种行为。
五、数据加密
1、存储加密
2、传输加密
第五章 数据库完整性
数据库完整性指 正确性 相容性
一、三大完整性
1、实体完整性:主码唯一且非空 PRIMARY KEY
2、参照完整性:外码的约束 FOREIGN KEY定义哪些列为外码,REFERENCE指明外码参照哪些表的主码
3、用户自定义完整性 1、非空NOT NULL 2、唯一 UNIQUE 3、满足条件式 CHECK
create table Student
(
Sno char(2),
Sname char(2),
Ssex char(2) CHECK (Ssex IN (‘male’,‘famale’)
);
用CONSTRAINT进行完整性约束
定义:
CONSTRAINT C1 CHECK (Sno BETWEEN 100 AND 999),
删除:
ALTER TABLE Student DROP CONSTRAINT C1;
二、断言 ASSERTION
创建:
CREATE ASSERTION ASS_Sc CHECK(…),
删除:
DROP ASSERTION ASS_Sc;
三、触发器
触发器只能定义在基本表上,不能定义在视图上
create trigger SC_T
after/before <触发事件> on <表名>
referencing new/old row as <变量>//行级触发/语句触发
for each row/statement
when <触发条件>
<触发动作体>
第六章 关系数据理论
一、 关系模式存在问题:
1、数据冗余:比如姓名重复出现,浪费空间
2、更新异常:更新后数据不一致
3、插入异常:应该插入的无法插入
4、删除异常:不该删除的被删除
码
候选码:一个集合,可以推出所有的属性,它的任意真子集不能推出所有属性。
范式:
第一范式 1NF:
属于第一范式关系的所有属性都不可再分,即数据项不可分。
第二范式 2NF:
若某关系R属于第一范式,且每一个非主属性完全函数依赖于任何一个候选码
第三范式 3NF:
非主属性既不传递依赖于码,也不部分依赖于码。
BC范式 BCFN:
关系模式R<U,F>中,若每一个决定因素都包含码,则R<U,F>属于BCFN。
第四范式 4NF:
限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。