什么是数据库的完整性约束条件

什么是数据库的完整性约束条件,第1张

数据完整性(Database

Integrity)是指数据库中数据的正确性和相容性,其目的是防止垃圾数据的进出。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。加在数据库之上的语义约束条件就是数据库完整性约束条件。

完整性约束条件作用对象可以使关系、元组、列三种。

● 列约束主要是列的数据类型、取值范围、精度、排序等约束条件。

● 元组的约束是元组中各个字段间的联系的约束。

● 关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。

 完整性约束条件涉及这三类对象,其状态可以是静态的,也可以是动态的。所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件。它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。

 动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。

完整性约束条件可分为以下六类:

● 静态列级约束

● 静态元组约束

● 静态关系约束

● 动态列级约束

● 动态元组约束

● 动态关系约束

1

静态列级约束是对一个列的取值域的说明,包括以下几个方面:

(1) 对数据类型的约束,包括数据的类型、长度、单位、精度等;

(2) 对数据格式的约束。例如规定日期的格式为YYYY-MM-DD;

(3) 对取值范围或取值集合的约束。例如规定学生的成绩取值范围为0~100;

(4) 对空值的约束,规定哪些列可以为空值,哪些列不能为空值;

2

静态元组约束就是规定元组的各个列之间的约束关系。例如,订货关系中包含发货量、订货量等列,规定发货量不得超过订货量。

3

静态关系约束是指在一个关系的各个元组之间或者若干关系之间存在的约束。常见的静态约束有:

(1) 实体完整性约束;

(2) 引用完整性约束;

(3) 函数依赖约束;大部分函数依赖约束都在关系模式中定义。

(4) 统计约束;即字段值与关系中多个元组的统计值之间的约束关系。例如,规定部门经理的工资不得高于本部门职工平均工资的5倍,不得低于本部门职工平均工资的2倍。

4

动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:

(1) 修改列定义时的约束。例如,将允许空值的列改为不允许空值时,如果该列目前已存在空值,则拒绝这种修改。

(2) 修改列值时的约束。修改列值时有时需要参照其旧值,并且新旧值之间需要满足某种约束条件。例如,职工调整后的工资不得低于其调整前的原来工资;职工婚姻状态的变化只能是由未婚到已婚、已婚到离异、离异到再婚等几种情况。

5

动态元组约束是指修改元组的值时元组中各个字段间需要满足某种约束条件。例如,职工工资调整时新工资不得低于原工资+工龄15等。

6

动态关系约束是加在关系变化前后状态上的限制条件。例如,在集成电路芯片设计数据库中,一个设计中用到的所有单元的工艺必相同,因此,在更新某个设计单元时,设计单元的新老工艺必须保持一致。

数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效 *** 作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整

性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)。

数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

关系完整性规则即指关系的正确性、相容性和有效性。它是给定的关系模型中数据及其联系的所有制约和依存规则,用以限定数据库状态及状态变化,从而保证数据的正确、相容和有效。

关系模型的完整性举例:

1、实体完整性

如职工表将编号作为主关键字,那么,该列不得有空值,否则无法对应某个具体的职工,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。

2、参照完整性

如在学生管理数据库中,如果将选课表作为参照关系,学生表作为被参照关系,以“学号”作为两个关系进行关联的属性,则“学号“是学生关系的主关键字,是选课关系的外部关键字。选课关系通过外部关键字“学号”参照学生关系。

3、用户定义的完整性

例如要求“考查”课的分数以60分或40分计,在用户输入“考查”课的成绩时,要进行检查,以确保满足特定的约束要求。再如年龄属性,如果属于某一个学生主体,则可能要求年龄在17岁到25岁之间,而如果年轻属性属于某一个公司员工主体,则可能要求年龄在18岁到40岁之间等。

扩展资料

数据的完整性约束是用来确保数据的准确性和一致性。数据的完整性就是对数据的准确性和一致性的一种保证。

数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。

分为以下四类:

1、实体完整性:规定表的每一行在表中是惟一的实体。

2、域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。

3、参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。

4、用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。

参考资料:

百度百科-关系完整性约束

参考资料:

百度百科-数据完整性约束

完整性:

1、实体完整性

2、参照完整性

3、用户定义的完整性

五个约束:

(1) not null(非空)约束

(2) unique(惟一)约束

(3) primary key(主键)约束

(4) foreign key(外键)约束

(5) check(校验)约束

不知道你要问的可是这五个

数据的完整性靠添加约束实现。实现完整性约束的方法依类别不同而不同。完整性约束可以分为两大类:静态约束和动态约束。

1、静态约束

静态约束是对数据库状态的约束,有可分为固定约束、隐含约束和显示约束。

2、固定约束

是数据模型固有的约束,如关系的属性是原子的,即满足INF的约束。固有约束在DBMS实现时已经考虑。

3、隐含约束

指隐含于数据模式中的约束,一般用数据定义语言(DDL)语句说明,并存于数据目录中。例如,域完整性约束、实体完整性以及参照完整性约束,都由相应的DDL语句说明。

4、显示约束

固有约束、隐含约束是最基本的约束,但概括不了所有的约束。数据完整性是多种多样的,且依赖于数据的语义与应用,这些约束只有显式地说明,故称显式约束。显式约束的说明一般有三种方法:

①用过程说明约束。这种方法不约束的说明和检验交给应用程序,应用程序中可以插入一些过程,以检验数据库更新是否违反给定的约束,如果违反约束,则回滚事务。检验约束的过程一般用通用高级程序语言编写,可以表达各式各样的约束。这是一种普遍方法。

②用语言说明约束。断言指数据库状态必须满足的逻辑条件。数据库完整性约束可以看成一系列断言的集合。为了表示约束,DBMS须提供断言说明语言。

③用触发子表示约束。触发子是一个软件机制,其功能相当于WHENEVERTHEN,即一旦给定条件成立,系统就引发相应的动作。利用触发子可以表示约束,以违反约束作为条件,以违反约束的处理作为动作。

动作不限于回滚事务,也可以给用户一个消息或过程。在系统中定义一批触发之后,就会监督数据库状态,一旦出现违反约束的更新,就会引发相应的动作。

5、动态约束

动态约束不是对数据库状态的约束,而是数据库从一个状态变为另一个状态时应遵守的约束,例如在更新职工表时,工资、工龄这些属性值一般只会增加,不会减少。动态约束一般也是显式说明的。

在上述约束中,固有约束必然实施,隐含约束在大部分现代DBMS中基本实施或部分实施,显式和动态约束只在个别DBMS中实施。

扩展资料

知识点①:对数据 *** 作语句来说,数据存储到数据库中,如果我们不对其进行分析和处理的话那么数据就是没有价值的,这种用户对数据中数据的 *** 作大多数查询和修改的,修改包括了增加新的数据删除旧的数据以及更改已有的数据。

那么SQL语言提供了功能强大的数据查询以及修改功能,那么他的查询功能是html语言的核心功能,这是数据库中使用得最多的 *** 作,那么查询语句也是SQL语言中比较复杂的一个语句。

知识点②:其实查询语句是数据库 *** 作中最基本和最重要的女婿之一,它的功能是从数据库中检索满足条件的数据,查询的数据源可以来自一张表也可以来自多张表甚至是仕途,那么他的查询功能是由领航。

或者多煮几路组成的一个记录集合,并允许选择一个或多个字段来作为,输出字段了,查询语句的基本结构可以描述,在一些结构中,我们可以对指定的输出字段以及用于指定数据的来源,那么他有什么单表查询呢,数据源只设计一张表查询的话是为了帮助读者更好地理解SQL语句中的执行情况,这里指大部分查询语句均列出来返回了结果。

以上就是关于什么是数据库的完整性约束条件全部的内容,包括:什么是数据库的完整性约束条件、SQL中,什么是数据完整性数据完整性分为几种、什么是关系完整性规则关系数据库中,常见的完整性规则有哪些,试举例说明等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存