现实世界的实体以及实体间的各种联系均用关系来表示
建立在集合代数的基础之上
从用户角度,关系模型中数据的逻辑结构是一张二维表
域是一组具有相同数据类型的值得集合。
例如:
所有域的所有取值的一个集合
不能重复
例如给出三个域:
D1= 导师集合 ={张清玫,刘逸}
D2= 专业集合 ={计算机专业,信息专业}
D3= 研究生集合 ={李勇,刘晨,王敏}
D1×D2×D3={
(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)
}
基数为 2×3×3=12
笛卡尔积可以表示为一张二维表,表中的每行对应一个元组,表中的每列对应一个域
实际生活中,笛卡尔积并非具有实际意义,但是生活中实体间的关系是笛卡尔积的一个子集。
笛卡尔积中的每一个元素(d1,d2,。。。,dn)叫做一个元组(n-tuple)或简称元组。
(张清玫,计算机专业,李勇)、
(张青梅,计算机专业,刘晨)等都是元组
关系中每个元素都是关系中的元组,通常用 t 表示。
当 n=1 时,称该关系为单元关系(Unary relation)或一元关系
当 n=2 时,称该关系为二元关系(Binary relation)
关系也是一个二维表,表的每行对应一个元组,表的每
列对应一个域
关系中不同列可以对应相同的域
为了加以区分,必须对每列起一个名字,称为属性(Attribute)
n 目关系必有 n 个属性
候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
简单的情况:候选码只包含一个属性
全码(All-key)
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)
主属性
候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute)
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
① 列是同质的(Homogeneous)
② 不同的列可出自同一个域
③ 列的顺序无所谓,,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换
⑥ 分量必须取原子值 这是规范条件中最基本的一条
关系模式(Relation Schema)是型
关系是值
元组集合的结构
例:
导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:
DOM(SUPERVISOR-PERSON)
= DOM(POSTGRADUATE-PERSON)
= PERSON
关系模式是对关系的描述,关系模式是静态的稳定的
关系 关系是关系模式在某一时刻的状态或内容,关系是动态的、随时间不断变化的
关系和关系模式笼统的称为关系,要通过上下文进行分析区别
关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型: 关系数据库模式,是对关系数据库的描述
关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库
关系数据库的物理组织
有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成
有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理
查询操作:选择、投影、连接、除、并、差、交、笛卡尔积
集合操作方式:操作的对象和结果都是集合,一次一集合的方式
实体完整性规则(Entity Integrity)
若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值
空值就是“不知道”或“不存在”或“无意义”的值
例:
选修(学号,课程号,成绩)
“学号、课程号”为主码
“学号”和“课程号”两个属性都不能取空值
(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。
(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3)关系模型中以主码作为唯一性标识。
(4)主码中的属性即主属性不能取空值。
主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性
设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码。如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是 R 的外码
基本关系 R 称为参照关系(Referencing Relation)
基本关系 S 称为被参照关系(Referenced Relation)或目标关系(Target Relation)
关系 R 和 S 不一定是不同的关系
目标关系 S 的主码 Ks 和参照关系的外码 F 必须定义在同一个(或一组)域上
外码并不一定要与相应的主码同名
当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别
参照完整性规则
若属性(或属性组)F 是基本关系 R 的外码它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:
例:
关系模式是对关系的型的描述说明关系是由哪些属性组成,这些属性来自于哪些域,以及属性与关系的映像,关系模式是静态的稳定的
关系 关系是关系模式在某一时刻的状态或内容,关系是动态的、随时间不断变化的
主码也就是主键,是唯一标识表中的每一行的字段或者多个字段的组合,它可以实现实体完整性,每个表只能有唯一的主码,且不能为空
候选键(候选码):关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,也就是说该属性组内不应该存在一个真子集能标识出一个元组,这样的属性组称为候选码。
当有多个候选码时,可以选定一个作为主码(主键)
1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。现实生活中不存在不可区分的实体,关系模型中以主码作为唯一标识,如果主码为空,就说明存在某个不可标识的实体,也就是存在不可区分的实体,与现实世界的实体相背离,因此必须强制执行关系模型中的实体完整性约束
2)在实际生活中我们选课有一个选课目录,我们学生的学号选择的选修课必须在备选课程中即为学生选课时候 参照备选课程表,我们无法选修一个根本不存在的课程,遵守参照性约束,能够保证数据的完整性和实际意义,确保数据真实有效
3)综上 需要强制执行关系模型的实体完整性约束和参照完整性约束
待更新