您的位置:首页 > 数据库

数据库的范式和安全保护

2016-05-18 19:35 239 查看

--完全函数依赖,部分函数依赖,传递函数依赖。

完全函数依赖与部分函数依赖:如果非主属性B函数依赖于构成某个候选关键字的一组主属性A,而且A的任何一个真子集不能被B函数依赖,则称B完全函数依赖于A;反之,若B函数能依赖于A的真子集,则称B部分函数依赖于A。

传递函数依赖:在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖(transitive functional dependency) 于X。传递函数依赖会导致数据冗余和异常。传递函数依赖的Y和Z子集往往同属于某一个事物,因此可将其合并放到一个表中。

--范式(Normal Form)

第一范式:是最基本的规范形式,即关系中的每个属性都是不可再分的简单项。

第二范式:它的规则是要求数据表里的所有数据都要和该数据表的主键有完全依赖关系;如果有哪些数据只和主键的一部份有关的话,它就不符合第二范式。

同时可以得出:

1.如果一个数据表的主键只有单一一个字段的话,或R的全体属性均为主属性,它就一定符合第二范式(前提是该数据表符合第一范式)。

2.从1NF关系中消除非主属性对关系键的部分函数依赖,则可以得到2NF关系。

缺点是存在传递依赖。

第三范式:如果关系模式R∈2NF,且每个主属性都不存在传递依赖于R的每个关系键,则称R属于第三范式。

缺点是没有限制主属性对键的依赖关系。

BCNF(Boyce-codd Normal Form):满足BCNF的关系将消除任何属性(主属性和非主属性)对键的部分函数依赖传递函数依赖。

缺点是有可能存在主属性对候选键的部分依赖和传递依赖,没有解决多对多的关系。

第四范式:就是限制关系模式的属性值之间不允许有非平凡且非函数依赖的多值依赖。因为根据定义,对于每一个非平凡的多值依赖X→→Y,X都含有候选码,于是就有X→Y,所以4NF所允许的非平凡的多值依赖实际上是函数依赖。

不允许有非平凡且非函数依赖的多值依赖,允许的是函数依赖(是非平凡多值依赖)。

--数据库安全保护

DBMS对数据库的安全保护功能是通过四个方面实现的,即安全性控制,完整性控制,并发性控制和数据库恢复。

数据库的安全性是指保护数据库,以防止因非法使用数据库,造成数据的泄露,更改或者破坏。实现数据库系统安全性的方法有用户标识和鉴定,存取控制,视图定义,数据加密和审计等多种,其中,最重要的是存取控制技术和审计技术。

数据库的完整性是指保护数据中的数据正确性,有效性和相容性。完整性和安全性是两个不同的概念,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是合法用户的不合语义的数据。这些语义约束构成了数据库的三条完整性规则,即触发条件,约束条件和违约响应。完整性约束条件从使用对象分为值的约束和结构的约束,从约束对象的状态可分为静态约束和动态约束。

并发控制是为了防止多个用户同时存取同一数据,造成数据库的不一致性。事务是数据库的逻辑工作状态,并发操作中只有保证系统中一切事务的原子性,一致性,隔离性和持久性,才能保证数据库处于一致的状态。并发操作导致数据库不一致主要有丢失更新,污读和不可重读三种。实现并发控制的方法书要是封锁技术,基本的封锁类型有排他锁和共享锁两种,三个级别的封锁协议可以有效解决并发操作的一致性问题。对数据对象施加封锁,会带来死锁或活锁的问题,并发控制机制可以通过采取一次加锁或顺序加锁法预防死锁的产生。死锁一旦发生,可以选择一个处理死锁代价最小的事务将其撤销。

数据库的恢复是指系统发生故障后,把数据从错误状态中恢复到某一正确的状态的功能。对于事务故障,系统故障和介质故障三种不同的故障类型,DBMS有着不同的恢复方法。登记日志文件和数据转储是恢复中常用的技术,恢复的基本原理是利用存储在日志文件和数据库后备副本中的冗余数据来重建数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: