数据库
首页 > 数据库> > 【学习笔记】数据库系统原理 第四&五章 数据库的安全性与完整性

【学习笔记】数据库系统原理 第四&五章 数据库的安全性与完整性

作者:互联网

以下内容为参考课件和《数据库系统概论》(第5版,王珊等著)的个人整理,若有错误欢迎指出

第四&五章 数据库的安全性与完整性

文章目录

一、数据库的安全性

1、安全性定义

防止不合法的使用造成数据的泄露、更改和破坏。它包括向授权用户提供可靠的信息服务和拒绝非法访问请求,保证数据的可用性、完整性和一致性。

不安全因素主要来自于非授权用户的恶意存取破坏、敏感信息泄露和安全环境的脆弱性。

2、安全威胁的分类

3、安全性控制

(1)分类

(2)数据库自身的安全机制

4、统计数据库的安全性

数据分为两类:微数据,即现实描述,不允许访问;统计或综合数据,即对微数据进行综合处理得到的结果,可以提供给用户。

统计数据库的安全性是防止用户通过综合结果推导出微数据(比如相关信息只有1条,就直接知道了)。可以采用以下方法:对统计结果大小加以控制,禁止在相同元组集合上重复执行一系列统计查询,在统计查询结果中加入噪声。

二、数据库的完整性

1、完整性定义

数据库的完整性是指数据的正确性(合法类型、取值)和相容性(表示同一个事实的数据应该相同)

2、完整性约束

施加在数据库数据之上的语义约束条件称为数据库完整性约束条件。

3、完整性约束的分类

约束可以是对列、元组或关系

(1)静态约束

即对数据库的确定状态的约束。包括固有约束(数据模型本身的约束,如关系的属性不可以是复合属性)、隐含约束(数据模式的约束,如实体完整性约束,即主码唯一且不为空)、显式约束(除了前两者之外的、需要显式定义的)。

(2)动态约束

数据库状态转变时新旧值之间的约束。比如动态列级约束(年龄的修改只能增不能减)、动态关系约束(转账后两用户的钱总额不变)。

4、完整性控制

完整性控制机制包括定义功能、检查功能和违约响应。

检查时机分为立即执行约束和延迟执行约束(后者是用户事物执行完毕后执行)。

一条完整性规则可以用一个五元组 ( D , O , A , C , P ) (D,O,A,C,P) (D,O,A,C,P)来描述,其中:

5、实现完整性约束

固有约束在DBMS实现时已规定。

隐含约束可以通过DDL语句在定义数据对象时实现(比如定义表时加unique等)。在定义时,还可以使用Constraint <完整性约束名> <完整性约束条件>的方式定义,命名方便对于一条约束的删改。此外,也可以创造域(Create Domain)并加上约束,这样取值为该域的属性的值都会满足约束。

而显式完整性约束有以下几种实现方式:

至此,数据库的基础知识已基本学习完毕,下一章将进入数据库的设计与开发。

标签:--,数据库,用户,约束,完整性,数据库系统,权限,五章
来源: https://blog.csdn.net/b12345678_123/article/details/120892067