首页 理论教育 数据库完整性规则的组成

数据库完整性规则的组成

时间:2023-10-21 理论教育 版权反馈
【摘要】:为了实现完整性控制,数据库管理员DBA应向DBMS提出一组完整性规则,来检查数据库中的数据,看其是否满足语义约束。这些语义约束构成了数据库的完整性规则。具体地说,完整性规则主要由以下3部分构成。立即执行约束是指在数据库系统实施某项任务操作时,完成某个逻辑语句后,系统针对这一逻辑进行的完整性核查。当前,大部分数据库系统都具备这三种完整性约束条件。

数据库完整性规则的组成

为了实现完整性控制,数据库管理员DBA应向DBMS提出一组完整性规则,来检查数据库中的数据,看其是否满足语义约束。这些语义约束构成了数据库的完整性规则。这组规则作为DBMS控制数据完整性的依据,定义了何时检查、检查什么、检查出错误怎样处理等事项。具体地说,完整性规则主要由以下3部分构成。

1.触发条件:规定系统什么时候使用规则来检查数据。

2.约束条件:数据库系统核查申请访问的用户有哪些操作违背了系统的完整性要求。

3.违约响应:若数据库系统核查出用户的操作违背了相关完整性要求,要实施一定的行动来确保数据库的稳定性,也就是发生违规行为时需要做出的举措。

根据完整性检查时间的不同,可把完整性约束分为立即执行约束(I m m e d i a t e Constraints)和延迟执行约束(Deferred Constraints)。立即执行约束是指在数据库系统实施某项任务操作时,完成某个逻辑语句后,系统针对这一逻辑进行的完整性核查。延迟执行约束是指完成整个逻辑程序后,再对系统的完整性进行核查。例如,银行数据库中“借贷总金额应平衡的约束”就应该是延迟执行的约束,从账号A转一笔钱到账号B为一个事务,从账号A转出去钱后账就不平了,必须等转入账号B后账才能重新平衡,这时才能进行完整性检查。

对于立即执行约束环节,如果有用户操作请求违背完整性约束条件,应该坚决拒绝访问请求;对于延迟执行约束,如果发现用户操作请求违背了完整性约束条件,而又不知道是哪个事务的操作破坏了完整性,则只能拒绝整个事务,把数据库恢复到该事务执行前的状态。一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。

D(data):指实施约束操作所面向的信息对象。

O(operation):指实施完整性约束条件核查的条件,就是用户在实施什么样的行为时,需要采取完整性核查,采用哪种检查方法,是立即核查还是延后核查。

A(assertion):指数据库运行所要满足的逻辑程序和语义,是数据库准则的主体部分。

C(condition):指选择的信息对象的谓语

P(procedure):指违背数据库完整性约束条件时需要采取的措施。

例如,在“学号不能为空”的约束中:

D:约束作用的对象为Snum属性。(www.xing528.com)

O:用户添加或改变数据库信息时采取的完整性核查。

A:Snum不能为空。

C:无,A可作用于所有记录的Snum属性。

P:拒绝执行用户请求。

又如,在“教授基本工资不得低于1200元”的约束中:

D:约束作用的对象为基本工资Base_s属性。

O:当用户插入或修改数据时触发完整性检查。

A:Base_s不能小于1200。

C:A仅作用于职称属性值为教授的记录上。

P:拒绝执行用户请求。

在数据库系统中,完整性约束条件包括几个组分,即实体完整性约束条件和参照实体性约束条件,除此之外,其他的约束条件根据其性质可以归类为用户所定义的完整性条件。当前,大部分数据库系统都具备这三种完整性约束条件。针对违背实体完整性和用户所定义的完整性约束条件的行为,多数情况下是采用不执行的形式来解决的。针对违背参照完整性约束条件的行为,不是单一地拒绝执行,而是要结合其他处理方式来解决这一违规操作,辅以其他操作,进一步维护数据库的安全性能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈