数据库原理与应用-基础·开发技术·实践电子工业出版社关系数据库理论关系数据库理论本章内容2.1关系模型12.2关系模型完整性22.3关系代数32.4关系数据库规范化理论42.5小结452.1关系模型2.1.1关系模型的基本概念1.关系及基本术语在关系模型中,将表格的头一行称为关系框架:是属性的有限集合。每个属性Ai对应一个值,值域可以是任意的非空有限集合或无限集合。每一张表称为该关系框架上的一个具体关系:关系框架R上的一个关系r[R]是它的属性对应的域构成的笛卡儿空间中的一个子集。表中的每一行称为关系的一个元组;每一列称为属性,它在某个值域上的取值,不同的属性可以在相同的值域上取值。关系中的属性个数称为“元数”(Arity),元组个数称为“基数”(Cardinality)。12,,,KAAA(1,2,,)iDdik(1,2,,)jAjk12()()()kdAdAdA2.1关系模型关系包含以下类型。(1)基本表:它是实际存在的表,是实际存储数据的逻辑表示。(2)查询表:它是查询结果对应的表,是一个虚表,是数据库管理系统执行了查询语句之后得到的虚关系。(3)视图表:它是由基本表或其它视图表导出的表,是一个虚表。2.1关系模型2.域域(Domain)指一组具有相同数据类型的值的集合。如:D1={1,2,3,4,5,6,…}表示自然数集合;D2={男,女}表示性别集合。域中数据的个数称为域的基数。所以,D2的基数为2,D1的基数为无穷。2.1关系模型3.关键字(码)超关键字(SuperKey):在关系中能唯一标识元组的属性集合称为超关键字,显然,一个关系所属性有的集合为该关系本身的超关键字。候选关键字(CandidateKey):如某一属性集合是超关键字,但去掉其中任一属性后就不再是超关键字了,这样的属性称为候选关键字。候选关键字的各个属性称为主属性。不包含在任何候选关键字中的属性称为非主属性(非码属性)。最简单的情况是,主码只有一个属性。在最极端的情况下,由关系模式中的所有属性构成主码,称为全码(All-Key)。例如,学生关系:student(stuno,stuname,birthday,sex,class),其中的stuno(学号)就是主码。再比如,导师指导学生的关系sap(thno,stuno)的主码就是一个全码。2.1关系模型2.1.2关系模式关系模式的定义包括模式名、属性名、值域名及模式的主键,它仅仅是对数据特性的描述,与物理存储方式没有关系。定义2.1关系的描述称为关系模式,形式化表示:R(U,D,dom,F)其中R为关系名,U是组成该关系的属性名集合,D是属性组U中属性所来自的域,dom为属性到域的映像集合,F为属性间数据的依赖关系集合。通常将关系模式简记为,R为关系名,为属性名,并指出主关键码。12(,,,)kRAAA12,,,kAAA2.1关系模型例2-1:在学校教学模型中,如果学生的属性S#、SNAME、AGE、SEX分别表示学生的学号、姓名、年龄和性别;课程的属性C#、CNAME、TEACHER分别表示课程号、课程名和任课教师姓名。给出它们的关系模式。学生关系模式S(S#,SNAME,AGE,SEX)课程关系模式C(C#,CNAME,TEACHER)关系模式中带有下划线的属性集为主关键字。2.2关系模型的完整性为了维护数据库中数据与现实世界的一致性,在关系模型中加入完整性规则,其中可以有4类完整性约束:域完整性约束、实体完整性约束、参照完整性约束和用户定义完整性约束。其中域完整性、实体完整性和参照完整性是关系模型必须满足的约束条件,由关系系统自动支持。2.2关系模型的完整性1.域完整性(DomainIntegrity)约束域完整性约束主要规定属性值必须取自值域;一个属性能否为空值由其语义决定。域完整性约束是最基本的约束,一般关系DBMS都提供此项检查功能。2.实体完整性(EntityIntegrity)约束若属性A是关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值,且不仅是主属性整体不能取空值。例如,在关系“学生成绩关系SC(学号,课程号,成绩)”中,“学号”和“课程号”为主属性,则都不能取空值。2.2关系模型的完整性3.参照完整性(ReferentialIntegrity)约束这条规则要求“不引用不存在的实体”,考虑的是不同关系之间或同一关系的不同元组之间的制约。参照完整性的形式定义如下:如果属性集K是关系模式R的主关键字,K也是关系模式S的外关...