自考04735《数据库系统原理》笔记.ppt

上传人:tian****1990 文档编号:8019736 上传时间:2020-03-26 格式:PPT 页数:258 大小:1.52MB
返回 下载 相关 举报
自考04735《数据库系统原理》笔记.ppt_第1页
第1页 / 共258页
自考04735《数据库系统原理》笔记.ppt_第2页
第2页 / 共258页
自考04735《数据库系统原理》笔记.ppt_第3页
第3页 / 共258页
点击查看更多>>
资源描述
自考04735 数据库系统原理 笔记 原创 雷神2018 08 20 第一部分课程说明 数据库系统原理 课程学习目标 数据库是计算机科学的一个重要研究领域 是专门研究数据处理 数据管理和数据分析的技术 从20世纪60年代末开始 经过40多年的发展 已成为计算机软件学科的一个重要分支 数据库系统原理 课程的主要目的 使同学们了解数据库的基本原理 掌握数据库技术的基本方法和应用技术 能够有效的使用现有的数据库管理系统 掌握数据库结构的设计和数据库应用系统的开发方式 同时能够利用前端开发工具完成企业管理信息系统的开发 数据库系统原理 课程地位图示 B S结构 C S结构 浏览器端 HTML CSS JavaScript VBScript服务器端 ASP NET PHP JSP C S结构 VB VC VC Delphi Java NET系列 数据库支持 SQLServer Oracle Sybase MySQL Informix Access 两大语法体系 Basic系 VB VBScript VBAC系 Java JavaScript C C 参考教材介绍 自学教材 数据库系统原理 全国高等教育自学考试指导委员会组编 丁宝康主编 经济科学出版社2007年版 本教材共分为9章 详细介绍了数据库系统的基本原理 方法和应用技术 内容包括 数据库系统基本概念 第一章 数据库的设计和ER模型 第二章 关系模式设计理论 第三章 关系运算 第四章 SQL语言 第五章 数据库管理 第六章 SQLServer2000简介及应用 第七章 PowerBuilder9 0简介及应用 第八章 数据库的技术的发展 第九章 第二部分内容串讲 我们分章节进行串讲 在串讲每一章前我把本章的考核的目标和重点 难点做简要说明 第一章数据库基础知识 学习目的与要求 本章属于基础知识 主要是对一些概念的理解和记忆 没有难点 相对的重点是数据模型的四个层次 数据库管理系统的功能 数据库系统的全局结构 考核知识点与考核要求 1 1数据管理技术的发展阶段 识记 1 2数据描述的术语 领会 1 3数据抽象的级别 领会 1 4数据库管理系统 DBMS 领会 1 5数据库系统 DBS 领会 1 1数据管理技术的发展 几个数据库的基本术语 数据 描述事物的符号记录数据处理 是指从某些已知的数据出发 推导加工出一些新的数据 这些新的数据又表示了新的信息 数据管理 是指数据的收集 整理 组织 存储 维护 检索 传送等操作 这部分操作是数据处理业务的基本环节 而且是任何数据处理业务中必不可少的共有部分 数据管理技术 对数据的收集 整理 组织 存储 维护 检索 传送等操作 基本目的就是从大量的 杂乱无章的 难以理解的数据中筛选出有意义的数据 数据处理是与数据管理相联系的 数据管理技术的优劣 将直接影响数据处理的效率 1 1数据管理技术的发展 1 人工管理阶段 20世纪50年代中期以前 数据不保存在机器中 没有专用软件对数据进行管理 只有程序的概念 没有文件的概念 数据面向程序 2 文件系统阶段特点与缺陷 20世纪50年代后期至60年代中期 数据可长期保存在磁盘上 数据的逻辑结构与物理结构有了区别 文件组织呈现多样化 数据不再属于某个特定程序 可以重复使用 对数据的操作以记录为单位 文件系统三个缺陷 数据冗余性 数据不一致性 数据联系弱 3 数据库阶段 20世纪60年代后 至今 数据管理技术进入数据库阶段的标志是20世纪60年代末三件大事 1968年美国IBM公司推出层次模型的IMS系统 1969年美国CODASYL组织发布了DBTG报告 总结了当时各式各样的数据库 提出网状模型 尔后于1971年4月正式通过 1970年美国IBM公司的E F Codd连续发表论文 提出关系模型 奠定了关系数据库的理论基础 数据库管理阶段特点 1 采用数据模型表示复杂的数据结构 2 有较高的数据独立性 3 数据库系统为用户提供了方便的用户接口 4 数据库系统提供以下四个方面的数据控制功能 数据库的恢复 数据库的并发控制 数据库的完整性 数据库的安全性 5 增加了系统的灵活性 增加了系统的灵活性对数据的操作不一定以记录为单位 可以以数据项为单位 数据库技术中的四个名词 DB DBMS DBS 数据库技术 其概念是不同的 要分清 DB 数据库 Database 长期存储在计算机内 有组织的 统一管理的相关数据的集合 DBMS 数据库管理系统 DatabaseManagementSystem DBMS是位于用户与操作系统之间的一层数据管理软件 为用户或应用程序提供访问DB的方法 包括DB的建立 查询 更新及各种数据控制 DBMS总是基于某种数据模型 可以分为层次型 网状型 关系型 面向对象型DBMS DBS 数据库系统 DatabaseSystem DBS是实现有组织地 动态地存储大量关联数据 方便多用户访问的计算机软件 硬件和数据资源组成的系统 即采用了数据库技术的计算机系统 数据库技术 是一门研究数据库结构 存储 管理和使用的一门软件学科 4 高级数据库阶段 面向对象的概念建模 开放数据库互连技术 1 2数据描述 在数据处理中 数据描述将涉及不同的范畴 从事物的特性到计算机中的具体表示 数据描述经历了三个阶段 概念设计 逻辑设计和物理设计 1 概念设计中的的数据描述 实体 实体集 属性 实体标识符2 逻辑设计中的数据描述 字段 记录 文件 关键码 3 物理设计中的数据描述 物理存储介质层次 高速缓冲存储器 主存储器 快擦写存储器 磁盘存储器 光盘存储器 磁带物理存储中的数据描述位 字节 字 块 桶和卷 4 数据联系的描述 联系及元数定义 二元联系有以下三种类型 1 1联系 如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系 反之亦然 好么实体集E1对E2的联系称为 一对一联系 记为 1 1 1 N联系 如果实体集E1中每个实体与实体集E2中任意个 零个或多个 实体有联系 而E2中每个实体至多和E1中的一个实体有联系 那么E1对E2的联系是 一对多联系 记为 1 N M N联系 如果实体集E1中每个实体与实体集E2中任意个 零个或多个 实体有联系 反之亦然 那么E1对E2的联系是 多对多联系 记为 M N 1 3数据抽象的级别 1 数据抽象的过程根据抽象的级别定义了四种模型 概念数据模型 逻辑数据模型 外部数据模型 内部数据模型 2 概念模型 四种模型中 概念模型的抽象级别最高 概念模型的特点 p12 3 逻辑模型逻辑模型的特点 p13 1 4 逻辑模型的分类 层次模型 网状模型 关系模型三种逻辑数据模型的比较 如P17图 4 外部模型外部模型的特点 p17 从整个系统考察 外部模型的优点 5 内部模型是数据库最底的抽象 它描述数据在磁盘或磁带上的存储方式 存取设备和存取方法 6 三层模式和两级映象三层模式体系结构 外模式 是用户与数据库系统的接口 是用户用到的那部分数据的描述 逻辑模式 是数据库中全部数据的整体逻辑结构的描述 内模式 是数据库在物理存储方面的描述 定义所有内部记录类型 索引和文件的组织方式 以及数据控制方面的细节 两级映象外模式 逻辑模式映象 用于定义概念模式和内模式之间的对应性 一般在内模式中描述 逻辑模式 内模式映象 用于定义外模式和概念模式间的对应性 一般在外模式中描述 7 高度的数据独立性什么叫数据独立性 是指应用程序和数据库的数据结构之间相互独立 不受影响 在修改数据结构时 尽可能不修改应用程序 则称系统达到了数据独立性目标 数据独立性分为物理数据独立性和逻辑数据独立性 物理数据独立性 修改内模式时尽量不影响概念模式及外模式 则达到物理数据独立性 逻辑数据独立性 修改概念模式时尽量不影响外模式和应用程序 1 4数据库管理系统 DBMS 1 DBMS的目标与任务 数据库管理系统的主要任务是完成用户对数据库的存取请求 即检索 插入 更新或删除等操作 DBMS的目标 用户界面友好 功能完善 结构清晰 高效率 开放性2 DBMS的工作模式 p20图 3 DBMS的主要功能 数据库的定义功能 数据库的操纵功能 数据库的保护功能 数据库恢复 数据库并发控制 数据库完整性和数据库安全性 数据库的维护功能 数据字典 1 5数据库系统 DBS 1 DBS由四部分组成 数据库 硬件 软件 数据库管理员 2 数据库管理员定义及职责 素质 职责 3 DBS的全局结构及DBS的效益 数据库用户 界面 DBMS 磁盘 DBS的效益 本章结束 第二章数据库设计和ER模型 学习目的与要求 本章总的目的要求是了解和掌握数据库应用系统设计的全过程 首先掌握ER模型和关系模型的基本概念 然后掌握概念设计中ER模型的设计方法 逻辑设计中ER模型向关系模型转换方法 考核知识点与考核要求2 1数据库系统生存期 领会 2 2ER模型的基本概念 综合应用 2 3关系模型的基本概念 综合应用 2 4ER模型到关系模型的转换规则 综合应用 2 5ER模型实例分析 简单应用 2 6增强ER模型 简单应用 从软件生存期谈起软件生存期 是指从软件的规划 研制 实现 投入运行后的维护 直到它被新的软件所取代而停止使用的整个期间 它包括六个阶段 规需设编试运维 1 规划阶段 2 需求分析阶段 3 设计阶段 4 程序编制阶段 5 调试阶段 6 运行维护阶段 2 1数据系统生存期 1 什么叫数据库系统生存期 我们把数据库应用系统从开始规划 设计 实现 维护到最后被新的系统取代而停止使用的整个期间 称为数据库系统生存期 2 这个生存期一般可划分成以下七个阶段 规划 需求分析 概念设计 逻辑设计 物理设计 实现 运行维护 2ER模型的基本概念 1 ER模型的基本元素实体 联系和属性2 属性的分类 简单属性和复合属性 单值属性和多值属性 存储属性和派生属性 3 联系的设计4 ER模型的操作 分裂 合并和增删 5 采用ER模型的数据库概念设计步骤采用ER方法进行数据库概念设计分成三步进行 首先设计局部ER模式然后把各局部ER模式综合成全局ER模式最后对全局ER模式进行优化 2 3关系模型的基本概念 关系模型定义 用二维表格结构表示实体集 外键表示实体间联系的数据模型称为关系模型 2 基本术语有 字段 属性 字段值 属性值 记录 元组 二维表格 元组集合 关系或实例 在这里 括号中的表述为关系模型中的术语 它与表格中术语可以一一对应 还有 关系中属性个数称为元数 元组个数为基数 3 键 由一个或几个属性组成 注意键不一定是唯一的一个属性 1 超键 在关系中能唯一标识元组的属性集称为关系模式的超键 注意 超键也是一个属性集 不一定只是一个属性 2 候选键 不含有多余属性的超键称为候选键 3 主键 用户选作元组标识的一个候选键为主键 4 外键 某个关系的主键相应的属性在另一关系中出现 此时该主键在就是另一关系的外键 如有两个关系S和SC 其中S 是关系S的主键 相应的属性S 在关系SC中也出现 此时S 就是关系SC的外键 关系的定义和性质 关系定义 关系是一个属性数目相同的元组的集合 关系性质 p53 5 三类完整性规则 实体完整性规则 要求关系中组成主键的属性上不能有空值 参照完整性规则 要求不引用不存在的实体 用户定义完整性规则 由具体应用环境决定 系统提供定义和检验这类完整性的机制 2 4E R模型向关系模型的转换 E R模型可以向现有的各种数据库模型转换 对不同的数据库模型有不同的转换规则 这里只讨论E R模型向关系模型的转换方法 1 E R模型向关系模型的转换规则 1 实体类型的转换将每个实体类型转换成一个关系模式 实体的属性即为关系的属性 实体标识符即为关系的键 2 联系类型的转换1 实体间的联系是1 1可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性 系关系模式 校名 地址 电话 系主任名 任职年月 系主任关系模式 姓名 性别 年龄 职称 职称 1 1 系主任 系 姓名 性别 年龄 校名 地址 任职年月 主管 电话 系主任关系模式 姓名 性别 年龄 职称 学校名 任职年月 系关系模式 校名 地址 电话 N 1 工号 年龄 职工 车间 姓名 性别 车间号 车间名 电话 聘用 聘期 2 如实体间的联系是1 N则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性 车间关系模式 车间号 车间名 电话 职工关系模式 工号 姓名 性别 年龄 车间号 聘期 3 如实体间的联系是M N则将联系类型也转换成关系模式 其属性为两端实体类型的键加上联系类型的属性 而键为两端实体键的组合 学生关系模式S S SNAME AGE SEX 课程关系模式C C CNAME TEACHE R GRADE SC M N S S SNAME AGE SEX C C CNAME TEACHE R 学生课程关系模式SC S C GRADE 以上各转换规则 给出了一般情况下E R模型向关系模型的转换方法 但在实际应用中往往还需要根具实际情况进行具体处理 下面以图书借阅系统的E R模型转换为关系模型为例 借期 借阅 M N 读者 编号 姓名 读者类型 已借数量 图书 编号 书名 出版社 还期 该例中 由于允许同一本书在不同的时间借给多个读者 特别是一个读者在不同的时间可以借同一本书 因而 在多对多联系 借阅 转换为关系模式时 仅有读者的编号和图书的编号是不能构成码的 例如 0406010 F33 33 2006 10 10 10 10 2007 02 20 3 00 0406010 F33 33 2007 5 26 4 00 NULL 借期 借阅 M N 读者 编号 姓名 读者类型 已借数量 图书 编号 书名 出版社 还期 读者关系模式读者 编号 书名 出版社 出版日期 定价 读者图书关系模式借阅 读者编号 图书编号 借期 还期 图书关系模式图书 编号 姓名 读者类型 已借数量 说明 按照上述介绍的转换方法得到的关系模型不一定是最好的 实际应用中 往往还要对得到的关系模型进行规范化 2 5和2 6 实例分析 同学们多看书 1 库存管理系统的ER模型及转换2 人事管理信息系统的ER模型3 住院管理信息系统的ER模型4 公司车队信息系统的ER模型 本章结束 第三章关系模式设计理论 学习目的与要求 本章特点是理论性较强 学习者应从概念着手 搞清概念间的联系和作用 本章总的要求是 了解关系数据库规范化理论及其在数据库设计中的作用 本章的重点是函数依赖 无损分解 保持依赖和范式 掌握这些概念并能运用它们分析模式分解的特点 考核知识点与考核要求 3 1关系模式的设计准则 简单应用 3 2函数依赖 FD 简单应用 3 3关系模式的分解特性 简单应用 3 4范式1NF 2NF 3NF 简单应用 BCNF 领会 分解成BCNF模式集的 分解算法 识记 分解成3NF模式集的 合成算法 综合应用 模式设计方法小结 领会 3 5多值依赖和第四范式 识记 3 1关系模式的设计准则 1 关系模式的冗余和异常问题 数据冗余 操作异常 修改异常 插入异常和删除异常 2 关系模式的非形式化设计准则 关系模式的设计应尽可能只包含有直接联系的属性 不包括有间接联系的属性 关系模式的设计应尽可能使得相应关系中不出现插入 删除和修改异常 关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性 关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行 并且保证连接以后不会生成额外的元组 3 2函数依赖 1 函数依赖的定义设有关系模式R A1 A2 An 或简记为R U X Y是U的子集 r是R的任一具体关系 如果对r的任意两个元组t1 t2 由t1 X t2 X 导致t1 Y t2 Y 则称X函数决定Y 或Y函数依赖于X 记为X Y X Y为模式R的一个函数依赖 这个定义可以这样理解 有一张设计好的二维表 X Y是表的某些列 可以是一列 也可以是多列 若在表中的第t1行 和第t2行上的X值相等 那么必有t1行和t2行上的Y值也相等 这就是说Y函数依赖于X 2 函数依赖的逻辑蕴涵设F是关系模式R的一个函数依赖集 X Y是R的属性子集 如果从F中的函数依赖能够推出X Y 则称F逻辑蕴涵X Y 记为F X Y 而函数依赖的闭包F 是指被F逻辑蕴涵的函数依赖的全体构成的集合 3 键和FD的关系键是唯一标识实体的属性集 对于键和函数依赖的关系 有两个条件 设关系模式R A1 A2 An F是R上的函数依赖集 X是R的一个子集 1 X A1A2 An F 它的意思是X能够决定唯一的一个元组 2 不存在X的真子集Y 使得Y也能决定唯一的一个元组 则X就是R的一个候选键 它的意思是X能决定唯一的一个元组但又没有多余的属性集 包含在任何一个候选键中的属性称为主属性 不包含在任何键中的属性为非主属性 非键属性 注意 主属性应当包含在候选键中 4 函数依赖 FD 的推理规则前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵 但是我们需要一个推理规则才能完全确定F或F 的所有函数依赖 设有关系模式R U X Y Z W均是U的子集 F是R上只涉及到U中属性的函数依赖集 推理规则如下 A1 自反性 如果YXU 则X Y在R上成立 A2 增广性 如果X Y为F所蕴涵 ZU 则XZ YZ在R上成立 XZ表示X Z 下同 A3 传递性 如果X Y和Y Z在R上成立 则X Z在R上成立 A4 合并性 如果X Y和X Z成立 那么X YZ成立 A6 分解性 如果X Y和ZY成立 那么X Z成立 A5 伪传性 如果X Y和WY Z成立 那么WX Z成立 A7 复合性 X Y W Z XW YZ A8 通用一致性定理 X Y W Z x X Y YZ 5 函数依赖推理规则的完备性函数依赖推理规则系统 自反性 增广性和传递性 是完备的 由推理规则的完备性可得到两个重要结论 1 属性集X 中的每个属性A 都有X A被F逻辑蕴涵 即X 是所有由F逻辑蕴含X A的属性A的集合 2 F 是所有利用Amstrong推理规则从F导出的函数依赖的集合 6 函数依赖集的等价和覆盖在关系模式R U 上的两个函数依赖集F和G 如果满足F G 则称F和G是等价的 称F和G等价也称F覆盖G或G覆盖F 每个函数依赖集F都可以被一个右部只有单属性的函数依赖集G所覆盖 如果函数依赖集合F满足 1 F中每一个函数依赖的右部都是单属性 2 F中的任一函数依赖X A 其F X A 是不等价的 3 F中的任一函数依赖X A Z为X的子集 F X A Z A 与F不等价 则称F为最小函数依赖集合 如果函数依赖集F和G等价 并且G是最小集 那么称G是F的一个最小覆盖 这一段并不要求掌握最小集的求法 但是应当通过其求法理解最小集的概念 3 3关系模式分解特性 1 模式分解中存在的问题模式分解就是将一个泛关系模式R分解成数据库模式 以 代替R的过程 它不仅仅是属性集合的分解 它是对关系模式上的函数依赖集 以及关系模式的当前值分解的具体表现 分解一个模式有很多方法 但是有的分解会出现失去函数依赖 或出现插入 删除异常等情况 而有的分解则不出现相关问题 衡量一个分解的标准有三种 分解具有无损联接 分解要保持函数依赖 分解既要保持依赖 又要具有无损联接 那么什么是无损联接呢 什么又是保持依赖 2 无损联接的定义和性质设R是一关系模式 分解成 R1 R2 Rk F是R上的一个函数依赖集 无损联接就是指R中每一个满足F的关系r 也就是一个关系实例 都有r R1 r X R2 r X R3 r 即r为它在Ri上的投影的自然联接 最简单的理解 也就是说 分解后的关系自然连接后完全等于分解前的关系 则这个分解相对于F是无损联接分解 设R的分解为 R1 R2 F为R所满足的函数依赖集 则分解 具有无损联接性的充分必要条件是 R1 R2 R1 R2 R1 R2 R2 R1 也就是说 分解后的两个模式的交能决定这两个模式的差集 即R1 R2的公共属性能够函数决定R1或R2中的其他属性 这样的分解就必定是无损联接分解 3 保持函数依赖的分解在分解过程中 要求模式分解的无损联接是必要的 只有无损联接分解才能保证任何一个关系能由它的那些投影进行自然联接得到恢复 同时 分解关系模式时还应保证关系模式的函数依赖集在分解后仍在数据库模式中保持不变 这就是保持函数依赖的问题 也就是所有分解出的模式所满足的函数依赖的全体应当等价于原模式的函数依赖集 只有这样才能确保整个数据库中数据的语义完整性不受破坏 3 4范式 1 1NF 2NF 3NF BCNF的定义 1NF 第一范式即关系模式中的属性的值域中每一个值都是不可再分解的值 如果某个数据库模式都是第一范式的 则称该数据库模式是属于第一范式的数据库模式 2NF 第二范式如果关系模式R为第一范式 并且R中每一个非主属性完全函数依赖于R的某个候选键 则称为第二范式模式 非主属性 完全函数依赖 候选键三个名词的含义 候选键就是指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集 非主属性也就是非键属性 指关系模式R中不包含在任何建中的属性 设有函数依赖W A 若存在X W 有X A成立 那么称W A是局部依赖 否则就称W A是完全函数依赖 在分析是否为第2范式时 应首先确定候选键 然后把关系模式中的非主属性与键的依赖关系进行考察 是否都为完全函数依赖 如是 则此关系模式为2NF 如果数据库模式中每个关系模式都是2NF的 则此数据库模式属于2NF的数据库模式 3NF 第三范式如果关系模式R是第二范式 且每个非主属性都不传递依赖于R的候选键 则称R为第三范式的模式 这里首先要了解传递依赖的含义 在关系模式中 如果Y X X A 且X不决定Y和A不属于X 那么Y A是传递依赖 注意的是 这里要求非主属性都不传递依赖于候选键 BCNF 这个范式和第三范式有联系 它是3NF的改进形式 若关系模式R是第一范式 且每个属性都不传递依赖于R的候选键 这种关系模式就是BCNF模式 纵观四种范式 可以发现它们之间存在如下关系 5 分解成BCNF模式集的算法对于任一关系模式 可找到一个分解达到3NF 且具有无损联接和保持函数依赖性 而对于BCNF分解 则可以保证无损联接但不一定能保证保持函数依赖集 无损联接分解成BCNF模式集的算法 1 置初值 R 2 如果 中所有关系模式都是BCNF 则转 4 3 如果 中有一个关系模式S不是BCNF 则S中必能找到一个函数依赖集X A有X不是S的键 且A不属于X 设S1 XA S2 S A 用分解S1 S2代替S 转 2 4 分解结束 输出 在这个过程中 重点在于 3 步 判断哪个关系不是BCNF 并找到X和A 这里 S的判断用BCNF的定义 而X不是S的键则依靠分析 6 分解成3NF模式集算法 1 如果R中的某些属性在F的所有依赖的左边和右边都不出现 那么这些属性可以从R中分出去 单独构成一个关系模式 2 如果F中有一个依赖X A有XA R 则 R 转 4 3 对于F中每一个X A 构成一个关系模式XA 如果F有有X A1 X A2 X An 则可以用模式XA1A2 An代替n个模式XA1 XA2 XAn 4 w分解结束 输入 这个过程的重点是这一句 对于F中每一个X A 构成一个关系模式XA 这使我们的分解十分容易 然后依据合并律 合并律 如果X Y和X Z成立 那么X YZ成立 将有关模式合并即得到所需3NF模式 7 模式设计方法的原则关系模式R相对于函数依赖集F分解成数据库模式 R1 R2 Rk 一般具有下面四项特性 中每个关系模式Ri上应具有某种范式性质 3NF或BCNF 无损联接性 保持函数依赖集 最小性 即 中模式个数应最少且模式中属性总数应最少 一个好的模式设计方法应符合下列三条原则 表达性分离性最小冗余性 8 多值依赖与第四范式 4NF 例 学校中某一门课程由多个教师讲授 他们使用相同的一套参考书 关系模式Teaching C T B 课程C 教师T和参考书B 表5 1 用二维表表示Teaching 多值依赖与第四范式Teaching BCNF Teach具有唯一候选码 C T B 即全码Teaching模式中存在的问题 1 数据冗余度大 有多少名任课教师 参考书就要存储多少次 2 插入操作复杂 当某一课程增加一名任课教师时 该课程有多少本参照书 就必须插入多少个元组 例如物理课增加一名教师刘关 需要插入两个元组 物理 刘关 普通物理学 物理 刘关 光学原理 3 删除操作复杂 某一门课要去掉一本参考书 该课程有多少名教师 就必须删除多少个元组 4 修改操作复杂 某一门课要修改一本参考书 该课程有多少名教师 就必须修改多少个元组 产生原因存在多值依赖 1 多值依赖设R U 是一个属性集U上的一个关系模式 X Y和Z是U的子集 并且Z U X Y 多值依赖X Y成立当且仅当对R的任一关系r r在 X Z 上的每个值对应一组Y的值 这组值仅仅决定于X值而与Z值无关 例Teaching C T B 对于C的每一个值 T有一组值与之对应 而不论B取何值 2 第四范式 4NF 关系模式R 1NF 如果对于R的每个非平凡多值依赖X Y Y X X都含有候选码 则R 4NF 如果R 4NF 则R BCNF不允许有非平凡且非函数依赖的多值依赖允许的是函数依赖 是非平凡多值依赖 本章结束 第四章关系运算 学习目的与要求 本章总的要求是 深刻理解关系模型的运算理论 了解查询优化的意义和启发式优化算法 本章的重点是关系代数运算 应熟练掌握 关系演算是本章的难点 考核知识点和考核要求4 1关系代数4 1 1关系代数的五个基本操作 并 差 笛卡儿积 投影 选择 综合运用 4 1 2关系代数的四个组合操作 交 连接 自然连接 除法 综合运用 4 1 3关系代数表达式的应用 综合运用 4 1 4关系代数的两个扩充操作 外连接 外部并 领会 4 2关系演算4 2 1元组关系演算的定义及表达式的含义 简单应用 4 2 2域关系演算的定义及表达式的含义 领会 4 2 3关系运算的安全约束和等价性 领会 4 3关系代数表达式的优化 领会 关系模型有三个重要组成部分 数据结构 数据操纵 数据完整性规则关系查询语言根据其理论基础的不同分成两类 关系代数语言 关系演算语言 4 1关系代数 1 关系代数的五个基本操作 并 差 笛卡尔积 投影和选择 并 两个关系需有相同的关系模式 并的对象是元组 由两个关系所有元组构成 差 同样 两个关系有相同的模式 R和S的差是由属于R但不属于S的元组构成的集合 笛卡儿积 对于两个关系作运算 列 n m 列的元组的集合 元组的前n列是关系R的一个元组后m列是关系S的一个元组 行 k1 k2个元组 投影 对关系进行垂直分割 消去某些列 并重新安排列的顺序 选择 根据某些条件关系作水平分割 即选择符合条件的元组 2 关系代数的四个组合操作 交 联接 自然联接和除法交 R和S的交是由既属于R又属于S的元组构成的集合 联接包括 联接和F联接 是选择R S中满足i r j 或F条件的元组构成的集合 特别注意等值联接 为等号 自然联接 R X S 在R S中 选择R和S公共属性值均相等的元组 并去掉R S中重复的公共属性列 如果两个关系没有公共属性 则自然联接就转化为笛卡尔积 除法 首先除法的结果中元数为两个元数的差 可以直接用观察法来得到结果 把S看作一个块 拿到R中去和相同属性集中的元组作比较 如果有相同的块 且除去此块后留下的相应元组均相同 那么可以得到一条元组 所有这些元组的集合就是除法的结果 对于上述的五个基本操作和组合操作 应当从实际运算方面进行理解和运用 对其形式定义可不必深究 注意课本上的例子 关系代数运算的三个要素 运算对象 关系运算结果 关系运算符 四类 集合运算符将关系看成元组的集合运算是从关系的 水平 方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作 广义笛卡尔积 ExtendedCartesianProduct Rn目关系 k1个元组Sm目关系 k2个元组R S列 n m 列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行 k1 k2个元组R S trts tr R ts S R S R S 选择 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 例1 查询信息系 IS系 全体学生 Sdept IS Student 或 5 IS Student 结果 例2 查询年龄小于20岁的学生 Sage 20 Student 或 4 20 Student 结果 投影 Projection 1 投影运算符的含义从R中选择出若干属性列组成新的关系 A R t A t R A R中的属性列 2 投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列 而且还可能取消某些元组 避免重复行 3 举例 例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname Sdept Student 或 2 5 Student 结果 例4 查询学生关系Student中都有哪些系 Sdept Student 结果 连接 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 自然连接RS 外连接 例 列出老师的有关信息 包括姓名 工资 所教授的课程 P PN SAL C CN PROF PCC 问题 有关P03号职工的姓名和工资信息没有显示出来 外连接为避免自然连接时因失配而发生的信息丢失 可以假定往参与连接的一方表中附加一个取值全为空值的行 它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配 称之为外连接外连接 自然连接 失配的元组外连接的形式 左外连接 右外连接 全外连接左外连接 自然连接 左侧表中失配的元组右外连接 自然连接 右侧表中失配的元组全外连接 自然连接 两侧表中失配的元组 所有老师的信息 所有课程的信息 所有老师和课程的信息 重要内容分析1 1 一般规则对于只涉及到选择 投影 联接的查询可用下列表达式表示 R S 或者 R S 对于否定的操作 一般要用差操作表示 例如 检索不学C2课的学生姓名 对于检索具有 全部 特征的操作 一般要用除法操作表示 例如 检索学习全部课程的学生姓名 2 检索不学C2课的学生姓名 决不能用下式表示 SNAME AGE C C2 S SC 一定要用 差 的形式 SNAME AGE S SNAME AGE C C2 S SC 3 检索学习全部课程的学生学号 要用 S C SC C C 表示 而不能写成 S SC C C 形式 这是因为一个学生学的课程的成绩可能是不一样的 2 非过程性语言与过程性语言的区别编程时必须指出 干什么 及 怎么干 的语言 称为过程性语言 编程时只须指出 干什么 不必指出 怎么干 的语言 称为非过程性语言 4 2关系演算 把数理逻辑的谓词演算引入关系运算中 就可得到以关系演算为基础的运算 关系演算分为元组关系演算或域关系演算 前者以元组为变量 后者以域为变量 元组关系演算 形式化定义 t P t 表示所有使谓词P为真的元组集合t为元组变量如果元组变量前有 全称 或 存在 量词 则称其为约束变量 否则称为自由变量 P是公式由原子公式和运算符组成 原子公式s Rs是关系R中的一个元组s x u y s x 与u y 为元组分量 他们之间满足比较关系 s x c分量s x 与常量c之间满足比较关系 公式的递归定义原子公式是公式如果P是公式 那么 P也是公式如果P1 P2是公式 则P1 P2 P1 P2 P1 P2也是公式如果P t 是公式 R是关系 则 t R P t 和 t R P t 也是公式 公式的等价性P1 P2 P1 P2 t R P t t R P t P1 P2 P1 P2 R S t t S t A 2 t t R t S t t S u R t C u B t t R u S t C u A t v S u R u A v B t A u B t B v C t C u A 表达式的安全性元组关系演算有可能会产生无限关系 这样的表达式是不安全的 如 t t R 求所有不在R中的元组引入公式P的域概念 用dom P 表示dom P 显式出现在P中的值 在P中出现的关系的元组中出现的值 不必是最小集 如dom t t R 是R中出现的所有值的集合如果出现在表达式 t P t 结果中的所有值均来自dom P 则称 t P t 是安全的 dom t R A1 A2 B1 B2 B3 R t t R 示例 找出工资在800元以上的老师 t t PROF t SAL 800 找出工资在800元以上的老师的姓名 t s PROF t PNAME s PNAME s SAL 800 给出计算机系老师的姓名 t u DEPT u DNAME 计算机系 s PROF s DNO u DNO t PNAME s PNAME 求选修了全部课程的学生号 t u C s SC s CNO u CNO t SNO s SNO 求选修了张军同学所选修的全部课程的学生姓名 课程 张军选之 所求同学选之 t u C s SC w S s CNO u CNO w SNO s SNO w SNAME 张军 元组关系演算与关系代数的等价性投影 A R t s R s A t A 选择 F A R t t R F t A 广义笛卡儿积R A S B t u R s S t A u A t B s B 并R S t t R t S 交R S t t R t S 域关系演算 形式化定义 P x1 x2 xn xi代表域变量 P为由原子构成的公式原子公式 Rxi是域变量或域常量x y域变量x与y之间满足比较关系 x c域变量x与常量c之间满足比较关系 R S R1 R x3 R2 R S y 4 W R2 u v R W u v 示例 找出工资在800元以上的老师 PROF e 800 找出工资在800元以上的老师的姓名 a c d e PROF e 800 4 3关系代数表达式的优化问题 目的在关系代数中找一种好的操作步骤 既省空间 查询效率又比较高 在关系代数中 笛卡儿积和联结运算是最费时间和空间的 在关系很大的时候 必须要考虑怎样做才能合理的安排 做到省时省力 一个例子设关系R和S都是二元关系 属性名分别是A B和C D 那么如下查询 E1 A B C D 99 R S 也可以是E2 A B C R D 99 S 或E3 A R D 99 S 这三个代数表达式的等价的 但是执行的效率不一样 第一种 先做笛卡儿积 假设每个物理块可以存储R的B1个元组 或者S的B2个元组 R关系中有n1个元组 S关系中有n2个元组 内存每次只能装载m块数据 在做联接的时候先把R的第一个m 1块数据装入内存 然后逐个调入S中的数据块 R中的每个数据块只要进入内存一次 总共需要装入的块数示n1 B1 S中的每个数据块需要进入内存 n1 B1 m 1 次 总共需要装入的块数是 n1 B1 1 m 1 n2 B2 这三个代数表达式的等价的 但是执行的效率不一样 执行RXS的总装入块数是 n1 B1 1 n2 m 1 B2 若n1 n2 10000 B1 B2 5 m 100 那么总的装入块数是42400 若每秒装入20块 需要35分钟 耗费时间长 在实际使用中不采用 这三个代数表达式的等价的 但是执行的效率不一样 第二种和第三种 先做了选择 装入的块数为n1 B1 n2 B2 大约需要装入4000块 耗费时间3分多钟 对于S来说 元组并不是全部进入内存 而且只是进入一次 所以速度快 1 优化的一般策略我们所说的优化和存储没有关系 主要是如何来安排操作的顺序 节省时间和空间的消费优化的一般技术 在关系代数表达式中尽可能早地执行选择操作 把笛卡儿积和其后的选择操作合并成F联接运算 同时计算一连串的选择和投影操作 避免分开运算造成多次扫描文件 2 关系代数表达式的优化算法对一个关系代数表达式进行语法分析可以得到一棵语法树 叶子式关系 非叶子结点式关系代数操作 算法2 1关系代数表达式的优化 输入 一个关系代数表达式的语法树 输出 计算表达式的一个优化程序 方法 依次执行下面的每一步 1 使用等价变换规则4将每个形为 F1 Fn E 的子表达式转换成串接形式 F1 Fn E 2 对每个选择操作 尽可能把选择操作移近树的叶端 尽可能早的实行选择操作 3 对每个投影操作 尽可能把投影操作移近树的叶端 4 把选择和投影合并成单个选择 单个投影或一个选择后跟一个投影 5 将上述步骤得到的语法树的内结点分组 6 生成一个序列 每一组结点的计算是序列中的一步 见课本例子 本章结束 第五章SQL语言 学习目的与要求 SQL语言是关系数据库的标准语言 是本课程的一个重点 本章总的要求是 全面掌握 深刻理解 熟练应用 要求掌握的技能是 SQL定义语句 嵌入式SQL语句的应用 要求熟练掌握的技能是 SQL查询语句 视图 SQL更新语句的应用 方法 多做题 多上机实践 考核知识点与考试要求5 1SQL简介 识记 5 2SQL的数据定义 综合应用 5 3SQL的数据查询5 3 1SELECT查询语句的基本结构 连接 嵌套 存在量词的三种查询方式 综合应用 5 3 2SELECT语句完整的结构 分组子句 排序子句的用法 综合应用 5 3 3数据查询中的限制和规定 简单应用 5 3 4条件表达式中的比较操作 简单应用 5 3 5嵌套查询的改进写法 领会 5 3 6基本表的连接操作 综合应用 5 4SQL的数据更新 综合应用 5 5视图 简单应用 5 6嵌入式SQL 领会 5 7存储过程SQL PSM 识记 5 1SQL简介 1 SQL发展历程SQL从1970年美国IBM研究中心的E F Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言 到现在还在不断完善和发展之中 SQL 结构式查询语言 虽然名为查询 但实际上具有定义 查询 更新和控制等多种功能 2 SQL数据库的体系结构SQL数据库的体系结构也是三级结构 但术语与传统关系模型术语不同 在SQL中 关系模式称为 基本表 存储模式称为 存储文件 子模式称为 视图 元组称 行 属性称 列 SQL数据库体系的结构要点如下 1 一个SQL数据库是表的汇集 2 一个SQL表由行集构成 行是列的序列 每列对应一个数据项 3 表或者是基本表 或者是视图 基本表是实际存储在数据库中的表 视图由是由若干基本表或其他视图构成的表的定义 4 一个基本表可以跨一个或多个存储文件 一个存储文件也可存放一个或多个基本表 存储文件与物理文件对应 5 用户可以用SQL语句对表进行操作 包括视图和基本表 6 SQL的用户可以是应用程序 也可以是终端用户 3 SQL的组成SQL由四部分组成 1 数据定义 SQLDDL 定义SQL模式 基本表 视图和索引 2 数据操纵 SQLDML 包括数据查询和数据更新 增 删 改 3 数据控制 包括对基本表和视图的授权 完整性规则的描述 事务控制等 4 嵌入式SQL的使用规定 4 SQL的特点 1 SQL具有十分灵活和强大的查询功能 2 SQL不是一个应用开发语言 它只提供对数据库的操作功能 不能完成屏幕控制 菜单管理 报表生成等功能 3 SQL是国际性标准语言 有利于各种数据库之间交换数据 有利于程序的移植 有利于实现高度的数据独立性 有利于实现标准化 4 SQL的词汇不多 完成核心功能只用了9个英语动词 它的语法结构接近英语 因此容易学习和使用 5 2SQL的数据定义 1 SQL模式的创建和撤消 SQL模式的创建可简单理解为建立一个数据库 定义一个存储空间 其句法是 CREATESCHEMAAUTHORIZATION撤消SQL模式的句法为 DROPSCHEMA CASCADE RESTRICT 方括号中的选项参数CASCADE表示连锁方式 执行时将模式下所有基本表 视图 索引等元素全部撤消 RESTRICT表示约束式 执行时必须在SQL模式中没有任何下属元素时方可撤消模式 2 SQL提供的基本数据类型数值型 包括integer smallint real doubleprecision float n numeric p d 字符串型 char n varchar n 前者是定长 后者为变长串位串型 bit n bitvarying n 同上 时间型 date time 3 基本表的创建 修改和撤消基本表的创建 可理解为建立表结构 CREATTABLESQL模式名 基本表名 列名 类型 完整性约束 完整性约束包括主键子句 PRIMARYKEY 检查子句 CHECK 和外键子句 FOREIGNKEY 基本表结构的修改ALTERTABLE基本表名ADD DROP 增加 删除 列名类型名 增加时写出 删除时有子句 CASCADE RESTRICT 前者为连锁删除 后者为约束删除 即没有对本列的任何引用时才能删除 基本表的撤消DROPTABLE基本表名 CASCADE RESTRICT 4 索引的创建和撤消创建 CREATE UNIQUE INDEX索引名ON基本表名 列名表 ASC DESC 撤消 DROPINDEX索引名总结 凡创建都用CREATE 删除都用DROP 改变用ALTER 再跟类型和名字 附加子句很容易了 5 3SQL的数据查询 1 SELECT FROM WHERE句型SELECT列名表 逗号隔开 FROM基本表或视图序列WHERE条件表达式在这里 重点要掌握条件表达式中各种运算符的应用 如 等算术比较运算符 逻辑运算符AND OR NOT 集合成员资格运算符 IN NOTIN 以及嵌套的SELECT语句的用法要特别注意理解 针对课本的例题和课后习题进行掌握 在查询时 SELECT语句可以有多种写法 如联接查询 嵌套查询和使用存在量词的嵌套查询等 最好都掌握 但是起码应能写出一种正确的查询语句 2 SELECT语句完整的句法 SELECT列名表 逗号隔开 FROM基本表或视图序列 WHERE条件表达式 此为和条件子句 GROUPBY列名序列 分组子句 HAVING组条件表达式 组条件子句 ORDERBY列名 ASC DESC 排序子句 这段关于完整句法的内容能够理解也就问题不大了 3 SELECT语句中的限定这一段内容主要是对SELECT语句进一步使用进行的深入学习 领会下列各种限定的使用目的和方法 要求输出表格中不出现重复元组 则在SELECT后加一DISTINCTSELECT子句中允许出现加减乘除及列名 常数的算术表达式WHERE子句中可以用BETWEEN AND 来限定一个值的范围同一个基本表在SELECT语句中多次引用时可用AS来增加别名WHERE子句中字符串匹配用LIKE和两个通配符 和下划线 查询结果的结构完全一致时可将两个查询进行并 UNION 交 INTERSECT 差 EXCPT 操作 查询空值操作不是用 null 而是用ISNULL来测试 集合成员资格比较用IN NOTIN 集合成员算术比较用元组 SOME ALL可以用子查询结果取名 表名 列名序列 来作为导出表使用基本表的自然联接操作是用NATURALINNERJOIN来实现的 5 4SQL的数据更新 1 数据插入 INSERTINTO基本表名 列名表 VALUES 元组值 或INSERTINTO基本表名 列名表 SELECT查询语句其中元组值可以连续插入 用查询语句可以按要求插入所需数据 2 数据删除 DELETEFROM基本表名 WHERE条件表达式 3 数据修改 UPDATE基本表名SET列名 值表达式 列名 值表达式 WHERE条件表达式 5 5视图 1 视图的创建和撤消创建 CREATEVIEW视图名 列名表 ASSELECT查询语句撤消 DROPVIEW视图名 2 视图的操作查询与关系中一致更新与关系不同如果视图是从多个使用联接操作导出的 不允许对此视图更新如果在导出视图的过程中 使用了分组和聚合函数 不允许对此视图更新 如果视图是从单个关系使用选择 投影操作导出的 并且包含了关系的主健或某个候选健 称此视图为 行列子集视图 允许对此视图更新 CREATEVIEWS MAILASSELECTS SNAME AGEFROMSWHERESEX M INSERTINTOS MALEVALUES S28 WU 18 与INSERTINTOSVALUES S28 WU 18 M 相同 3 视图的优点使用视图的优点 视图提供了逻辑数据的独立性简化了用户观点用户只需关心视图的内容 而不必关心构成视图的若干关系的联结 投影操作 能够将对数据库的访问限制在一定范围内 有利于数据安全保护功能 可针对不同的用户定义不同的视图 在视图种只出现用户需要的数据 系统提供视图让用户使用 5 6嵌入式SQL 1 SQL语言提供了两种不同的使用方式 交互式嵌入式为什么要引入嵌入式SQLSQL语言是非过程性语言事务处理应用需要高级语言这两种方式细节上有差别 在程序设计的环境下 SQL语句要做某些必要的扩充 2 嵌入式SQL的一般形式为了区分SQL语句与主语言语句 需要 前缀 EXECSQL结束标志 随主语言的不同而不同以C为主语言的嵌入式SQL语句的一般形式EXECSQL 例 EXECSQLDROPTABLEStudent 以COBOL作为主语言的嵌入式SQL语句的一般形式EXECSQLEND EXEC例 EXECSQLDROPTABLEStudentEND EXEC 3 DBMS处理宿主型数据库语言SQL的方法预编译修改和扩充主语言使之能处理SQL语句 4 嵌入式SQL语句与主语言之间的通信将SQL嵌入到高级语言中混合编程 程序中会含有两种不同计算模型的语句SQL语句描述性的面向集合的语句负责操纵数据库高级语言语句过程性的面向记录的语句负责控制程序流程 5 工作单元之间的通信方式 SQL通信区向主语言传递SQL语句的执行状态信息主语言能够据此控制程序流程 共享变量主语言向SQL语句提供参数将SQL语句查询数据库的结果交主语言进一步处理 游标解决集合性操作语言与过程性操作语言的不匹配 6 共享变量什么是共享变量嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据在SQL语
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!