首页 > 编程知识 正文

数据库中主码和外码是什么意思,数据库的主键和外键

时间:2023-05-05 19:44:22 阅读:152834 作者:2495

目录

1 .域

2.axdxg积

3 .关系

主控码

外码

在理解主代码和外部代码的概念之前,必须彻底理解域和axdxg乘积的概念。 请阅读儿童靴一定要耐心~o(_) o

1 .域定义:域是相同数据类型的值的集合。 (域是一个集合,但集合中的元素具有相同的数据类型。)

例如,自然数、整数、实数、小于100的数、{男、女}都可以是域。

2.axdxg乘积axdxg乘积是域上的集合运算。

定义:给定一组域D1、D2、D3、Dn,允许其中几个域是相同的。 D1、D2、D3、、Dn的axdxg乘积定义如下

D1D2D3Dn={(d1,d2,d3,,dn) | diDi ,i=1,2,,n}

白字是从每个域中提取的一个元素的集合,每个(d1,d2,d3,,dn) 都称为元组。

这样说还很抽象,但举个例子:

3 .关系定义:D1D2D3Dn的子集被称为域D1、D2、D3、、Dn上的关系R(D1,D2,D3,,Dn)。

(axdxg乘积中的几个元组的集合是相关的) ) )。

存在主要代码关系的某一个属性组的值能唯一地标识一个元组,而其子集则不能,则称该属性组为候选码(candidate key)

1个关系中有多个候补代码时,选定其中1个为主码。 例如,学生的学校号码是唯一的,所以可以是主码。

一个关系可以没有主代码,但设置一个主代码可以提高数据库查询的效率。

主码不一定是只有一个属性,主码可以由一个或者多个属性组成。主码是候选码之一。

考虑主要代码时,请考虑属性的唯一性。 这意味着该属性的值不重复。 如果重复,则无法唯一识别整个元组。

主代码和设定非空的关系是什么? 主要代码的要求是非空的、唯一的。

设定属性。 不能输入非空值,但可以重复。

在外部代码(外键)中,什么是外码呢?

如果一个关系的属性(该属性不能是候选码)是另一个关系的主要代码,则该属性为外部代码。

外部代码的值可以是空的或相应的主代码之一。

外键的作用是什么? 保持数据的一致性和完整性,主要目的是控制外键表中存储的数据。

当关联两个表时,外键只引用外部表中列的值或使用空值。

阻止执行(情况1 ) :

1、从表中插入新行,如果其外键值不是主表的主键值,则阻止插入;

2、从表中修改外键值。 如果新值不是主表的主值,则阻止修改;

3、从主表中删除行,当其主键值在表中时,阻止删除(要删除,必须先从表中删除相关行);

4、主表修改主键值,如果从表中存在旧值,阻止修改。 要修改,必须首先删除从表的相关行。

级联执行(情况2 )

1、主表删除行,表的相关行也一起删除;

2、主表修改主键值,与从表相关行的外键值一起修改。

有两种方法为用户提供选择。 无论选择哪一种方法,正反都没有多余的行。

从另一个角度理解的话,通过拒绝同一事物,附表中的标记与主表不一致。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。