完整性约束的类型7.2.3完整性约束的定义方法7.2.4完整性_第1页
完整性约束的类型7.2.3完整性约束的定义方法7.2.4完整性_第2页
完整性约束的类型7.2.3完整性约束的定义方法7.2.4完整性_第3页
完整性约束的类型7.2.3完整性约束的定义方法7.2.4完整性_第4页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第7章数据库的安全保护章数据库的安全保护17.2.17.2.1数据库完整性的含义数据库完整性的含义7.2.27.2.2完整性约束的类型完整性约束的类型7.2.37.2.3完整性约束的定义方法完整性约束的定义方法7.2.47.2.4完整性约束的验证完整性约束的验证 7.27.2数据库的完整性数据库的完整性第第7章数据库的安全保护章数据库的安全保护2 数据库的完整性是指数据库中数据的正数据库的完整性是指数据库中数据的正确性和相容性。确性和相容性。7.2.1数据库完整性的含义第第7章数据库的安全保护章数据库的安全保护31 1由数据模型确定的完整性约束由数据模型确定的完整性约束由数据模型确定的完整性

2、约束可以由数据库模式隐含由数据模型确定的完整性约束可以由数据库模式隐含地说明和定义,这地说明和定义,这种完整性约束又被称为数据模型的种完整性约束又被称为数据模型的隐含约束。不同数据模型具有不同的隐含约束集合。隐含约束。不同数据模型具有不同的隐含约束集合。然而,任何一种数据模型都不可能把现实世界所有的然而,任何一种数据模型都不可能把现实世界所有的约束都包含到隐含约束中来。因此,数据模型还具有约束都包含到隐含约束中来。因此,数据模型还具有一些需要显式地定义到数据库模式上的约束,这种约一些需要显式地定义到数据库模式上的约束,这种约束被称为数据模型的显式约束。此外数据模型还有第束被称为数据模型的显式约

3、束。此外数据模型还有第三种三种类型的约束类型的约束固有约束,即数据模型本身固有固有约束,即数据模型本身固有的、不需要特殊说明的约束。的、不需要特殊说明的约束。7.2.2 7.2.2 完整性约束的类型完整性约束的类型第第7章数据库的安全保护章数据库的安全保护42 2由数据库应用确定的完整性约束由数据库应用确定的完整性约束数据库上的大部分语义完整性约束是由数据库应用确定的。这类完整数据库上的大部分语义完整性约束是由数据库应用确定的。这类完整性约束分为状态约束和变迁约束两类,在数据库管理系统中这两类约性约束分为状态约束和变迁约束两类,在数据库管理系统中这两类约束都被视为显式约束。束都被视为显式约束。

4、(1 1)状态约束。在某一时刻数据库中的所有数据实例构成了数据库)状态约束。在某一时刻数据库中的所有数据实例构成了数据库的一个状态。数据库的状态约束也称静态约束,是所有数据库状态必的一个状态。数据库的状态约束也称静态约束,是所有数据库状态必须满足的约束。每当数据库被修改时,数据库管理系统都要进行状态须满足的约束。每当数据库被修改时,数据库管理系统都要进行状态约束的检查,以保证状态约束始终被满足。约束的检查,以保证状态约束始终被满足。(2 2)变迁约束。数据库变迁约束也称动态约束,是指数据库从一个)变迁约束。数据库变迁约束也称动态约束,是指数据库从一个状态向另一个状态转化过程中必须遵循的约束条件

5、,如职工年龄在更状态向另一个状态转化过程中必须遵循的约束条件,如职工年龄在更改时只能增长、职工工资在调整时新值不得少于旧值等。变迁约束既改时只能增长、职工工资在调整时新值不得少于旧值等。变迁约束既不作用于修改前的状态又不作用于修改后的状态,而是规定了状态变不作用于修改前的状态又不作用于修改后的状态,而是规定了状态变迁时必须遵循的规则。由于其动态特性,变迁约束很难实施。变迁约迁时必须遵循的规则。由于其动态特性,变迁约束很难实施。变迁约束通常用显式约束表示。束通常用显式约束表示。7.2.2 7.2.2 完整性约束的类型完整性约束的类型第第7章数据库的安全保护章数据库的安全保护5综上所述,数据库完整

6、性约束的分类如图综上所述,数据库完整性约束的分类如图7.17.1所示。所示。7.2.2 7.2.2 完整性约束的类型完整性约束的类型第第7章数据库的安全保护章数据库的安全保护61过程化定义方法过程化定义方法显式约束的过程化定义方法是把显式约束作为一个过程,由程序员编显式约束的过程化定义方法是把显式约束作为一个过程,由程序员编码到每个更新数据库的事务中。码到每个更新数据库的事务中。2断言定义方法断言定义方法断言定义方法使用一种约束定义语言来定义显式约束,是一种形式化断言定义方法使用一种约束定义语言来定义显式约束,是一种形式化方法。约束定义语言通常是关系演算语言的变种。显式约束的断言定方法。约束定

7、义语言通常是关系演算语言的变种。显式约束的断言定义方法把约束集合和完整性验证子系统严格分开。约束集合存储在约义方法把约束集合和完整性验证子系统严格分开。约束集合存储在约束库中,完整性验证子系统存取约束库中的约束,将其应用到相应的束库中,完整性验证子系统存取约束库中的约束,将其应用到相应的数据库更新事务中。数据库更新事务中。3触发器定义方法触发器定义方法一个触发器用来定义一个条件以及该条件为真时需要执行的动作。一个触发器用来定义一个条件以及该条件为真时需要执行的动作。7.2.3 7.2.3 完整性约束的定义方法完整性约束的定义方法第第7章数据库的安全保护章数据库的安全保护71. 隐含约束的验证隐

8、含约束的验证隐含约束是建立数据库模式时通过数据定义语言向数据库管理系统隐含约束是建立数据库模式时通过数据定义语言向数据库管理系统说明的。数据定义语言编译器把这些约束存储在数据库管理系统的说明的。数据定义语言编译器把这些约束存储在数据库管理系统的数据字典中。当数据库被更新时,数据库管理系统将自动读取数据数据字典中。当数据库被更新时,数据库管理系统将自动读取数据字典中的完整性约束,进行完整性约束验证,保证数据库的完整性。字典中的完整性约束,进行完整性约束验证,保证数据库的完整性。2显式约束的验证显式约束的验证如果数据库系统使用断言定义方法定义显式约束,则显式约束的存如果数据库系统使用断言定义方法定义显式约束,则显式约束的存储、管理和验证与隐含约束的处理方法相同。否则,显式约束作为储、管理和验证与隐含约束的处理方法相同。否则,显式约束作为过程由程序员编码到相关事务中,在这种情况下,显式约束的处理过程由程序员编码到相关事务中,在这种情况下,显式约束的处理完全由程序员和数据库管理员负责。完全由程序员和数据库管理员负责。3固有约束的验证固有约束的验证固有约束的验证由数据库管理系统自动完成。固有约束是数据模型固有约束的验证由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论