① 关系模型中三类完整性约束以及解释
关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及镇睁搭用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。
实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求,因为主键是惟一决定元组的,如为空则其惟一性就成为不可能的了。
参照完整性约束是关系之早蠢间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。
自定义完整性是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中御拿数据的语义要求
② 关系数据库的三个完整性约束是什么各是什么含义
可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)。
1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。包括列约束(表约束+NOTNULL)和表约束(PRIMARYKEY、foreignkey、check、UNIQUE)。
2、域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3、断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。不必与特定的列绑定,可以理解为能应用于多个表的check约束,因此必须在表定义之外独立创建断言。
(2)数据库三类关系完整性的含义扩展阅读:
完整性约束中包含四个完整性,即域完整性,实体完整性、参照完整性和用户定义完整性。
1、域完整性为保证数据库字段取值的合理性。属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。
2、实体完整性,指关系的主关键字不能重复也不能取“空值"。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。
3、参照完整性,定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。
4、用户定义完整性,则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
③ 什么是数据库的关系完整性
原理编辑
数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:
1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
2.利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。
3.合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。
4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。
数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。动态约束通常由应用软件来实现。不同DBMS支持的数据库完整性基本相同。
关系模型
关系完整性的用于保证数据库中数据的正确性。系统在进行更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件,即关系模型的完整性规则。在关系模型中有四类完整性约束:实体完整性、域完整性、参照完整性和用户定义的完整性,其中实体完整性和参照完整性约束条件,称为关系的两个不变性。
实体
关系数据库的完整性规则是数据库设计的重要内容。绝大部分关系型数据库管理系统RDBMS都可自动支持关系完整性规则,只要用户在定义(建立)表的结构时,注意选定主键、外键及其参照表,RDBMS可自动实现其完整性约束条件。
(1)实体完整性(Entity Integrity)。实体完整性指表中行的完整性。主要用于保证操作的数据(记录)非空、唯一且不重复。即实体完整性要求每个关系(表)有且仅有一个主键,每一个主键值必须唯一,而且不允许为“空”(NULL)或重复。
(2)实体完整性规则要求。若属性A是基本关系R的主属性,则属性A不能取空值,即主属性不可为空值。其中的空值(NULL)不是0,也不是空隔或空字符串,而是没有值。实际上,空值是指暂时“没有存放的值”、“不知道”或“无意义”的值。由于主键是实体数据(记录)的惟一标识,若主属性取空值,关系中就会存在不可标识(区分)的实体数据(记录),这与实体的定义矛盾,而对于非主属性可以取空值(NULL),因此,将此规则称为实体完整性规则。如学籍关系(表)中主属性“学号”(列)中不能有空值,否则无法操作调用学籍表中的数据(记录)。
域完整性
域完整性(Domain Integrity)是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的CHECK、FOREIGN KEY 约束和DEFAULT、 NOT NULL定义都属于域完整性的范畴。
参照完整性
参照完整性(Referential Integrity)属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一,就会影响数据的完整性。如删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录。对于更新、插入或删除表间数据的完整性,统称为参照完整性。通常,在客观现实中的实体之间存在一定联系,在关系模型中实体及实体间的联系都是以关系进行描述,因此,操作时就可能存在着关系与关系间的关联和引用。
在关系数据库中,关系之间的联系是通过公共属性实现的。这个公共属性经常是一个表的主键,同时是另一个表的外键。参照完整性体现在两个方面:实现了表与表之间的联系,外键的取值必须是另一个表的主键的有效值,或是“空”值。
参照完整性规则(Referential Integrity)要求:若属性组F是关系模式R1的主键,同时F也是关系模式R2的外键,则在R2的关系中,F的取值只允许两种可能:空值或等于R1关系中某个主键值。
R1称为“被参照关系”模式,R2称为“参照关系”模式。
注意:在实际应用中,外键不一定与对应的主键同名。外键常用下划曲线标出。
用户定义完整性
用户定义完整性(User-defined Integrity)是对数据表中字段属性的约束,用户定义完整性规则(User-defined integrity)也称域完整性规则。包括字段的值域、字段的类型和字段的有效规则(如小数位数)等约束,是由确定关系结构时所定义的字段的属性决定的。如,百分制成绩的取值范围在0~100之间等。
2设计阶段编辑
一个好的数据库完整性设计首先需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则,然后在充分了解特定DBMS提供的完整性控制机制的基础上,依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式;最后,认真测试,排除隐含的约束冲突和性能问题。基于DBMS的数据库完整性设计大体分为以下几个阶段:
需求分析
经过系统分析员、数据库分析员、用户的共同努力,确定系统模型中应该包含的对象,如人事及工资管理系统中的部门、员工、经理等,以及各种业务规则。
在完成寻找业务规则的工作之后,确定要作为数据库完整性的业务规则,并对业务规则进行分类。其中作为数据库模式一部分的完整性设计按下面的过程进行。而由应用软件来实现的数据库完整性设计将按照软件工程的方法进行。
概念设计
概念结构设计阶段是将依据需求分析的结果转换成一个独立于具体DBMS的概念模型,即实体关系图(ERD)。在概念结构设计阶段就要开始数据库完整性设计的实质阶段,因为此阶段的实体关系将在逻辑结构设计阶段转化为实体完整性约束和参照完整性约束,到逻辑结构设计阶段将完成设计的主要工作。
逻辑设计
此阶段就是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化,包括对关系模型的规范化。此时,依据DBMS提供的完整性约束机制,对尚未加入逻辑结构中的完整性约束列表,逐条选择合适的方式加以实现。
在逻辑结构设计阶段结束时,作为数据库模式一部分的完整性设计也就基本完成了。每种业务规则都可能有好几种实现方式,应该选择对数据库性能影响最小的一种,有时需通过实际测试来决定。
3设计原则编辑
在实施数据库完整性设计的时候,有一些基本的原则需要把握:
1.根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。
2.实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。
3.另一方面,触发器的多级触发不好控制,容易发生错误,非用不可时,最好使用Before型语句级触发器。
4.在需求分析阶段就必须制定完整性约束的命名规范,尽量使用有意义的英文单词、缩写词、表名、列名及下划线等组合,使其易于识别和记忆,如:CKC_EMP_REAL_INCOME_EMPLOYEE、PK_EMPLOYEE、CKT_EMPLOYEE。如果使用CASE工具,一般有缺省的规则,可在此基础上修改使用。
5.要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。
6.要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于DBMS的数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。
7.应采用合适的CASE工具来降低数据库设计各阶段的工作量。好的CASE工具能够支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,同时也容易与用户沟通。
④ 什么是关系数据库的三个完整性有哪五个约束条件
完整性:
1、实体完整性
2、参照完整性
3、用户定义的完整性
五个约束:
(1) not null(非空)约束
(2) unique(惟一)约束
(3) primary key(主键)约束
(4) foreign key(外键)约束
(5) check(校验)约束
不知道你要问的可是这五个
⑤ 关系数据库中,关系的完整性约束包括哪几种,它们分别有什么作用
关系的完整性约束通常包括域完整性,实体完整性、参照完整性和用户定义完整性。
1、域完整性是保证数据库字段取值的合理性,是最简单、最基本的约束。在当今的关系DBMS中,一般都有域完整性约束检查功能。
2、实体完整性,作用是指在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。
3、参照完整性,作用是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。根据实体完整性要求,主关键字不得取空值。
4、用户定义完整性作用是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。
(5)数据库三类关系完整性的含义扩展阅读:
关系完整性模型
关系完整性模型中常用的关系操作包括:选择、投影、连接、并、交、差等查询操作和增加、删除、修改操作两大部分。查询的表达能力是其中最重要的部分。
关系操作的的特点是集合操作方式,即操作对象和结构都是集合。这种操作方式也为一次一集合的方式。相应地,非关系数据模型的数据操作方式则为一次一记录的方式。
早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数用对关系的运算来表达查询要求的方式。关系代数、元组关系演算和域关系演算三种语言在表达能力是完全等价的。
关系语言是一种高度非过程化的语言,用户不必请求DBA为其建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成,此外,用户不必求助于循环结构就可以完成数据操作。
⑥ 什么是数据库的关系完整性
关系的究整性
关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
一、实体完整性(Entity Integrity)
规则2.1 实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值。
例如在关系“SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)”中,“研究生姓名POSTGRADUATE”属性为主码(假设研究生不会重名),则“研究生姓名”不能取空值。
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。
对于实体完整性规则说明如下:
(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。
(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3)相应地,关系模型中以主码作为唯一性标识。
(4)主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完禅兆整性。
二、参照完整性(Referential Integrity)
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。先来看三个例子。
例1 学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识:
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。这也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。
规则2.2 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
·或者取空值(F的每个属性值均为空值);
·或者等于S中某个元组的主码值。
三、用户定义的完整性(User-defined Integrity)
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一逗绝具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如贺指租某个属性必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在 0~100之间等。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
⑦ 关系模型的完整性主要有哪三种
在关系模型中,关系完整性主要是指以下三方面:
1、实体培链完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值;比如学生表的主码通常是取学号为主码
2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码;
3、用户定义的完整性:指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。比如 性别属性只能取”男“或”女“ ,再就是年龄的取值范围,可以取值0-130 ,但不能取负数,因为年龄不可能是负数。
(7)数据库三类关系完整性的含义扩展阅读
一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。
在关空虚系模式中,以主关键字作为唯一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定"的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。
按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。
⑧ 什么是关系完整性规则关系数据库中,常见的完整性规则有哪些,试举例说明
关系的完整性主要包括域完整性、实体完整性和参照完整性三种。隐者拿
1.域完整性
域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它嫌帆是由确定关系结构时所定义的字段的属性决定的。
2.实体完整性
实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。
3.参照完整性
参照完整性是对关灶搭系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。
⑨ VF中。数据库完整性包括哪三个完整性
有四个完整性,包括实体完整性、域完整性、参照完整性和用户定义的完整性。
1、实体完整性:表中行的完整性。主要用于保证操作的数据非空、唯一且不重复。即实体完整性要求每个关系(表)有且仅有一个主键,每一个主键值必须唯一,而且不允许为“空”或重复。
2、域完整性:数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。CHECK、FOREIGN KEY 约束和DEFAULT、 NOT NULL定义都属于域完整性的范畴。
3、参照完整性:属于表间规则,是对于更新、插入或删除表间数据的完整性。通常,在客观现实中的实体之间存在一定联系,在关系模型中实体及实体间的联系都是以关系进行描述,因此,操作时就可能存在着关系与关系间的关联和引用。
4、用户定义完整性:是对数据表中字段属性的约束,包括字段的值域、字段的类型和字段的有效规则(如小数位数)等约束,是由确定关系结构时所定义的字段的属性决定的。
(9)数据库三类关系完整性的含义扩展阅读:
数据库完整性设计原则
1、要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。
2、要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于DBMS的数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。
3、应采用合适的CASE工具来降低数据库设计各阶段的工作量。好的CASE工具能够支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,同时也容易与用户沟通。