好文档 - 专业文书写作范文服务资料分享网站

数据库系统概论

天下 分享 时间: 加入收藏 我要投稿 点赞

2015-2016学年第二学期

《数据库系统概论》

课程论文

数据库完整性及其应用

学号:2013912038 姓名:郑强强 班级:电信一班 电话:15172343947

摘 要: 数据完整性是保证数据正确性、准确性和合法性的重要措施,是数据库应用系统开发中值得研究的问题。本文介绍了数据库系统完整性的当前技术状况、约束规则、系统支持能力,及其在xbase环境下的应用方法。

目录

1 引言 2 实体完整性

2.1 定义实体完整性

2.2 实体完整性检查和违约处理 3 参照完整性

3.1 定义参照完整性

3.2 参照完整性检查和违约处理 4 用户定义的完整性

4.1 属性上的约束条件

4.1.1属性上约束条件的定义

4.1.2属性上约束条件的检查和违约处理

4.2 元组上的约束条件

4.2.1元组上约束条件的定义

4.2.2元祖上约束条件的检查和违约处理

5 完整性约束命名子句 6 触发器

6.1定义触发器 6.2激活触发器 6.3删除触发器 7 结论 8 参考文献

1引言

数据库的完整性是指数据的正确性和相容性。数据的正确性是指数据是符合现实世界语义、反映当前实际状况的;数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。因此,完整性检查和控制的防范对象是不符合语义的、不正确的数据,防止它们进入数据库。

2实体完整性

实体完整性是指实体属性中的标识属性不能为空,不能重复,该约束通过指定的主键实现,其约束由系统强制实施。

2.1定义实体完整性

关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法,即定义为表级约束条件。

2.2实体完整性检查和违约处理

用PRIMARY KEY短语定义了关系的主码后,每当用户程序对基本表插入一条记录或者对主码列进行更新操作时,关系数据库管理系统将按照实体完整性规则自动进行检查。包括:1检查主码值是否唯一,如果不唯一则拒绝插入或修改。2:检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。检查记录中主码值是否唯一的一种方法是进行全表扫描,依次判断表中的每一条记录的主码值与将插入记录的主码值(或修改的新主码值)是否相同。

3参照完整性

参照完整性是指表与表之间的一种对应关系,通常情况下可以设置两表之间的主键、外键关系、或者编写两表的触发器来实现。有对应参照完整性的两张表格,在对它们进行数据插入、更新、删除的过程中,系统都会将被修改表格与另一张对应表格进行对照,从而阻止一些不正确的数据的操作。

3.1定义参照完整性

关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。

3.2参照完整性检查和违约处理

参照完整性将两个表中的相应元组联系起来。因此,对被参照表和参照表进行增、删、该操作时有可能破坏参照完整性,必须进行检查以保证这两个标的相容性。对于参照完整性,除了应该定义外码,还应该定义外码列是否允许空值。一般的,当对参照表和被参照表的操作违反了参照完整性时,系统选用默认策略,即拒绝执行。如果想让系统执行其他策略则必须在创建参照表是显式的加以说明。关系数据库管理系统在实现参照完整性时,除了要提供定义主码、外码的机制外,还需要提供不同的策略供用户选择。具体选择哪种策略,要根据应用环境的要求确定。

4用户定义的完整性

用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。目前的关系数据库管理系统都提供了定义和检验这类完整性的机制,使用了和实体完整性、参照完整性相同的技术和方法来处理它们,而不必由应用程序承担这一功能。

4.1属性上的约束条件 4.1.1属性上约束条件的定义

在CREATE TABLE中定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值限制,包括列值非空、列值唯一、检查列值是否满足一个条件表达式。

4.1.2属性上约束条件的检查和违约处理

当往表中插入元组或修改属性的值时,关系数据库管理系统将检查属性上的约束条件是否被满足,如果不满足则操作被拒绝执行。

4.2元组上的约束条件

4.2.1元组上约束条件的定义

与属性上的约束条件定义类似,在CREATE TABLE语句中可以用CHECK短语定义元组上的约束条件,即元组级的限制。同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件。

4.2.2元组上约束条件的检查和违约处理

当往表中插入元组或修改属性的值时,关系数据库管理系统将检查元组上的约束条件是否被满足,如果不满足则操作被拒绝执行。

5完整性约束命名子句

完整性约束条件包括NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK短语等。可以使用ALTER TABLE语句修改表中的完整性限制。

6触发器

触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,触发器将被保存在数据库服务器中。任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。触发器类似于约束,但比约束更加灵活,可以实施更为复杂的检查和操作,具有更精细的和更强大的数据控制能力。

6.1定义触发器

触发器又叫做事件-条件-动作规则。当特定的系统事件发生时,对规则的条件进行检查,如果条件成立则执行规则中的动作,否则不执行该动作。定义触发器的语法一共包括七个部分:一:只有表的拥有者,即创建表的用户才可以在表上创建触发器,并且一个表上只能创建一定数量的触发器。触发器的具体数量由具体的关系数据库管理系统在设计时确定。二:触发器名:触发器名可以包含模式名,也可以不包含模式名。同一模式下,触发器名必须是唯一的,并且触发器名和表名必须在同一模式下。三:表名:触发器只能定义在基本表上,不能定义在视图上。当基本表的数据发生变化时,将激活定义在该表上相应触发事件的触发器,因此该表也称为触发器的目标表。四:触发事件:触发事件可以是INSERT、DELETE、或UPDATE,也可以是这几个事件的组合。五:触发器类型:触发器按照所触发动作的间隔尺寸可以分为行级触发器和语句级触发器。六:触发条件:触发器被激活时,只有当触发条件为真时触发动作体才执行,否则触发动作体不执行。如果省略WHEN触发条件,则触发动作体在触发激活后立即执行。七:触发动作体:触发动作体既可以是一个匿名PL/SQL过程块,也可以是对已创建存储过程的调用。如果是行级触发器,用户可以在过程体中使用NEW和OLD引用UPDATE/INSERT事件之后的新值和UPDATE/DELETE事件之前的旧值;如果触发器是语句级触发器,则不能再触发动作体重使用NEW和OLD进行引用。

6.2激活触发器

触发器的执行是由触发事件激活,并由数据库服务器自动执行的。一个数据表上可能定义了多个触发器,同一个表上的多个触发器激活时遵循如下的执行顺序:(1)执行该表

数据库系统概论

2015-2016学年第二学期《数据库系统概论》课程论文数据库完整性及其应用学号:2013912038姓名:郑强强班级:电信一班电话:15172343947摘要:数据完整性是保证数据正确性、准确性和合法性的重要措施,是数据库应用系统开发中值得研究的问
推荐度:
点击下载文档文档为doc格式
4d70f0s3x481m9s40mcz3j4le87moy00j6x
领取福利

微信扫码领取福利

微信扫码分享