当前位置:首页 » 数据仓库 » 外键约束实现数据库的参照完整性
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

外键约束实现数据库的参照完整性

发布时间: 2022-08-30 20:26:26

‘壹’ 什么是外键约束

外键约束是指用于在两个表之间建立关系,需要指定引用主表的哪一列。

外键约束对子表如此检查处理:

在子表上进行INSERT、UPDATE操作的限制是,要和主表中的主键值匹配,或为NULL,否则不允许。

外键约束对父表如此检查处理:

在父表_上进行UPDATE、DELETE操作的限制,取决于在定义子表的外键时指定的ONUPDATE、ONDELETE子句(不同的DBMS支持的情况不尽相同)。众ONDELETE子句各选项的作用:

1、NoACTION:删除主表记录,如果子表中有和主表匹配的记录,则不允许(产生一个错误提示)。此为默认操作(不指定ONDELETE子句,系统自动采取的操作)。

2、CASCADE(级联):删除主表记录,也将删除子表中的匹配记录。

3、SETNULL:删除主表记录,将子表中的匹配记录的外键值改为NULL。

4、SETDEFAULT:删除主表记录,将子表中的匹配记录的外键值改为默认值。众ONUPDATE子句各选项的作用。

(1)外键约束实现数据库的参照完整性扩展阅读

外键的用途是确保数据的完整性。它通常包括以下几种:

1、实体完整性,确保每个实体是唯一的(通过主键来实施)

2、域完整性,确保属性值只从一套特定可选的集合里选择

3、关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值。

约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了。

则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。

FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。

如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。

若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。

‘贰’ 数据库 什么是实体完整性、参照完整性

关系的完整性主要包括域完整性、实体完整性和参照完整性三种。
1.域(列)完整性

域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域完整性可以确保不会输入无效的值.。
2.实体(行)完整性

实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一
的标识,一般用主键,唯一索引
unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人.
3.参照完整性

参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主
键有效值,或者是NULL。参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性

‘叁’ 关系数据库中,关系的完整性约束包括哪几种,它们分别有什么作用

关系的完整性约束通常包括域完整性,实体完整性、参照完整性和用户定义完整性。

1、域完整性是保证数据库字段取值的合理性,是最简单、最基本的约束。在当今的关系DBMS中,一般都有域完整性约束检查功能。

2、实体完整性,作用是指在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。

3、参照完整性,作用是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。根据实体完整性要求,主关键字不得取空值。

4、用户定义完整性作用是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。

(3)外键约束实现数据库的参照完整性扩展阅读:

关系完整性模型

关系完整性模型中常用的关系操作包括:选择、投影、连接、并、交、差等查询操作和增加、删除、修改操作两大部分。查询的表达能力是其中最重要的部分。

关系操作的的特点是集合操作方式,即操作对象和结构都是集合。这种操作方式也为一次一集合的方式。相应地,非关系数据模型的数据操作方式则为一次一记录的方式。

早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数用对关系的运算来表达查询要求的方式。关系代数、元组关系演算和域关系演算三种语言在表达能力是完全等价的。

关系语言是一种高度非过程化的语言,用户不必请求DBA为其建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成,此外,用户不必求助于循环结构就可以完成数据操作。

‘肆’ 数据库管理系统实现参照完整性的方式和措施是什么

关系的完整性主要包括域完整性、实体完整性和参照完整性三种。 1.域完整性 域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。 2.实体完整性 实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。 3.参照完整性 参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。

‘伍’ 实现数据完整性有那些方法

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

1、静态约束

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

2、固定约束

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

3、隐含约束

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

4、显示约束

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

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

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

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

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

5、动态约束

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

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

(5)外键约束实现数据库的参照完整性扩展阅读

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

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

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

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

‘陆’ SQL中的外部键约束有什么用

设置数据库中的外键约束是为了保证数据库的参照完整性。sql
server
2005中的关系表之间的连接,用外键表中的外键引用主键表中的主键、一旦创建了关系并将关系成功地加入到了数据库中,就能够保证数据的参照完整性、

‘柒’ 数据库的五种约束关系是什么主外键有什么用。求教

额,这是数据库原理的基础知识,比如连接,分左外连接,右外连接,外连接。
以左外连接为例
代码大概为
select
*
from
data1
left
join
data2
on
data1.num=data2.num
where
data1.name='我'
可以连接不同的表。
主键,外键等的都是基础的东西,主键相当于一列数据的身份证号码,是唯一的。
外键就是说这个单元格的数据,是别的表的主键
。。。。。。
建议lz买本《数据库原理》看看,一个星期就看会了。这个需要系统的学一下,半路出家学不到什么东西
关于sql语句代码,只有4种,select,update,insert,delete
非常简单