目的:从数学角度研究和认识关系。
1、1970年E.F.Codd提出关系数据模型,关系代数和关系演算的概念
2、1972年提出了关系的第一、第二、第三范式
3、1974年提出了关系的BC范式
4、目前关系数据库有较强的数学基础
问题:如何通过数学的方式定义关系?
域及其笛卡尔积
关系的码
- 候选码:若关系某属性组的值能唯一标识一个元组,则称该属性组为候选码。
- 主属性:候选码的诸属性称为主属性。
- 非主属性:不包含在任何侯选码中的属性,也称非码属性。
- 主码(Primary key):若一个关系有多个候选码,则选定其中一个为主码。
- 全码:关系的所有属性是这个关系的候选码。
问题1:关系的码指的是什么?码的取值有什么要求?
问题2:Student、Course、CS关系的码是什么?
问题3:你能举出全码的例子吗?
问题4:如何用数学语言描述关系模式?
关系的完整性
关系的完整性:是对关系的某种约束条件或规则。即关系的值发生变化时应满足的一些约束条件。
目的:反映现实世界的要求,从而尽可能保证数据库中数据的正确性。
例如:性别取值最好是‘男’或‘女’,而不是一个毫无约束的字符串。年龄的取值最好是在10到80之间,而不是毫无约束的整数值。
问题:在关系上你还能想到什么样的约束条件?
关系的用户自定义完整性
即用户自己定义的一些完整性约束条件。
例如:年龄的取值在10到80之间、学号的取值为7位正整数、性别的取值为‘男’或‘女’的两值约束、等等。
问题:你还能想到什么需自定义的完整性约束条件?
问题:在数据库数据发生变化时,上述三类关系的完整性约束谁进行检验?若数据的变化违反了这些完整性约束,怎么办?
结论:数据库中数据的变化是否违反了完整性约束由DBMS自动判定,人只需利用DBMS命令告诉DBMS需要定义什么样约束即可。若数据的变化违反了已经定义的完整性约束,则DBMS会按照人们事先告 诉它的处理方式来进行违约处理。
关系操作
关系操作一般是指:增、删、改、查。
查询操作:选择、投影、连接、除、并、差、交,笛卡尔积。(前四种称为专门的关系运算;后四种称传统的集合运算)
关系操作的特点:操作的对象和结果都是关系。
关系代数:关系查询操作的一种数学描述。
学习建议:对每个关系操作思考计算机可能的执行过程,尽可能地想到机械性的操作方法。
外连接运算
外连接:若把舍弃的元组全部保留在结果关系中,而在不匹配的其他属性上填空值,这种连接称为外连接(Outer Join)。
左外连接:若只把左边关系中要舍弃的元组保留就称为左外连接。(Left Outer Joion 或 Left Join)。
右外连接:若只把右边关系中要舍弃的元组保留就称为右外连接。(Right Outer Joion 或 Right Join)。
问题:外连接、左外连接及右外连接满足交换律吗?
问题:这种外连接有什么用?
############
第二章 关系数据库——知识点梳理
参考书本——数据库系统概论 (王珊,萨师煊编著)