html5-img
1 / 76

第二章 关系数据库

第二章 关系数据库. 本章内容概述. 关系模型的基本概念 关系的码 关系代数 关系演算 关系代数表达式的优化. §2.1 关系模型概述. 关系数据库,是建立在关系数据模型基础上的数据库系统 关系模型又是基于数学方面的数据抽象理论 关系数据库,用数学的方法来处理数据库中的数据. § 2.1.1 关系数据模型的基本概念. 关系模型的组成: 数据结构 关系的操作 完整性约束. 数据结构: 关系模型中数据的逻辑结构是一张二维表 关系的操作: ( 1 )查询操作: A 选择 B 连接 C 除 D 并 E 交 F 差

Télécharger la présentation

第二章 关系数据库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 关系数据库

  2. 本章内容概述 • 关系模型的基本概念 • 关系的码 • 关系代数 • 关系演算 • 关系代数表达式的优化

  3. §2.1 关系模型概述 • 关系数据库,是建立在关系数据模型基础上的数据库系统 • 关系模型又是基于数学方面的数据抽象理论 • 关系数据库,用数学的方法来处理数据库中的数据

  4. § 2.1.1关系数据模型的基本概念 关系模型的组成: • 数据结构 • 关系的操作 • 完整性约束

  5. 数据结构: 关系模型中数据的逻辑结构是一张二维表 • 关系的操作: (1)查询操作:A选择 B连接 C除 D并 E交 F差 (2)更新操作:A增加 B删除 C修改

  6. 表达关系操作的关系数据语言 • ① 关系代数 关系代数是用对关系的运算来表达查询要求的方式。 • ② 关系演算 关系演算是用谓词来表达查询要求的方式。 • ③ 介于关系代数和关系演算之间的语言SQL(Structured Query Language)

  7. 完整性约束:(定义P37) • (1)实体完整性 • (2)参照完整性 • (3)用户定义的完整性

  8. § 2.1.2笛卡尔积 设D1, D2,…,Dn为域,则 D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1, …,n}为D1, D2,…,Dn的笛卡尔积。 其中每个元素(d1,d2, …,dn)称为一个n元组(n-Tuple),简称 元组(Tuple),元素中每个di称为分量(Component),diDi。 若Di的基数为mi,笛卡尔积的基数M为笛卡尔积可以表示为一个 二维表,是元组的集合。

  9. § 2.1.3关系的定义 • 笛卡尔积D1D2 …Dn的任一子集称为在域D1, D2, …,Dn上的关系,表示为R(D1, D2, …, Dn ) • 这里R表示关系的名字,n是关系的目或度(Degree)。 • 关系是笛卡尔积的有限子集,所以关系也是一个二维表。表中的每一行对应一个元组,表中的每一列对应一个域。由于域可以相同,为了加以区别,必须对每列取一个名字,称为属性。关系中属性的个数称为元数,元组中的一个属性值称为分量。

  10. 形式化的关系定义同样可以把关系看成二维表, 给表的每一列取一个名字,称为属性(attribute)。n 目元关系有 n 个属性, 属性的名字要唯一。属性的取值范围Di(i=1, …,n) 称为值域(Domain)。在实际应用的数据库中,通常关系称为数据表,属性被称为字段,元组被称为记录。

  11. § 2.1.4关系的性质 • 同一属性的数据具有同质性 • 同一关系的属性名具有不能重复性 • 关系中的列位置具有顺序无关性 • 关系具有元组无冗余性 • 关系中的元组位置具有顺序无关性 • 关系中每一个分量都必须是不可分的数据项

  12. 关系性质1——同质的列

  13. 关系性质2——不同的属性名 姓名2 曾用名

  14. 关系性质3——属性无序

  15. 重复的 元组 重复的 元组! 关系性质4——元组不重复

  16. 关系性质5——元组无序

  17. 关系性质6——分量是原子 规范化关系 非规范化关系

  18. §2.2 关系的码(键)

  19. § 2.2.1侯选码(键)与主码(键) • 能唯一标识关系中元组的一个属性或属性集,称为候选码 (Candidate key),也称候选关键字。 • 如“学生关系”中的学号能唯一标识每一个学生,则属性“学号”是学生关系的候选码。在“选课关系” 中,只有属性的组合“学号+ 课程号”才能唯一地区分每一条选课记录,则属性集“学号+ 课程号”是选课关系的候选码。

  20. 关系的码(键)

  21. § 2.2.2外部关系码(键) 设F 是基本关系R 的一个或一组属性, 但不是关系R 的主码( 或候选码) 。如果 F 与基本关系 S 的主码 Ks 相对应, 则称 F 是基本关系 R 的外部关系码,也简称外码 (Foreign key), 并称基本关系R为参照关系 (Referencing Relation), 基本关系 S 为被参照关系 (Referenced Relation) 或目标关系(Target Relation)。

  22. 外部关系码(键) 学生关系 课程关系 学习成绩关系 外部键 主键 主键 外部键

  23. 参照完整性 职工表(R2) 部门表(R1) 外部关系键 主关系键

  24. § 2.2.3关系模型的完整性 关系模型的实体完整性(Entity Integrity)   若属性A是基本关系R的主属性,则属性A的值不能为空值。 (1)实体完整性能够保证实体的唯一性 (2)实体完整性能够保证实体的可区分性 例如在学生表中,由于“学号”属性是码,则“学号”值不能为空 值,学生的其他属性可以是空值,如“年龄”值或“性别”值如果 为空,则表明不清楚该学生的这些特征值。

  25. 参照完整性 • 关系模型的参照完整性(Referential Integrity): 若属性( 或属性组)F 是基本关系R 的外码,它与基本关系S 的主码Ks 相对应( 基本关系R 和S 不一定是不同的关系), 则对于R 中每个元组在F上的值必须取空值(F的每个属性值均为空值) 或者等于S 中某个元组的主码值。

  26. 例如,对于上述教师表中"教师号"属性只能取下面两类值:空值,表示尚未给该教师分配系别:非空值,该值必须是系别关系中某个元组的"系编号"值。一个教师不可能分配到一个不存在的系中,即被参照关系"教师"中一定存在一个元组,它的主码值等于该参照关系"教师"中的外码值。例如,对于上述教师表中"教师号"属性只能取下面两类值:空值,表示尚未给该教师分配系别:非空值,该值必须是系别关系中某个元组的"系编号"值。一个教师不可能分配到一个不存在的系中,即被参照关系"教师"中一定存在一个元组,它的主码值等于该参照关系"教师"中的外码值。

  27. 用户定义的完整性 用户定义的完整性就是针对某一具体关系数据库的约束条件, 它反映某一具体应用所涉及的数据必须满足的语义要求。 例如,学生考试的成绩必须在O到100 之间,在职职工的年龄不能大于60岁等,都是针对具体关系提出的完整性条件。

  28. § 2.3关系数据库模式与关系数据库

  29. 2.3.1关系数据库模式与关系数据库 一个关系的属性名的集合 R(Al,A2, …,An) 叫做关系模式,一般可简化为 R(U)或R(A1,A2, …,An) 其中 R 为关系名,A1,A2, …,An 为属性名 (i=1,2, …,n) 。 关系模式可形式化地表示为 R(U,D,dom,F)

  30. 其中U 为组成关系的属性名的集合,D 为属性组U 中属性所来自的域,dom 为属性和域之间的映像集合,F 为关系中属性间的依赖关系集合。在书写过程中, 一般用下划线表示出关系中的主码。

  31. 由定义可以看出,关系模式是关系的框架( 或者称为表框架), 是对关系结构的描述。它指出了关系由哪些属性构成。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,它是关系模式在某一时刻的状态或内容,这主要是由于关系的各种操作在不断地更新着数据库中的数据。

  32. 一组关系模式的集合叫做关系数据库模式。关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,也就是前面所讲过的关系模式,可以看作是关系的型。与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例, 可以看作是关系的值。

  33. § 2.3.2关系数据库 • 关系数据库 • 在给定的应用领域中,相应所有实体及 实体之间联系所形成关系的集合 • 关系数据库模式 • 关系数据库中所有关系模式的集合 • 关系数据库的值 • 关系数据库在某一时刻对应关系的集合

  34. 某关系的结构 整个数据库 某关系的实例 关系数据库模式

  35. §2.4 关系代数

  36. 2.4.1关系代数的分类及其运算符 关系代数的运算由运算对象、运算符和运算结果三大要素组成。 运算对象为关系,运算结果亦为关系,运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。

  37. (1) 集合运算符 : ∪ ( 并运算 ), 一 ( 差运算 ),∩( 交运算 ), × ( 广义笛卡尔积 ) • (2) 专门的关系运算符: σ ( 选择 ), π( 投影 ), ⋈ ( 连接 ), ÷ ( 除 ) • (3) 比较运算符 : > (大于), ≥ (大于等于),<(小于),≤ (小于等于),=(等于),≠ (不等于) • (4) 逻辑运算符: ¬( 非), ∧ ( 与), ∨ ( 或)

  38. 比较运算符和逻辑运算符主要用来辅助专门的关系运算。关系代数一般可分为传统的集合运算和专门的集合运算两类操作。传统的集合运算将关系看成元组的结合,其运算是从关系的 "水平" 方向 ( 即行的角度 ) 来进行,而专门的关系运算不仅涉及行,而且还涉及列。

  39. § 2.4.2传统的集合运算 传统的集合运算是二目运算,它包括并、差、交、广义笛卡尔积四种运算。 设关系R 和S 具有相同的目n( 即两个关系都有n 个属性), 并且相应的属性取自同一个域, 则定义并、差、交、广义笛卡尔积运算如下:

  40. 并(Union)运算 关系 R 与关系 S 的并运算表示为 : R∪S={t|t∈R V t∈S } 上式说明,R 和S 并的结果仍为n 目关系, 其数据由属于R 或属于S 的元组组成。运算结果 也可用图 2.1所示的阴影部分表示。 图2.1 集合R和S并运算结果示意图 R∪S

  41. 差(Differrence)运算 关系R 与关系S 的差运算表示为: R-S={t|t∈R∧¬t∈S } 上式说明:R 和S 差运算的结果关系仍为n 目关系,其数据由属于R 而不属于S 的所有元 组组成。运算结果也可用图2.2 所示的阴影部分 表示。 图2.2 集合R和S差运算结果示意图 R - S

  42. 交(Intersection)运算 关系R 与关系S 的交运算表示为: R∩S={t|t∈R∧t∈S } 关系的交也可以用差来表示,即: R∩S=R一(R-S) 上式说明:R 和S 交运算的结果关系仍为n 目关系,其数据由既属于R 同时又属于S的元组 组成。运算结果也可用图2.3 所示的阴影部分表示。 图2.3 集合R和S的交运算结果示意图 R∩S

  43. 关系并运算 R S R∪S

  44. 关系差运算 R S R-S

  45. 关系交运算 R S R∩S

  46. 广义笛卡尔积 设两个分别为n 目和m 目的关系R 和S,它们的广义笛卡尔积是一个(n + m)目的元组集合。 元组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。若R 有 Kl 个 元组,S 有 K2 个元组,则关系R和关系S 的广义笛卡尔积应当有 Kl × K2 个元组。R 和S的 广义笛卡尔积表示为: R×S={t1,t2|t1∈R∧t2∈S }

  47. 广义笛卡儿积 R×S R S

  48. § 2.4.3专门的关系运算 1. 选择 (Selection) 运算 选择又称为限制,它是在关系 R 中选择满足条件的 元组,记作: σF(R)={t|t∈R∧F(t)='真'} 其中 F 表示选择条件,它是一个逻辑表达式,取逻辑 值“真”或“假”。

  49. 选取运算 关系S,作选择运算σA=d(S),其结果如下所示: S σA=d(S) 选择条件F(t)为A=d

  50. 2.投影 (Projection) 运算 关系 R 上的投影是从 R 中选择出若干属性列组成新的关系。记作 πA (R)={t[A]| t∈R} 其中 A 为 R 中的属性列集。

More Related