- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统和应用12
第十二章 数据库完整性; 数据库的完整性(Integrity):
数据库的完整性是指保证数据库中数据的正确性(Correctness)、准确性(Accuracy)和有效性(Validity),防止不合语义的数据进入数据库。 ;例如:学生的年龄必须是整数,取值范围为14-29;
学生的性别只能是男或女;
学生的学号一定是唯一的;
学生所在的系必须是学校开设的系;; 为维护数据库的完整性,DBMS必须提供一种机制来检查数据库的完整性,看其是否满足语义规定的条件。
DBMS中检查数据是否满足完整性条件的机制称为完整性检查。 ; 现代数据库技术采用对数据完整性的语义约束和检查来保护数据库的完整性,其实现方式有两种:一种是通过定义和使用完整性约束规则(系统定义),另一种是通过触发器(Trigger)和存储过程(Stored Procedure)(用户自定义)等过程来实现。 ; 完整性子系统:负责处理数据库的完整性语义约束的定义和检查,防止因错误的更新操作产生的不一致性。用户可以使用完整性保护机制,对某些数据规定一些语义约束。
当进行数据操作时,DBMS就由某个完整性语义约束的触发条件激发相应的检查程序,进行完整性语义约束检查。
若发现错误的更新操作,立即采取措施处理,或是拒绝执行该更新操作,或是发出警告信息,或者纠正已产生的错误。 ; DBMS的完整性子系统是负责数据库的完整性控制的。它具有3个功能:
完整性约束条件定义机制
完整性检查机制
违约反应 ; 完整性约束条件:数据模型的组成部分,约束数据库中数据的语义。
DBMS应提供定义数据库完整性约束条件的机制,并把它们作为模式的一部分存入数据库中。
一般由SQL的DDL语句来实现。; 检查用户发出的操作请求是否违背了完整性约束条件的方法; 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作,如拒绝用户执行该操作,来保证数据的完整性。;12.1 完整性规则; 一个完整性约束条件可以看作是一个谓词(Predicate),所有正确的保持完整性的数据库状态都应当满足这个谓词。
例如,SCORE.GRADE≥0。
规则的触发条件规定何时使用该规则做检查。
“ELSE子句”规定当完整性约束条件不满足时须做的操作。; 完整性约束条件作用的对象可以是关系、元组和列三种。
属性(列)约束:列的类型、取值范围、精度、排序等约束;
元组约束:元组中各个属性列间的联系的约束;
关系约束:若干元组间、关系集合上以及关系之间的联系的约束; ; 在关系数据库中,数据的完整性规则一般有以下类型。
域完整性规则:定义属性的取值范围;
关系完整性规则:定义更新操作对数据库中的值的影响和限制;
实体完整性约束:定义在一个关系中,主属性不能取空值
参照完整性约束:定义在一个或多个关系中,属性值间的联系、影响和约束。; 这些规则是用DDL描述的,一旦一条完整性规则输入给系统,系统就开始执行这条规则。这种方法的主要优点是由系统处理违反规则的情况,而不是由用户处理。其次,规则集中存放在数据字典中,当需要修改时,可以很方便地修改。 ; 定义域约束规定某个属性的值必须符合某种数据类型并且取自某个数据定义域。域完整性约束施加于单个数据上。
0≤人的年龄≤150
仓库库存量≥0
0≤一个月的工作天数≤31
长途电话号码格式为999-9999999; 对关系的完整性进行约束的主要目的是维持用户规定的函数依赖。例如,如果用户定义了下列函数依赖:NAME→ADDRESS。 ; 主码(主关键字)是实体完整性约束(Entity Constraint)。; 外码(外部关键字)是参照完整性约束(Referential Constraint)的一个典型例子。 ; 数据库的完整性约束可以分为两种类型。
静态约束(Static Constraint)
动态约束(Dynamic Constraint); 静态约束:是对数据库状态的约束,即是指数据库每一确定状态时的数据对象所应满足的约束条件,反映数据库状态合理性的约束,这是最重要的一类完整性约束。
例如,在一个人事管理数据库的任何一个状态都必须满足条件 “0≤人的年龄≤150”。 ; 动态约束:是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,反映数据库状态变迁的约束。
例如,一个人的年龄只会增加,不会减少,更新年龄数据时必须满足此约束。;
您可能关注的文档
最近下载
- 幼儿园:我上幼儿园,我做哥哥姐姐了,特别是我9月份主题前审议梳理.docx VIP
- 传感器选择题及答案.pdf VIP
- 药用植物学全套精品PPT课件597.pdf VIP
- 云南省昆明市盘龙区2022-2023学年七年级下学期期末数学试题(含答案).docx VIP
- 江苏执业药师继续教育《儿童特应性皮炎的药物治疗》习题答案.docx VIP
- 《医学美容实用技术》课件——第七章 美容文饰技术.pptx VIP
- 第四章_全国林业生态工程规划与布局(下).ppt VIP
- 一种具有减肥降脂功效的植物乳杆菌J26后生元冻干粉及其制备方法和应用.pdf VIP
- 第四章_全国林业生态工程规划与布局(上).ppt VIP
- 中班《我做哥哥姐姐了》主题后审议汇报.pptx VIP
文档评论(0)