数据库的完整性是指

数据库的完整性是指,第1张

数据库的完整性是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。它是衡量数据库数据质量的好坏的一种标志,是确保数据库中数据的一致性、正确性以及符合企业规则的一种思想。它使无序的数据变得条理化,是确保正确的数据被存放在正确的位置的一种手段。因此可以说数据库的完整性设计就是数据库完整性约束的设计。

数据库的完整性约束可以通过DBMS或应用程序来实现,可以基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS的方式实现的数据库完整性,并按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则会纳入应用软件的设计。

数据库的完整性的全名叫做:关系数据库的参照完整性(Referential Integrity),一般是用在表示多个表之间关系时用的,而且经常使用。比如说,现在有两个表:

Student(StudentNumber, StudentName) 和 Teacher(TeacherNumber, TeacherName, StudentNumber)

其中Teacher表中的studentNumber是外键,并且Student表中的StudentNumber是主键,因此肯定会有如下的参照完整性:Teacher表中的studentNumber的值必须在Student表中的StudentNumber已经存在。

这就是所谓的参照完整性,它是一个很普遍的概念。1什么是数据库的完整性? DBMS的完整性子系统的功能是什么?数据库的完整性是指数据的正确性和相容性。DBMS完整性子系统的功能是:(1)监督事务的执行,并测试是否违反完整性规则;(2)如有违反,则采取恰当的 *** 作,如拒绝、报告违反情况,改正错误等方法进行处理。2完整性规则由哪几个部分组成?关系数据库的完整性规则有哪几类?完整性规则由三部分组成:触发条件:即什么时候使用规则进行检查;约束条件:即要检查什么样的错误;ELSE子句:即查出错误后该如何处理。 完整性规则有以下三类:域完整性规则,用于定义属性的取值范围;域联系的规则,定义一个或多个关系中,属性值间的联系、影响和约束。关系完整性规则,定义更新 *** 作对数据库中值的影响和限制。3试详述SQL中的完整性约束机制?SQL中的完整性约束规则有主键约束、外键约束、属性值约束和全局约束等多种形式。△主键约束。它是数据中最重要的一种约束。在关系中主键值不允许空,也不允许出现重复,体现了关系要满足实体完整性规则。主键可用主键子句或主键短语进行定义。△外键约束。根据参照完整性规则,依赖关系中外键或者为空值,或者是基本关系(参照关系)中的该键的某个值。外键用外键关系子句定义,并考虑删除基本关系元组或修改基本关系的主键值的影响,依赖关系可按需要采用RESTRICT、SET NULL、CASCADE方式。△属性值约束。当要求某个属性的值不允许空值时,那么可以在属性定义后加上关键字: NOT NULL ,这是非空值约束。还可以用CHECK子句对一个属性值加以限制以及使用域约束子句CREATDOMAIN定义新域并加以属性值检查。△全局约束。在关系定义时,可以说明一些比较复杂的完整性约束,这些约束涉及到多个属性间的联系或不同关系间的联系,称为全局约束。主要有基于元组的检查子句和断言。前者是对单个关系的元组值加以约束,后者则可对多个关系或聚合 *** 作有关的完整性约束进行定义。4参照完整性规则在SQL可以用哪几种方式实现?删除基本关系的元组时,依赖关系可以采取的做法有哪三种?修改基本关系的主键值时,依赖关系可以采取的做法有哪三种?参照完整性规则要求"不引用不存在的实体",参照完整性规则在SQL可用以下几种方式实现:(1)在SQL中采用外键子句定义外键,并考虑删除基本关系元组或修改基本关系的主键值,对依赖关系产生的影响;(2)在属性值上进行约束如基于属性的检查;(3)全局约束中的基于元组的检查子句等。删除基本关系元组或修改基本关系的主键值时,依赖关系可以采用的做法有:△RESTRICT方式:只有当依赖关系中没有一个外键值与基本关系中要删除/修改的主键值相对应时,系统才能执行删除/修改 *** 作,否则拒绝删除或修改。△SET NULL方式:删除基本元组时,将依赖关系中所有与基本关系中被删除主键值相对应的外键值置为空值。修改基本关系的主键值时,将依赖关系中所有与基本关系中被修改主键值相对应的外键值置为空值。△CASCADE方式:若删除则将依赖关系中所有外键值与基本关系中要删除的主键值相对应的元组一并删除,若修改则将依赖关系中所有与基本关系中要修改的主键值相对应的外键值一并修改为新值。5试对SQL2中的基于属性的检查约束、基于元组的检查约束和断言三种完整性约束进行比较:各说明什么对象?何时激活?能保证数据库的一致性吗?约束形式说明对象激活条件是否保证一致性基于属性的检查只对一个属性值加以约束插入或修改属性值时不一定基于元组的检查对单个关系的元组值加以约束在插入或修改元组时不一定断言多个关系或聚合 *** 作任何变动保证6设教学数据库的模式如下:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用多种方式定义下列完整性约束:(1)在关系S中插入学生年龄值应在16~25岁之间(2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。(3)在关系SC中修改GRADE值时,必须仍在0~100之间。(4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#的元组全部删去。(5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。(1)定义S时采用检查子句:CREAT TABLE S(S# CHAR(4),SNAME char (10) NOT NULL ,AGE SMALLINT ,PRIMARY key(S#),CHECK (AGE>=16 and AGE<=25) ) (2)采用外键子句约束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#))(3)采用元组检查CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#),CHECK (GRADE>=0 and AGE<=100) ) (4)采用外键约束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#),FOREIGN key(C#) REFERENCE C(C#))若改为:在删除关系C中一个元组时,同时把关系SC中具有同样C#的元组全部删去, 则为:......FOREIGN key(C#) REFERENCE C(C#) ON DELETE CASCADE......(5)采用外键约束CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#) REFERENCE S(S#) ON UPDATE CASCADE ,FOREIGN key(C#) REFERENCE C(C#))6.20在教学数据库的关系S、SC、C中,试用SQL2的断言机制定义下列两个完整性约束:(1)学生必须在选修Maths课后,才能选修其他课程。(2)每个男学生最多选修20门课程(1)CREAT ASSERTION ASSE1 CHECK( NOT EXISTS( SELECT S FROM SCWHERE C# IN(SELECT C#FROM CWHERE CNAME<>'MATHS')AND S# NOT IN(SELECT S# FROM SCWHERE C# IN(SELECT C#FROM CWHERE CNAME='MATHS')))(2)CREAT ASSERTION ASSE2 CHECK( ALL(SELECT COUNT (SC.C#)FROM S,SCWHERE S.S#=SC.S AND SEX='M'GROUP BY S#)<=20)

域完整性、实体完整性、参照完整性。

数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效 *** 作或错误信息而提出的。

数据完整性的设定必须在整个数据生命周期内,保护数据的准确性、完整性、内容以及意义。

更多就业详情,欢迎了解:https://wenda.hqwx.com/catlist-121.html/?utm_campaign=baiduhehuoren


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9957050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存