数据库系统——第八讲 SQL语言与数据库完整性和安全性

本文探讨了数据库完整性概念,包括静态和动态约束,如列约束、表约束和触发器的应用。同时,深入解析了数据库安全性的分类,自主性和强制性安全机制,以及SQL在安全控制中的角色。重点讲解了如何通过SQL实现约束和安全策略,确保数据的一致性和安全性。


数据库完整性概念及完整性约束规则

数据库完整性概念

重点与难点:数据库完整性的概念,完整性规则,静态约束,动态约束(触发器)
(1)什么是数据库完整性?
数据库完整性(DB Integrity)是指DBMS应保证的DB的一种特性–在任何情况下的正确性、有效性和一致性
(2)为什么会产生完整性问题?
不正当的数据库操作,如输入错误、操作失误、程序处理失误等
(3)怎样保证数据库完整性
DBMS允许用户定义一些完整性约束规则(用SQL-DDL来定义)
当有DB更新操作时,DBMS自动按照完整性约束条件进行检查,以确保更新操作符合语义完整性
在这里插入图片描述
完整性约束条件(或称完整性约束规则)的一般形式
Integrity Constraint ::= ( O,P,A,R)
O:数据集合:约束的对象?
P:谓词条件:什么样的约束?
A:触发条件:什么时候检查?
R:响应动作:不满足时怎么办?

数据库完整性分类

按约束对象分类:
 域完整性约束条件
施加于某一列上,对给定列上所要更新的某一候选值是否可以接受进行约束条件判断,这是孤立进行的
 关系完整性约束条件
施加于关系/table上,对给定table上所要更新的某一候选元组是否可以接受进行约束条件判断,或是对一个关系中的若干元组和另一个关系中的若干元组间的联系是否可以接受进行约束条件判断

按约束来源分类:
 结构约束
来自于模型的约束,例如函数依赖约束、主键约束(实体完整性)、外键约束(参照完整性),只关心数值相等与否、是否允许空值等;
 内容约束
来自于用户的约束,如用户自定义完整性,关心元组或属性的取值范围。例如Student表的Sage属性值在15岁至40岁之间等。

按约束状态分类:
静态约束
要求DB在任一时候均应满足的约束;例如Sage在任何时候都应满足大于0而小于150(假定人活最大年龄是150)。
动态约束
要求DB从一状态变为另一状态时应满足的约束;例如工资只能升,不能降:工资可以是800元,也可以是1000元;可以从800元更改为1000元,但不能从1000元更改为800元。


SQL语言之列约束与表约束—静态约束

SQL语言支持如下几种约束:静态约束、动态约束

1.静态约束

  • SQL语言实现约束的方法-Create Table
    在这里插入图片描述

  • SQL语言实现约束的方法-断言

在这里插入图片描述

2.动态约束

触发器Trigger
Create Table中的表约束和列约束基本上都是静态的约束,也基本上都是对单一列或单一元组的约束(尽管有参照完整性),为实现动态约束以及多个元组之间的完整性约束,就需要触发器技术Trigger
Trigger是一种过程完整性约束(相比之下,Create Table中定义的都是非过程性约束),是一段程序,该程序可以在特定的时刻被自动触发执行,比如在一次更新操作之前执行,或在更新操作之后执行。
在这里插入图片描述
事件:BEFORE | AFTER { INSERT | DELETE | UPDATE …}
1、当一个事件(Insert, Delete, 或Update)发生之前Before或发生之后After触发
2、操作发生,执行触发器操作需处理两组值:更新前的值和更新后的值,这两个值由corr_name_def的使用来区分
eg:
在这里插入图片描述


数据库安全性的概念及分类

重点与难点:数据库安全性的概念,安全性访问规则,权利与授权

数据库安全性的概念

数据库安全性是指DBMS应该保证的数据库的一种特性(机制或手段):免受非法、非授权用户的使用、泄漏、更改或破坏

数据库安全性的分类

  • 自主安全性机制:存取控制(AccessControl)通过权限在用户之间的传递,使用户自主管理数据库安全性
  • 强制安全性机制:通过对数据和用户强制分类,使得不同类别用户能够访问不同类别的数据
  • 推断控制机制
  • 数据加密存储机制

自主安全性机制

通常情况下,自主安全性是通过授权机制来实现的
用户在使用数据库前必须由DBA处获得一个账户,并由DBA授予该账户一定的权限,该账户的用户依据其所拥有的权限对数据库进行操作; 同时,该帐户用户也可将其所拥有的权利转授给其他的用户(账户),由此实现权限在用户之间的传播和控制。


SQL安全性控制

SQL语言包含了DDL,DML和DCL。数据库安全性控制是属于DCL范畴
授权机制—自主安全性;视图的运用
在这里插入图片描述
在这里插入图片描述


强制安全性机制

1、强制安全性通过对数据对象进行安全性分级:绝密(Top Secret), 机密(Secret),可信(Confidential)和无分类(Unclassified)
2、同时对用户也进行上述的安全性分级
3、从而强制实现不同级别用户访问不同级别数据的一种机制


小结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值