数据库系统概论 – 关系数据库
关系数据库是创建在 关系模式 上的数据库,关系型数据库中有许多张表,每张表示意事实世界的各种实体。各种实体之间的分割均用 关系模型 来示意
关系模式由 关系数据结构 、 关系操作汇合 和关系完整性束缚 三局部组成,所有关系的汇合形成关系数据库
关系模式是 型,是关系的形容,是动态的,稳固的
关系(一张具体的二维表)是 值,是元组的汇合,是动静的,随工夫一直变动的
关系数据结构
关系
笛卡儿积
给定一组域,容许其中某些域是雷同的,这些域相乘即为域的笛卡儿积,如:D1(A,B), D2(C,D)
,则 D1 * D2 = {(A,C),(A,D),(B,C),(B,D)}
。一个域容许的不同取值个数称为这个 域的基数
关系
D1 * D2 * D3 * ... * Dn
的子集叫做在域 D1, D2, D3, ... , Dn
上的关系,示意为 R(D1, D2, D3, ... , Dn)
,R 示意关系的名字,n 称为关系的 目或 度
关系的三种类型:根本关系(理论存储数据的逻辑示意)、查问表(查问后果对应的表)和视图表(由根本表和其它视图表导出的表,不存储理论数据)
码和其分类
若关系中的 某一属性 或属性组 的值能惟一的标识一个元组,而其任何子集都不能标识,则称该属性组为 候选码 。如学生实体中,能够应用 学号
辨别实体,也能够应用 姓名 + 班级
来辨别学生,则学生实体的候选码为: 学号
和 姓名 + 班级
若一个关系有多个候选码,能够抉择其中一个作为 主码 ,如学生实体中能够抉择 学号
或 姓名 + 班级
作为主码
候选码中诸属性称为 主属性 ,不蕴含在任何候选码中的属性称为 非主属性 或非码属性 ,如果某个关系模式的所有属性都是这个关系模式的候选码,则成为 全码
关系操作
基本操作
关系模式最罕用的关系操作包含 查问 和插入、删除、批改
查问操作 分为:抉择、投影、连贯、除、并、差、交、笛卡儿积
5 种根本查问操作:抉择、投影、并、差、笛卡儿积,其余操作依据基本操作定义和导出
关系数据语言的分类
关系代数 用对关系的运算来表白查问要求,关系演算 则用谓语表白查问要求,结构化查询语言(SQL)介于关系代数和关系演算之间
SQL 不仅仅有数据查问性能,还有数据定义和数据管制性能
关系的完整性
实体完整性束缚 和参照完整性 由关系零碎 主动反对,称为 关系的俩个不变性
用户定义的完整性是由 应用领域 须要遵循的约束条件
实体完整性束缚
实体的所有主属性都不能为空,如果呈现了就不能惟一确定一个实体
参照完整性束缚
一个关系模式的属性(r1)中可能蕴含另一个关系模式的主码(r2),则这个属性在 r1 上称为参照 r2 的外码,r1 和 r2 的取值须要统一,能够取空则代表其余含意
参照完整性束缚是关系与关系之间的束缚,即表与表之间的束缚
用户定义的完整性束缚
某一具体利用所波及数据必须满足的语义,如不能为空,不能为负等
关系代数
关系代数是一种形象的语言,是用对关系的运算表白查问,依照运算符的不同能够分为 传统的汇合运算 和专门的关系运算
传统的汇合运算
- 交:由即属于 R 又属于 S 的元组组成
- 并:由属于 R 或属于 S 的元组组成,如果两张表当中都呈现了同一个元组,新建的表当中只会呈现一次
- 差:R-S 示意属于 R 而不属于 S 的所有元组组成
- 笛卡儿积:汇合相乘,n 目和 m 目标关系 R 和 S 的笛卡儿积是一个(n+m)列的元组汇合
专门的关系运算
- 抉择:抉择关系 R 中满足给定条件的元组
- 投影;从关系 R 中抉择若干属性列组成新的关系
- 连贯 :从两个关系的笛卡儿积中选取属性间满足肯定条件的元组, 等值连贯 是选取属性值雷同的元组,天然连贯 是一种非凡的等值连贯,要求关系 R 中的属性 A 和关系 S 中的属性 B 名字雷同,在后果中把反复的属性列去掉,非等值连贯 是操作符号不是 = 的连贯,如:!= > < 等
- 除运算:关系 R 除以关系 S 的后果为关系 T,则 T 蕴含所有在 R 但不在 S 中的属性及其值,且 T 的元组与 S 的元组的所有组合都在 R 中
两个关系 R 和 S 在做天然连贯时,抉择两个关系在公共属性上值相等的元组形成新的关系,关系 R 中某些元组有可能在 S 中不存在公共属性上值相等的元组,从而造成 R 中这些元组在操作时被舍弃了,S 中某些元组也可能被舍弃,被舍弃的元组叫做 悬浮元组
如果把悬浮元组也保留在后果关系中,而在其余属性上填 NULL,则成为 外连贯 (此时右边和左边关系的悬浮数组都保留在后果关系中),只保留右边关系 R 中的悬浮元组叫做 左外连贯 ,只保留左边关系 S 中的悬浮元组叫做 右外连贯