数据库原理及应用教学PPT.ppt_第1页
数据库原理及应用教学PPT.ppt_第2页
数据库原理及应用教学PPT.ppt_第3页
数据库原理及应用教学PPT.ppt_第4页
数据库原理及应用教学PPT.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理及应用 第四讲 上节回顾 access概述创建数据库数据库表的建立与操作 本节内容 一 关系代数二 关系数据库规范化理论 一关系代数 关系模型源于数学 关系是由元组构成的集合 可以通过关系的运算来表达查询要求关系代数是关系操作语言的一种传统的表示方式 它是一种抽象的查询语言 运算的三大要素运算对象 运算符 运算结果关系代数的运算对象 运算结果都是关系关系代数的运算符集合运算符 专门的关系运算符 比较运算符和逻辑运算符 关系操作 传统的关系运算 将关系看成元组的集合 运算从关系的 水平 方向的角度来进行 并 union 交 intersection 差 difference 广义笛卡尔乘积 extendedcartesianproduct 专门的关系运算 不仅涉及行而且涉及列 选择 select 投影 project 连接 join 除 divide 比较运算符和逻辑运算符 辅助专门的关系运算符进行操作 关系运算符 关系运算符 续 传统的集合运算 传统的集合运算是二目运算设关系r和s均是n元关系 且相应的属性值取自同一个值域 则可以定义三种运算 并运算 交运算 差运算 1 并运算 关系r与关系s的并记为 r s t t r t s 其结果仍是n元关系 由属于r或属于s的元组组成 2 交运算 关系r与关系s的交记为 r s t t r t s 其结果仍是n目关系 由属于r并且也属于s的元组组成 3 差运算 关系r与关系s的差记为 r s t t r t s 其结果仍是n目关系 由属于r并且不属于s的元组组成 4 广义笛卡尔积 rn目关系 k1个元组sm目关系 k2个元组r s列 n m 列的元组的集合元组的前n列是关系r的一个元组后m列是关系s的一个元组行 k1 k2个元组r s trts tr r ts s 广义笛卡尔积示例 专门的关系运算 专门的关系运算包括 选择投影连接除 1 选择 selection 1 选择又称为限制 restriction 2 选择运算符的含义在关系r中选择满足给定条件的诸元组 f r t t r f t 真 f 选择条件 是一个逻辑表达式 基本形式为 x1 y1 x2 y2 比较运算符 或 x1 y1等 属性名 常量 简单函数 属性名也可以用它的序号来代替 逻辑运算符 或 表示任选项 表示上述格式可以重复下去 选择 续 3 选择运算是从行的角度进行的运算4 举例设有一个学生 课程数据库 包括学生关系student 课程关系course和选修关系sc 选择 续 a student 选择 续 b course 选择 续 c sc 选择 续 a student 例1 例2 next 选择 续 例1 查询信息系 is系 全体学生 sdept is student 或 5 is student 结果 选择 续 例2 查询年龄小于20岁的学生 sage 20 student 或 4 20 student 结果 2 投影 projection 1 投影运算符的含义从r中选择出若干属性列组成新的关系 a r t a t r 其中 是投影运算符r是关系名a是被投影的属性或属性组t a表示t这个元组中相应于属性 集 a的分量 也可以表示为t a 例如 选择sname sdept两个列构成新关系 sname sdept student 投影 续 2 投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列 而且还可能取消某些元组 避免重复行 投影 续 a student 例4 例3 next 投影 续 3 举例 例3 查询学生的姓名和所在系即求student关系上学生姓名和所在系两个属性上的投影 sname sdept student 或 2 5 student 结果 投影 续 例4 查询学生关系student中都有哪些系 sdept student 结果 3 连接 join 1 连接也称为 连接2 连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组rs tr r ts s tr a ts b a和b 分别为r和s上度数相等且可比的属性组 比较运算符连接运算从r和s的广义笛卡尔积r s中选取 r关系 在a属性组上的值与 s关系 在b属性组上值满足比较关系的元组 连接 续 3 两类常用连接运算等值连接 equijoin 什么是等值连接 为 的连接运算称为等值连接等值连接的含义从关系r与s的广义笛卡尔积中选取a b属性值相等的那些元组 即等值连接为 rs tr r ts s tr a ts b a b 连接 续 自然连接 naturaljoin 什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义r和s具有相同的属性组brs tr r ts s tr b ts b 连接 续 4 一般的连接操作是从行的角度进行运算 自然连接还需要取消重复列 所以是同时从行和列的角度进行运算 连接 续 5 举例 例5 r s rs 连接 续 rs 连接 续 r s rs 连接 续 等值连接rs 连接 续 r s rs 连接 续 自然连接rs 自然连接与等值连接的差别 自然连接与等值连接的差别为 自然连接要求相等的分量必须有共同的属性名 等值连接则不要求 自然连接要求把重复的属性名去掉 等值连接却不这样做 象集z 给定一个关系r x z x和z为属性组 当t x x时 x在r中的象集 imagesset 为 zx t z t r t x x 它表示r中属性组x上值为x的诸元组在z上分量的集合 象集举例 在关系r中 a可以取四个值 a1 a2 a3 a4 a1的象集为 b1 c2 b2 c3 b2 c1 a2的象集为 b3 c7 b2 c3 a3的象集为 b4 c6 a4的象集为 b6 c6 r 4 除 division 给定关系r x y 和s y z 其中x y z为属性组 r中的y与s中的y可以有不同的属性名 但必须出自相同的域集 r与s的除运算得到一个新的关系p x p是r中满足下列条件的元组在x属性列上的投影 元组在x上分量值x的象集yx包含s在y上投影的集合 r s tr x tr r y s yx yx x在r中的象集 x tr x 除 续 r s 分析 在关系r中 a可以取四个值 a1 a2 a3 a4 a1的象集为 b1 c2 b2 c3 b2 c1 a2的象集为 b3 c7 b2 c3 a3的象集为 b4 c6 a4的象集为 b6 c6 r 分析 续 s在 b c 上的投影为 b1 c2 b2 c1 b2 c3 只有a1的象集包含了s在 b c 属性组上的投影所以r s a1 s 除 续 除操作是同时从行和列角度进行运算 五综合举例 c sc 综合举例 续 查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系k 然后求 sno cno sc k 综合举例 续 sno cno sc 95001象集 1 2 3 95002象集 2 3 cno k 1 3 于是 sno cno sc k 95001 综合举例 续 a student 综合举例 续 b course 综合举例 续 c sc next 查询修2号课程的学生的学号 sno cno 2 sc 95001 95002 查询计算机 cs 系修2号课程的学生的姓名和成绩 sname grade cno 2 sc sdept cs student 李勇 85 综合举例 续 综合举例 续 查询至少选修了一门其直接先行课为5号课程的学生姓名 sname cpno 5 coursescstudent 或 sname cpno 5 course sc sno sname student 或 sname sno cpno 5 course sc sno sname student 关系代数 l关系代数关系代数运算并 差 交 笛卡尔积 投影 选择 连接 除基本运算并 差 笛卡尔积 投影 选择交 连接 除可以用5种基本运算来表达引进它们并不增加语言的能力 但可以简化表达 关系代数表达式与语言 l关系代数表达式关系代数运算经有限次复合后形成的式子典型关系代数语言isbl informationsystembaselanguage 由ibmunitedkingdom研究中心研制用于prtv peterleerelationaltestvehicle 实验系统 小结 关系代数传统的关系运算 并 union 交 intersection 差 difference 广义笛卡尔乘积 extendedcartesianproduct 专门的关系运算 选择 select 投影 project 连接 join 除 divide 比较运算符和逻辑运算符 二关系数据库规范化理论 为了满足用户对业务和系统性能等的需求 需要对数据库进行设计 关系数据库规范化理论就是数据库设计的理论基础 在数据库应用中具有重要的作用 1函数依赖1 1为什么要讨论函数依赖1 2函数依赖基本概念2关系规范化范式的概念以及如何进行模式分解 1 1为什么要讨论函数依赖 假设有描述学生选课及住宿情况的关系模式 s l c sno sdept sloc cno grade 其中各属性分别为 学号 学生所在学院 学生所住宿舍楼 课程号和分数假设每个学院的学生都住在一栋宿舍楼里 刚入学时确定的每个学生的学号第三位代表所在学院 sno cno 为主码 s l c关系模式的数据示例 假设每个院系的学生都住在同一栋宿舍楼 sno cno 为主码 数据冗余 学生所在学院与对应的宿舍楼信息 0513101同学转到光电学院 更新 计算机学院新来了一名学号为0513103同学 插入 0532102同学不选os课了 删除 问题 上面例子中的数据冗余以及在对其进行数据更新 插入 删除时存在的问题统称为操作异常 为什么会产生操作异常 因为关系模式没有设计好 某些属性之间存在着 不良 的函数依赖 1 2函数依赖基本概念 对函数y f x 给定一个x的值 都会有一个y值和它对应 也可以说x函数决定y 或y函数依赖于x 表示为 x y学生所在院系 f 学号 只要给出一个具体的学号 就会有唯一一个学生所在院系和学号对应 可以说 学号 函数决定 学生所在院系 或 学生所在院系 函数依赖于 学号 表示为 学号 学生所在院系 学号0532101 第3位代表学生所在学院 3 为光电学院 函数依赖分类 s l c表 sno和cno共同决定grade 完全函数依赖 主码中的sno决定sdept 部分函数依赖 sno决定sdept sdept决定sloc 从而sno决定sloc 传递函数依赖 将s l c关系模式分解 将s l c拆分为s l表和s c表 s l表 s c表 主码 sno 主码 sno cno 好 的表 不好 的表 0513101号同学在s l c中有两行数据 而对于一个学生来说 他的所在学院和所住公寓是唯一的 2关系规范化 如何正确改造复杂关系模式 克服种种操作异常 按照一定的规范进行模式分解 把一个关系模式分解成两个或多个关系模式 在分解过程中消除 不良 的函数依赖 关系规范化 范式 关系数据库中的关系要满足一定的要求 若关系满足不同程度的要求就称其为不同的范式 normalform 范式的种类 第一范式 1nf 第二范式 2nf 第三范式 3nf 等r是第二范式的可以写成r 2nf 以此类推 还有3nf 4nf 5nf等 第一范式 第一范式 1nf 不包含重复组的关系 即不包含非原子项的属性 关系模式中的码 设用u表示关系模式r的属性全集 f表示关系模式r上的函数依赖集 候选码 设k为r u f 中的属性或属性组 若k完全决定u 则k为r的候选码 主码 关系r u f 中可能有多个候选码 则选其中一个作为主码 全码 候选码为整个属性组 包含在任一候选码中的属性称为主属性 不包含在任一候选码中的属性称为非主属性 主属性与非主属性的示例 假设每个院系的学生都住在同一栋宿舍楼 sno cno 为主码 第二范式 第二范式 2nf 如果r u f 1nf 并且r中的每个非主属性都完全函数依赖于主码 则r u f 2nf 右表s l是2nf1 是1nf2 非主属性sdept sloc都完全函数依赖于主码sno s l表 将1nf的关系模式分解为2nf的方法 首先 对于组成主码的属性集合的每一个子集 用它作为主码构成一个表 然后 将依赖于这些主码的属性放置到相应的表中 最后 去掉只由主码的子集构成的表 分解s l c表 对s l c sno sdept sloc cno grade 对于组成主码的属性集合的每一个子集 用它作为主码构成一个表 分解为如下形式的三张表 s l sno c cno s c sno cno 分解s l c表 续 然后 将依赖于这些主码的属性放置到相应的表中 形成如下三张表 s l sno sdept sloc c cno s c sno cno grade 分解s l c表 续 最后 去掉只由主码的子集构成的表 c cno s l c关系模式最终分解的形式为 s l sno sdept sloc s c sno cno grade 分解后的关系模式满足的范式 s l表 s c表 主码 sno s l是2nf 主码 sno cno s c是2nf sloc传递函数依赖于sno 第三范式 第三范式 3nf 如果r u f 2nf 并且所有非主属性都不传递依赖于主码 则r u f 3nf s c表 右表s c是3nf1 是2nf2 非主属性grade不传递依赖于主码 sno cno 将2nf的关系模式分解为3nf的方法 首先 对于不是候选码的每个决定因子 从表中删去依赖于它的所有属性然后 新建一个表 新表中包含在原表中所有依赖于该决定因子的属性最后 将决定因子作为新表的主码 分解s l表 对s l sno sdept sloc 首先 对于不是候选码的每个决定因子 从表中删去依赖于它的所有属性s l sno sdept sloc 变为s l sno sdept 然后 新建一个表 新表中包含在原表中所有依赖于该决定因子的属性s d sloc 最后 将决定因子作为新表的主码s d sdept sloc 分解s l表 续 s l分解后的关系模式为 s l sno sdept s d sdept sloc 分解s l c最后得到的关系模式 s l sno sdept sdept为外码 s d sdept sloc s c sno cno grade sno为外码 均是3nf的 非主码属性不存在对主码的部分函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论