第二章 关系模型简介
关系基本概念:
域(Domain)
一组值的集合,这组值具有相同的数据类型
如整数的集合、字符串的集合、全体学生的集合
笛卡尔积(Cartesian Product)
一组域D1 , D2 ,…, Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1, d2 , … , dn) | di∈Di , i=1,…,n}
笛卡尔积的每个元素(d1 , d2 , … , dn)称作一个n-元组(n-tuple)
元组的每一个值di叫做一个分量(component)
关系的性质:
列是同质的。
不同的列可来自同一域,每列必须有不同的属性名。
列的次序可以任意交换。
任意两元组不能完全相同。
每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的。
关系模型
三类关系:
基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示。
查询表:查询结果对应的表。
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
码
超码(Super Key):是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组。
候选码(Candidate Key):关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码,如关系S中的sno可作为候选码。候选码是最小的超码。
主码(Primary Key):进行数据库设计时,从一个关系的多个候选码中选定一个作为主码,如可选定sno作为关系S的主码。
外部码(Foreign Key):关系R中的一个属性组,它不是R的主码,但它与关系S的主码相对应,则称这个属性组为R的外部码(R和S可以是同一关系)。如S关系中的dno属性。
如何确定超码
按照现实世界语义约束定义,不能依据对数据的归纳总结定义。
数据库完整性
数据库完整性(DatabaseIntegrity)是指数据库中数据的正确性和相容性。
实体完整性和参照完整性:
关系模型必须满足的完整性约束条件。
关系模式完整性:
实体完整性(EntityIntegrity):系的主码中的属性值不能为空值。
空值:不知道或无意义。
空值的表现:
参与算术运算:结果为Null
参与比较运算:结果为unknow
参与逻辑运算:1、Null ortrue=true 2、Null and false=false 3、其它情况结果为null。
参照完整性:
如果关系R的外部码Fk与关系S的主码Pk相对应(R和S可以是同一个关系),则R中的每一个元组的Fk值或者等于S 中某个元组的Pk值,或者为空值。