1 / 36

第二章 关系数据库

第二章 关系数据库. 2.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算* 2.6 关系数据库管理系统. 2.1 关系数据库概述. 关系数据库系统是支持关系模型的数据库系统 关系模型是建立在集合代数的理论基础上的,关 系的定义和各种操作运算可以用集合代数给出 关系模型三要素 关系数据结构:二维表 关系操作:查询,插入,删除,修改 完整性约束:实体,参照,自定义. 关系数据语言分类:.

lloyd
Download Presentation

第二章 关系数据库

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.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算* 2.6 关系数据库管理系统

  2. 2.1 关系数据库概述 • 关系数据库系统是支持关系模型的数据库系统 • 关系模型是建立在集合代数的理论基础上的,关 系的定义和各种操作运算可以用集合代数给出 • 关系模型三要素 关系数据结构:二维表 关系操作:查询,插入,删除,修改 完整性约束:实体,参照,自定义

  3. 关系数据语言分类: • 关系代数语言:ISBL • 关系演算语言 • 元组关系演算语言:ALPHA,QUEL • 域关系演算语言:QBE • 结构化查询语言SQL

  4. (n)元组 分量 基数 二维表:元组->行 域->列 2.2 关系数据结构 1. 关系 1)域:一组具有相同数据类型的值的集合。 基数 2)笛卡尔积

  5. D1=姓名集合={张清玫,刘逸}D2=性别={男,女}D1=姓名集合={张清玫,刘逸}D2=性别={男,女}

  6. 3)关系 的子集称为定义在域 上的关系,表示成 • 关系的目或度:列的个数 • 属性:列,对每列起个名字 • 候选码:唯一标识元组的最小属性组 • 主属性 :候选码的诸属性 • 非码属性:不包含在任何侯选码中的属性 • 主码:一个关系中选定的一个候选码 • 全码:关系模式的所有属性组是这个关系模式的候选码

  7. 实际应用中关系往往是由笛卡儿积中有意义的 子集构成 如关系: 人员(姓名,性别)

  8. 关系的分类: 基本关系(表) 查询表 视图 • 基本关系的性质: ①列是同质的 ②同一表中列名不同 ③列序无关 ④表中两行的候选码不能相同 ⑤行序无关 ⑥分量是原子的

  9. 属性名 域 映像 依赖关系 2. 关系模式 • 关系的描述称为关系模式 • 关系模式 R ( U, D, DOM, F ) • 简记为 R ( U )或 R (A1, A2, … , An),D及DOM通常直接表示为属性的类型、长度 • “型”和“值”

  10. 3. 关系数据库 • 一个给定应用领域中,相应于所有实体和实体间 联系的关系的集合构成一个关系数据库 • “型”和“值”:关系数据库(模式) • 在一个关系数据库中,关系不能重名

  11. 2.3 关系的完整性 1. 实体完整性:若属性A是基本关系R的主属性,则 A不能取空值 2. 参照完整性 外码定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,称F是基本关系R的外码,R为参照关系,S为被参照关系或目标关系。

  12. 例: 学生(学号,姓名,性别,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 学生(学号,姓名,性别,年龄,班长)

  13. 若属性(或属性组)F是基本关系R的外码,它与基若属性(或属性组)F是基本关系R的外码,它与基 本关系S的主码Ks相对应(关系R、S 不一定是不 同的关系),则对于R中每个元组在F上的值必须 为: • 或者取空值(F的每个属性值均为空值) • 或者等于S中某个元组的主码值

  14. 3. 用户定义的完整性 针对具体关系数据库的约束条件 如学生关系中: 学号的格式形如“PB06210022” 姓名要求不能取空值 年龄小于30岁 性别只能是“男”或“女”

  15. 2.4 关系代数 • 关系代数由一组关系运算组成,是对于关系的操作集。关系运算以一个或多个关系作为操作的对象,运算结果是一个新的关系。用关系运算实现查询。 • 关系代数运算符 • 􀂄 集合运算符:∪(并),-(差),∩(交),×(笛卡儿积) • 􀂄 关系运算符:σ(选择),П(投影),∞(连接),÷(除) • 􀂄 比较运算符: >,≥,<,≤,=,≠ • 􀂄 逻辑运算符:¬(非),∧(与),∨(或) • 关系代数运算可分为传统集合运算和专业的关系运算

  16. 记号: • R(A1, A2, … , An),R,tR,t[Ai] • A={Ai1, Ai2, … , Aik}, , t[A] • trR,tsS, • R(X, Z),当t[X]=x时,x在R中的象集: Zx={t[Z]| t R,t[X]=x}

  17. 1. 并 2.4.1 传统的集合运算 • 关系R与S的并由属于R或属于S的元组组成, • 记为R∪S • R、S应是同类关系 • 结果关系中要去掉重复元组

  18. 2. 差 • 关系R与S的差由属于R不属于S的元组组成 • 记为R-S • R、S应是同类关系

  19. 3. 交 • 关系R与S的交由属于R且属于S的元组组成, • 记为R∩S • R、S应是同类关系

  20. 4. 广义笛卡尔积

  21. R S R×S R ∩S R ∪S R -S

  22. 1. 选择 2.4.2 专门的关系运算 • 单目运算 • 从一个给定的关系中,抽出满足给定条件的那些元组,组成一个新的关系,记为 • 对行操作

  23. 2. 投影 • 单目运算 • 关系R在一组属性A上投影,得到新关系,新关系中只包括属性组A,记为 • 新关系中要去掉重复元组 • 对列操作

  24. 3. 连接 • 双目运算 • 从两个关系 R、S 的笛卡尔乘积中选取满足属性间给定条件的那些元组,组成新关系,记为 • A、B应是度数相等且可比的属性组

  25. 等值连接,即条件为A = B 的连接 • 对行操作 • 自然连接,即条件为R.A =S.A的连接 • R、S具有相同的属性组 • 新关系中要去掉重复的属性 • 同时对行和列操作

  26. R S

  27. 外连接 如果R和S在做自然连接时,把该舍弃的元组也保存在新关系中,在新增加的属性上填空值(null),这种操作称为“外连接”。如果把R中该舍弃的元组保留在新关系中称左连接;把S中该舍弃的元组保留在新关系中称右连接。

  28. 右外连接 左外连接 外连接

  29. 4. 除 • 双目运算 • 关系R(X,Y)在属性组X上各分量的象集包含有关系S(Y,Z)在属性组Y上投影的那些元组,在X上的投影,组成新关系,记为 • R.Y、S.Y应出自相同的域集 • 同时对行和列操作

  30. R S R÷S 象集 Ya1 Ya2 Ya3 Ya4 Y={B,C}

  31. R S R÷S

  32. 例:S (Sno, Sname, Ssex, Sage),C (Cno, Cname, Cpno) SC (Sno, Cno, Grade) 1. 查询选修了2号课程的学生学号 2. 查询选修了2号课程的学生学号和姓名 3. 查询至少选修了一门先行课为1号课程的学生姓名 4. 查询至少选修1号课程和3号课程的学生学号

  33. 5. 查询选修了全部课程的学生学号和姓名 6. 查询所学课程包含学生95001所学课程的学生学号

  34. 2.6 关系数据库管理系统 • 支持关系模型的系统,简称为关系系统 • 一个关系数据库管理系统至少应支持: • 关系数据库(即关系数据结构) • 支持选择、投影和连接操作 • 按支持关系模型程度的不同分类: • 表式系统:仅支持关系数据结构,不支持集合级操作 • 最小关系系统:支持关系结构和选择、投影、连接集合 操作 • 关系完备系统:支持关系结构和所有关系代数操作 • 全关系系统:支持关系模型的所有特征

More Related