时间:2019-12-02来源:电脑系统城作者:电脑系统城
1
2 |
ENROL(StudentID, CourseNo, Semester, Status, EnrolDate); ENROL(StudentID: INT , CourseNo: STRING, Semester: STRING, Status: STRING, EnrolData: DATE ); |
元组中的每一个值必须是在其属性的取值范围之中,即既要符合定义的数据类型,又要在取值范围之中。
超键(SuperKey):在一个关系%20/%20表中,不存在两个独立元组的超键有相同的取值,即每一个独立元组超键的取值必不相同。
候选键(Candidate%20Key):当一个超键不存在它的子集仍然为超键时,这个超键被称为最小超键(minimal),也称候选键。
主键(Primary%20Key):取候选键集合中的其中一个,可作为当前关系%20/%20表的主键(主键是惟一的)。
举几个例子说明一下
实体完整性约束主要是对主键取值的约束。由于主键是用于独立区别同一个关系中的不同元组,因此每一个元组的主键取值不能为 NULL,即不能为空。通常在定义关系或者定义属性的时候,使用 NOT%20NULL 关键字对主键进行修饰。
注意:关系表%20R%20中的其他属性也有可能被限定不能为空(NULL),即便它们并不是当前关系表的主键,但是主要一个属性是关系表的主键,那它的取值绝对不能为%20NULL。
通过观察发现,在存在多个关系表的关系数据库模式中,数据实体并不会独立存在于单一的关系表中。意思就是,任意一个元组(一个数据实体)必然在各个关系表中存在引用关系。
前面讨论到的三种约束类型,都是针对单一的关系表;引用完整性约束针对的是两个关系表之间的关系,要求指定两个关系表中间的引用关系。
外键(Foreign Key):对于一个关系表%20R1%20中的属性%20A,取任意一个%20R1%20中元组,在另一个关系表%20R2%20中都会存在一个元组,其属性%20B%20的取值与%20A%20相等。这种情况下,我们把属性%20A%20叫做关系表%20R1%20的外键,R1%20叫做引用关系(Referencing%20Relation),R2叫做依赖关系(Referenced%20Relation)。
举个例子说明一下
在上面的关系数据库模式中,我们可以找出关系表 ENROL 的两个外键:
2022-09-11
Windows 系统 PostgreSQL 手工安装配置方法教程图解2022-02-25
系统城教小白如何在Centos8-stream安装PostgreSQL132021-04-22
自定义函数实现单词排序并运用于PostgreSQL(实现代码)