目录
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、主表修改主键值,与从表相关行的外键值一起修改。
有两种方法为用户提供选择。 无论选择哪一种方法,正反都没有多余的行。
从另一个角度理解的话,通过拒绝同一事物,附表中的标记与主表不一致。