2.1 关系数据结构及形式化定义
2.1.1 关系

1.域(Domain)
【定义】域是一组具有相同数据类型的值的集合
【例】整数,实数,介于某个取值范围的整数,指定长度的字符串集合,{"男","女"}等等
2.笛卡尔积
【定义】给定一组域,,这些域可以是相同的。
的笛卡尔积为:
。所有域的所有取值的一个组合。
其实就是交叉组合

笛卡尔乘积乘出来的结果比较全面,但是部分对我们来说是没有意义的。比如上面一个学生只能在一个专业,而不能同时在计算机专业和信息专业。
元组(Tuple)
笛卡尔积中的每一个元素(d1,d2,...dn)称作一个n元组(n-tuple)或简称元组(Tuple)
(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨)等都是元组 就是前面关系模型中的一行
分量(Component)
笛卡尔积元素中的每一个值id称作一个分量(记录当中每一个值都是分量)
【例】张清玫,计算机专业,李勇,刘晨等都是分量。
也就是属性 关系模型中的一小格(分量)。
基数(其实也就是种类)
(Cardinal number)(实际上指这个域里面能取几个值,就比如说导师D1这个域,它的基数是2)
为有限集,其基数为zhe
,则
的基数M为:
笛卡尔积的表示方法:
笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域(也就是属性范围)。

3. 关系(Relation)笛卡尔积的有意义子集
R表示关系名 就比如下面学生信息就是关系名 里面D就是属性 属性个数是关系的目或度
元组表示一行 tuple

码:
是一个(或者多个)属性 但是这个属性可以唯一确定一个元组(一行)
某一属性组 不是某一属性
候选码:比如学生的学号 身份证号都可以作为候选码
全码:
所有属性组(全部属性的集合)都是这个关系模式的候选码 所有的属性加起来才能成为候选码(不能说每一个都能成 比如学生选课 必须学号加上课号才能确定一个元组)
主码:
若一个关系有多个候选码,则选定其中一个称为主码

关系跟笛卡尔积的区别 笛卡尔积是所有的元组组合 关系是有实际意义的笛卡尔积的子集

基本关系 是实际存在的表查询表是结果对应的表 比如下面两个选课表和学生信息表 我要查年纪和选课 返回的就是查询表 并且由于这个表示有两个基本表导出来的 因此又是虚表

1.同质的意思就是同样的性质 同样的取值范围
2.同一个域 这个域可以说很大 比如年龄和学号都是整数
6.分量:笛卡尔积每一个元素的值 也就是关系模型中每一个小格子
不能合并单元格

2.1.2 关系模式
1.什么是关系模式?
关系模式是对关系的描述 关系模型是模型 关系是值
(1)元组集合的结构(每一行的构成)
属性构成、属性来自的域、属性和域之间的映射关系
(2)一个关系通常由赋予它的元组语义确定
(3)现实的世界中还存在着完整性约束
2.关系模式的表示方式(了解)
区别和关系的表示:R(D1,D2,...Dn)


3.关系模式与关系

2.1.3 关系数据库
1. 关系数据库
给定的一个应用领域中所有关系的集合构成一个关系数据库 比如学生管理系统 有学生信息表 选课表 成绩表等
2.关系数据库的型与值

2.1.4 关系模型的存储结构(了解)

2.2 关系数据结构
2.2.1 基本关系操作
一、常用的关系操作
查询:选择 投影 并 差 笛卡尔积
投影:选择其中一或多列

2.2.2 关系数据库的分类

2.3 关系的完整性

2.3.1 实体完整性
若属性A是基本关系R的主属性,则属性A不能取空值(空值就是不知道 不存在 或无意义的值)比如身份证号
实体完整性规则规定基本关系的所有主属性都不能取空值
R(D1,D1,D3)画下横线的是主码 不能重复且不能为空(主体完整性)

2.3.2 参照完整性
1.关系间的引用
关系模型中实体与实体间的联系都是用关系来描述的,存在着关系与关系之间的引用
比如这个表的属性 也是另外一个表的属性
这里画横线是指 学生关系里引用的是专业关系的主码专业号,而不是专业号也是自己的主码
那什么是参照完整性呢?指的就是 引用的值只能是被引用关系里的值
关系一对一



2.外码
外码:一个或一组属性与别的关系的主码相对应 而不是自己所在关系的码 则称这个或组属性为这个关系的外码,比如前面专业号是学生表的属性,不是码;但是与专业表的主码对应,这时候我们说专业号是学生表的外码;学生表为参照关系, 专业表为被参照关系
但是上面第二张图 对于选修表来说 尽管(学号,专业号)来自于另外两个关系的主码 但是这两个属性同时是选修成绩表的主码 所以不能说他们(属性组)是选修表的外码
(学号,专业号)不是外码 但是学号和专业号是外码



说明:

3. 参照完整性规则
外码要么取空值(班长) 要么取被参照关系里某个元组的主码值


2.3.3 用户定义的完整性


