第三讲拖的时间有点久了,主要是国庆没啥斗志。但这章的内容很重要,关系代数的运算算是一个大重点了,虽然相关概念因为之前自学过sql所以都懂,但是用数学公式表示仍然很有难度。、
老师还专门整了一个额外课件讲关系代数的例题,但是没有整理到这里面来。之后我啃明白了看看能不能单独写一篇。
目录
03 关系数据库系统
关系数据库系统就是基于关系模型的数据库系统。70年代末以后所问世的数据库产品大多为关系模型,并且取代了其它数据库系统而成为主流。关系数据库的崛起与它明显的优越性有关。
1 关系数据库系统的优点
-
数据结构简单:
关系数据库使用统一的二维表作为存储结构,不存在复杂的内部连接关系。
-
用户使用方便:
不涉及系统的内部物理结构;所用数据语言均为非过程性语言,操作简单。
-
功能强:
模型的表达能力强;可方便地修改数据间关系;以及路径选择的灵活性、存储结构的简单性等。
-
数据独立性高:
关系数据库的组织、使用不涉及物理存储因素和过程性因素,所以数据的物理独立性很高。
-
理论基础深
-
可移植性好
-
标准化程度高
数据子语言SQL具有统一标准
-
分布式功能
Client/Server分离;分布式数据库
-
开放性
通过提供各种网络环境下的数据访问接口实现系统的开放性
2 关系数据库系统衡量准则
初期的‘六条准则’(1974年IFIP会议)
-
提供高度的数据独立性
-
提供严格的数据视图
-
视图是一种虚拟的关系,可由用户通过数据库中的基本关系导出,可直观理解为一张”虚拟的表“,其中的数据由用户对原始表数据筛选而来。
-
-
减轻DBA的工作
-
DBA是数据库管理员的意思
-
-
建立理论基础
-
事务管理与文件管理相结合
-
操作对象是记录集合,而不是单个记录
完全关系型的12条严格标准(1985年)
-
信息准则
关系数据库的所有信息都应能在逻辑一级唯一地用‘表’中的值显式表示;数据库的结构描述信息也应在逻辑上组织成关系形式
-
确保访问准则
应能保证用逻辑方式依靠表名、关键字值与列名的组合来访问数据库中每一个原子数据
-
空值的关系处理准则
系统应该有处理空值的能力。定义空值的比较运算,含有空值的表达式计算,含有空值成员的集合上的统计运算等。
-
基于资源管理的动态联机目录
‘数据库的描述信息’与‘用户数据’具有相同的表示形式与操作方式。被授权用户可以采用同样的方式对‘数据库的描述信息’进行查询与扩充。
-
统一易用的数据子语言
-
视图更新准则
-
高级的插入、删除及修改操作
-
物理数据独立性
-
逻辑数据独立性
-
数据完整性原则
-
分布独立性
-
无损害原则
如果某关系数据库管理系统允许使用每次处理一个元组的低级语言,则此种使用不能损害数据完整性准则。
依据上述衡量准则对关系数据库产品的类别划分
基于上面的12条标准,关系数据库产品可分为三类:
-
半关系型系统:满足12条中的少量要求
-
基本关系型系统:满足12条中的大部分要求
-
完全关系型系统:严格符合全部12条要求
3 关系模型数学理论——关系代数(重点)
3.1 名词术语解释
二维表(简称表)的组成有表框架和元组。
-
表框架(Frame)由个命名的属性组成。每个属性有一个取值范围,即值域。
-
被称为表的元数(n元表)。
元组:
-
在表框架中可按行存放数据,其中的每行数据被称为元组。
-
一个元组由n个分量组成,它们对应着表框架中的属性。
-
一个表框架可以存放m个元组,m被称为表的基数。
键:
-
在二维表中能够唯一最小标识元组的属性集称为该表的键,或“关键字”。
-
在键中可选中一个键,称为“主键”,其余为“候选键”。
外键:
-
如果表A中的属性集F是表B的键,则F为表A的“外键”。
-
其中,表A称为“引用表”,表B为“被引用表”。
-
表A和表B可以是一个表。
3.2 关系上的操作
关系模型上的数据查询操作可分为四类:增、删、改、查。
-
数据查询:
-
单张表的数据查询:行选择(选择满足某些逻辑条件的元组)--列指定(指定关系中的一些属性)
-
两张表的~:先将两种表合并为一张,再同单张表一样进行查询。
-
多张表的~:将多张表两两合并整合成一张大表,再进行查询。我对这部分持保留意见
-
-
数据删除:
-
数据删除的基本单位是元组。确定被删除的元组的方式可以参照数据查询中确定元组的方式。
-
一次删除只能删除一个关系内的元组(就是只能在一张表内删)。
-
-
数据插入:在指定关系中插入一个或多个新的元组。同样一次插入操作只能向一个关系中新增元组。
-
数据修改:在一个关系中修改指定元组的某些列上的值。
-
数据修改操作的具体实现方式是先删除要修改的元组,再插入修改后的新元组。
-
3.3 用关系代数表示关系
表的表示方式
有一个二维表,其数据如下:
sno | name | dept |
---|---|---|
1 | 张三 | 数学 |
2 | 李颖 | 英语 |
3 | 王华 | 语文 |
上述关系可表示为下面的集合:S={(1,张三,数学),(2,李颖,英语),(3,王华,语文)}
关系运算的表示
-
并操作:
(这里R和S都是集合,下同)
-
交运算:
-
差运算:
-
投影运算:设关系R有n个属性
,在其中选取m个属性
的投影运算表示为
-
直观理解:运算结果是从R中选择出了这m列。
-
-
选择运算:
,其中F是条件,由若干基本逻辑条件经逻辑运算符(
)组合成
-
例如:查询‘人事档案’表E中‘年龄’小于或等于20岁的女职工
-
写法:
-
-
可以结合投影和选择运算来实现单张表的查询操作,形如:
。
-
可以简写为:
。未加括号时,运算顺序为从右到左。
-
-
笛卡尔乘积运算:
-
除运算:
结果元组为关系S的所有元组在关系R中所对应的同一个值。看图理解可能更直观:
-
联接运算:
(原本F应该写在符号正下方的,打不出来了)
F表示连接条件。从关系R和S中分别任取一个元组r和s,如果它们满足联接条件F,则 将r和s合并构成结果关系T中的一个元组。且有以下推导公式:
-
自然联接运算:不写联接条件F,直接写
就是自然联接运算。这时,联接条件就是R和S中的公共属性完全相同。下面是一个例子:
-
-
此外还有外联接、左外联接、右外联接。(TODO:这部分PPT没详写,之后得自己补上)