数据库复习—第二章
2.1 关系数据结构及形式化定义
-
关系数据模型的三要素:
- 关系数据结构
- 关系操作集合
- 关系完整性约束
-
基本关系的6条性质:
- 列是同质的
- 不同的列可出自同一个域
- 其中的每一列称为一个属性
- 不同的属性要给予不同的属性名
- 列的顺序无所谓,列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 行的顺序无所谓,行的次序可以任意交换
- 分量必须取原子值(这是规范条件中最基本的一条)
-
关系术语:
- 元组:关系中的每个元素是关系中的元组
- 元组个数:表中行的个数
- 基数:一个域允许的不同取值个数
- 属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性
- 目或度或元数或n元组的n:关系模型中属性的个数,也可以说表中列的个数
-
关系模式与关系:
- 关系模式:
- 对关系的描述
- 静态的、稳定的
- 关系:
- 关系模式在某一时刻的状态或内容
- 动态的、随时间不断变化的(因为关系操作在不断地更新着数据库中的数据)
- 关系模式:
2.2 关系操作
-
关系操作:
- 查询操作:选择、投影、连接、除、并、差、交、笛卡尔积(5种基本操作)
- 数据更新:插入、删除、修改
-
关系操作的特点:
- 集合操作方式:操作的对象和结果都是集合,一次一集合的方式
2.3 关系的完整性
-
完整性约束:
-
实体完整性(主码):若属性(或属性组)A是基本关系R的主属性,则属性A不能取空值(空值就是“不知道”或“不存在”或“无意义”的值)
- 例:选修(学号,课程号,成绩)
“学号、课程号”为主码
“学号”和“课程号”两个属性都不能取空值
- 例:选修(学号,课程号,成绩)
-
参照完整性(外码):若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
-
或者取空值(F的每个属性值均为空值)
-
或者等于S中某个元组的主码值
-
例:学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名)
学生关系中每个元组的“专业号”属性只取两类值:
1. 空值,表示尚未给该学生分配专业
2. 非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业
-
-
用户定义完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
- 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能
-
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性
-
-
有关主码和外码概念和判断:
-
主码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则该属性组为候选码
若一个关系有多个候选码,则选定其中一个为主码
- 候选码的诸属性称为主属性
- 不包含在任何侯选码中的属性称为非主属性或非码属性
-
外码:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码
如果F与Ks相对应,则称F是R的外码
基本关系R称为参照关系,基本关系S称为被参照关系或目标关系
- 例:学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名)
“专业号”属性是学生关系的外码
学生关系为参照关系,专业关系是被参照关系
- 例:学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名)
-
2.4 关系代数
-
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
-
运算对象是关系,运算结果亦为关系
-
传统的集合运算:从行的角度进行(并、差、交、笛卡尔积)
- 笛卡尔积:关系的笛卡尔积的元素是元组
- 笛卡儿积的目:属性个数,n元组的n,元数(列数)
- 笛卡儿积的基数:元组数(行数)
- 笛卡尔积:关系的笛卡尔积的元素是元组
-
专门的关系运算:不仅涉及行而且涉及列(选择、投影、连接、除)
- 选择:在关系R中选择满足给定条件的诸元组(是从行的角度进行运算)
- 投影:从R中选择出若干属性列组成新的关系(是从列的角度进行运算)
- 连接:也称为θ连接,从两个关系的笛卡尔积中选取属性间满足一定条件的元组
-
等值连接和自然连接的异同:
- 等值连接:θ为“=”的连接运算
- 自然连接:是一种特殊的等值连接
- 两个关系中进行比较的分量必须是相同的属性组
- 在结果中把重复的属性列去掉
本文地址:https://blog.csdn.net/weixin_45883310/article/details/110651912
上一篇: 华丽重彩的*,让我美不胜收!
下一篇: scala 语法(一)