数据库原理-精品课件.ppt

上传人:max****ui 文档编号:22429662 上传时间:2021-05-25 格式:PPT 页数:443 大小:8.37MB
收藏 版权申诉 举报 下载
数据库原理-精品课件.ppt_第1页
第1页 / 共443页
数据库原理-精品课件.ppt_第2页
第2页 / 共443页
数据库原理-精品课件.ppt_第3页
第3页 / 共443页
资源描述:

《数据库原理-精品课件.ppt》由会员分享,可在线阅读,更多相关《数据库原理-精品课件.ppt(443页珍藏版)》请在装配图网上搜索。

1、第一章 绪 论 2020/12/4 数据库系统 1 本章要求: 1 数据库系统概述 4 数据库系统的组成 2 数据模型 3 DBS的结构 本章内容: 1、了解数据管理的发展过程 2、掌握数据库系统的基本概念和主要特点 3、掌握数据库系统的三级模式结构和数据库系统的组成 4、掌握实体、记录等有关概念和三种数据模型 请选择内容 返回 第一章 绪 论 2020/12/4 数据库系统 2 一、基本概念 1、 数据 :描述事务的符号记录。可用文字、图形等多种形式表 示,经数字化处理后可存入计算机。 2、 数据库( DB) :按一定的数据模型组织、描述和存储在计算 机内的、有组织的、可共享的数据集合。 3

2、、 数据库管理系统( DBMS) :位于用户和操作系统之间的一 层数据管理软件。主要功能包括: 数据定义功能 : DBMS提供 DDL,用户通过它定义数据对象。 数据操纵功能 : DBMS提供 DML,用户通过它实现对数据库的 查询、插入、删除和修改等操作。 1 数据库系统概述 第一章 绪 论 2020/12/4 数据库系统 3 数据库的运行管理 : DBMS对数据库的建立、运 行 和维护进 行统一管理、统一控制,以保证数据的安全性、完整性、并发 控制及故障恢复。 数据库的建立和维护功能 :数据库初始数据的输入、转换, 数据库的转储、恢复、重新组织及性能监视与分析等。 4、 数据库系统( DB

3、S) :计算机中引入数据库后的系统,包括 数据库 DB 数据库管理系统 DBMS 应用系统 数据库管理员 DBA和用户 第一章 绪 论 2020/12/4 数据库系统 4 二、数据管理与数据处理 1、 数据管理 : 对数据收集、整理、组织、存储、维护、检索、传送等 对象 操作 目标:在妥当的时候以妥当的形式给妥当的人提供妥当的数据。 2、 数据处理 :对数据进行加工、计算、提炼, 从而产生新的有效数据的过程 数据 信息 第一章 绪 论 2020/12/4 数据库系统 5 3、 管理与处理的关系 : 管理是处理的基础 处理为管理服务 数据处理 数据处理 源数据 新数据 新数据 管理和处理又可看

4、成一个问题的两个阶 段,故可以统一起来, 其中心是管理 数据管理 数据管理 第一章 绪 论 2020/12/4 数据库系统 6 三、数据管理的发展阶段 人工管理阶段( 50年代中期以前) 文件系统阶段( 50年代中期至 60年代后期) 数据库系统阶段( 60年代后期以后) 第一章 绪 论 2020/12/4 数据库系统 7 1、人工管理阶段(程序员管理阶段) 特点 : 数据不保存 程序员负责数据管理的一切工作 数据和程序一一对应,没有独立性和共享性 数据和程序的关系: 应用程序 1 数据 1 应用程序 2 数据 2 应用程序 n 数据 n 第一章 绪 论 2020/12/4 数据库系统 8 又

5、可分为两个阶段 ( 1) 60年代初期出现了初等的文件系统 主要特点: 组织方式 :顺序文件 数据结构 :物理结构 = 逻辑结构 软件功能 :仅有简单 I/O操作 ( 2 ) 60年代中期出现了成熟的文件系统 主要特点: 组织方式 :顺序和随机存取并用 数据结构 :物理结构和逻辑结构有了简单的变换 软件功能 :软件系统提供了存取方法 硬件 :有了大容量直接存储外存设备,如磁盘、磁鼓等 软件 :有了专门的数据管理软件 -文件系统 处理方式 :有批处理、联机实时处理等 2、文件系统阶段 基 础 第一章 绪 论 2020/12/4 数据库系统 9 三个主要缺点 : 数据高度冗余 :数据基本上还是面向

6、应用或特定用户的。 数据共享困难 :文件基本上是私有的,只能提供很弱的文 件级共享 数据和程序缺乏独立性 :只有一定的物理独立性, 完全没有逻辑独立性。 应用程序 1 数据 1 应用程序 2 数据 2 应用程序 n 数据 n 数据与程序的关系: 存取方法 操作系统负责 第一章 绪 论 2020/12/4 数据库系统 10 3、 数据库系统阶段 文件系统不能适应大数据量、多应用共享数据的根本原因: 数据没有集中管理 数据库方法的基本出发点: 把数据统一管理、控制,共享使用 应用程序 1 应用程序 2 应用程序 n 数据与程序的关系: DBMS 数 据 库 第一章 绪 论 2020/12/4 数据

7、库系统 11 ( 1) 数据高度结构化集成,面向全组织 ( 2) 数据共享性好。可为多个不同的用户共同使用 ( 3) 数据冗余少,易扩充 ( 4) 数据和程序的独立性高 物理独立性 : 存储结构变,逻辑结构可以不变,从 而应用程序也不必改变。 逻辑独立性 : 总体逻辑结构变,局部逻辑结构可以 不变,从而应用程序也不必改变。 好处:简化应用程序的编写和维护 ( 5)数据控制统一 安全性控制 :防止泄密和破坏 完整性控制 :正确、有效、相容 并发控制 : 多用户并发操作的协调控制 故障恢复: 发生故障时,将数据库恢复到正确状态 主 要 优 点 第一章 绪 论 2020/12/4 数据库系统 12

8、4、 各个阶段的比较 : 从四个方面 人工管理 文件系统 数据库系统 谁管理数据 面向谁 共享性 数据独立性 程序员 特定应用 不能 没有 操作系统提供存取方法 系统集中管理 基本上是特定用户 共享很弱 面向系统 充分共享 一定的物理独立性 较高的独立性 文件系统和数据库系统的本质区别 : 内部 :数据库的数据是结构化的,有联系的 文件系统的各记录无联系 外部 :数据库系统是共享的 文件系统基本上是面向特定用户的 第一章 绪 论 2020/12/4 数据库系统 13 2 数据模型 数据处理的抽象过程(涉及三个领域) 建立概念模型 建立数据模型 (便于用户和 DB设计人员交流) (便于机器实现)

9、 一、概念模型 (信息模型) 把现实世界中的客观对象抽象成的某种信息结构,主要用 于数据库设计。 独立于具体的计算机系统 独立于具体的 DBMS支持的数据模型 现实世界 = 信息世界 抽象 = 机器世界(数据世界) 转换 第一章 绪 论 2020/12/4 数据库系统 14 实体 :客观存在并可相互区分的事物。 实体集 :性质相同的同类实体的集合。 属性 : 实体具有的某一特性。 实体标识符 :能将一个实体与其它实体区分开来的一个 或一组属性 。 信 息 世 界 记录 实体 (抽象表示) 文件 实体集 字段或数据项 属性 关键字 实体标识符。唯一地标识一个记录 。 又称 码 、 键 。 数 据

10、 世 界 1、实体与记录 第一章 绪 论 2020/12/4 数据库系统 15 2、型与值 在 DBS中,每一个对象广义上讲都有型与值之分: 型 是对象的结构或特性描述, 值 是一个具体的对象实例。 类似于程序设计语言中 数据类型 与 数据值 的概念。 ( 1) 实体型:对实体固有特性或结构的描述。 用实体名及其属性名集合来抽象和刻画。 如 汽车(车牌号,车型,车主) 实体值:实体型的一个实例,即一个具体的实体。 如 (豫 A00001,丰田,张三) ( 2) 记录型:记录格式。 记录值:一个具体的记录。 第一章 绪 论 2020/12/4 数据库系统 16 如: 车牌号 名称 车主 豫 A0

11、0001 丰田 张三 ( 3)几点说明 区分型与值的实质 DBS中讨论的重点是型 通常只说实体、记录,含义根据上下文自明 3、实体间的联系 实体内部的联系 (属性间的联系): 反映在数据上就是记录内部数据项间的联系 实体之间的联系 : 反映在数据上就是记录之间的联系 第一章 绪 论 2020/12/4 数据库系统 17 ( 1) 1对 1联系( 1 : 1): 两个实体 集中的每一个实体至多和另一个实体集 中的一个实体有联系。 如 国家 部长 学员队 学员 ( 2) 1对多联系( 1 : n): 若实体集 A 中的每个实体与实体集 B中 0个或多个实 体有联系,而 B中每个实体至多与 A中的

12、一个实体有联系,则称从 A到 B为 1对多 的联系。 如 国家 总统 学员队 队长 实体之间的联系可归结为三类: ( 3) 多对多联系( m : n): 两个实 体集中的每一个实体都和另一个实体集 中 0个或多个实体有联系 。 如 学员 课程 第一章 绪 论 2020/12/4 数据库系统 18 DBS的核心问题之一: 如何表示和处理实体及实体间的联系 。 4、概念模型的表示方法之一: 实体 联系方法 ( Entity-Relationship Approach) 用 E R图( Entity-Relationship Diagram)描述: 实体型:用长方形表示 联系 :用菱形表示 属性 :

13、用椭圆形表示 框内写上相应的名称 用无向边连接: 实体与其属性 联系与其属性 联系与有关实体, 并标上联系类型 实体名 联系名 实体名 属性名 属性名 属性名 1 n 第一章 绪 论 2020/12/4 数据库系统 19 说明: 联系也必须命名 多个实体之间也可以有联系 联系也可以有属性 学员 领导 1 n 供应量 单个实体之间也可以有联系 项 目 供应商 零 件 供应 p m n 第一章 绪 论 2020/12/4 数据库系统 20 例:某工厂物资管理 E-R图( P20) 供应商 供应商号 姓名 地址 帐号 电话号码 项 目 项目号 预算 开工日期 仓 库 仓库号 面 积 电话号 职 工

14、职工号 姓名 年龄 职称 零 件 零件号 名称 规格 单价 描 述 库存 库存量 m n 工作 1 n 领导 1 n 供应 供应量 m n p 第一章 绪 论 2020/12/4 数据库系统 21 二、数据模型 是对现实世界进行抽象的工具,它按计算机系统的观点对 数据建模,用于提供数据库系统中信息表示和操作手段的形式 框架,主要用于 DBMS的实现,是数据库系统的核心和基础。 1、常用的数据模型 层次模型 网状模型 关系模型 面向对象模型 称作非关系模型,是下 列基本层次联系的集合 Ri, Rj是实体型(记录型) Lij是从 Ri到 Rj的 1: 1或 1: n联系 Ri Rj Lij 第一章

15、 绪 论 2020/12/4 数据库系统 22 2、数据模型 的 三要素 形式化描述 数据 、 数据之间的联系 以及 数据操作 和有关的 语义 约束规则 的方法 数据结构 数据操作 完整性约束 如何保证数据的 约束条件得到满足 如 何 实 现 查、增、删、改 如何表示 实体及联系 (难点是表示联系) 根据现实世界实体间联系的特征 用四种不同的方法进行抽象 层次模型 网状模型 关系模型 面向对象模型 (因此,是按照数据结构 的类型来命名数据模型) ( 动态 ) ( 静态 ) 第一章 绪 论 2020/12/4 数据库系统 23 3、层次模型 根据一个单位的组织结构直观地得出 学院 部 系 处 学

16、员队 教研室 教员 学员 方框表示一个实体型 (结点) 线表示联系 (边) ( 1)定义: 用树形结构来表示实体以及实体间联系的模型 。 其特征是:( a)有且仅有一个结点无双亲(根结点); ( b)其它结点有且仅有一个双亲。 第一章 绪 论 2020/12/4 数据库系统 24 ( 2)说明: ( a) 树中实体间联系只能是从父到子的 1:1或 1:n联系, 对 m:n联系,须使用辅助手段转换成多个 1:n联系, 但不易掌握 ( b) 简单直观,结构清晰,运行效率高,但编程复杂 4、网状模型 ( 1)定义: 用图结构来表示实体以及实体间联系的模型 。 其特征是:任一结点都可以无双亲或有一个以

17、上的双亲。 例 教员 学校 班级 学生 课程 第一章 绪 论 2020/12/4 数据库系统 25 ( 2)优: 可表示 m:n的联系,运行效率高 缺:过于复杂,实现困难 ( 3)说明 ( a)即使对网状模型, 具体在计算机上实现时, m:n 的 联系仍需分解成若干个 1:n的联系 。(因此,网状模型的图 结构实质上是有向图),如 学 生 课 程 选课 m n 课程成绩单 学生成绩单 学号 姓名 年龄 性别 课程号 名称 学号 课程号 得分 第一章 绪 论 2020/12/4 数据库系统 26 ( b)网状模型中允许两结点间有多条边, 层次模型则不允许 5、关系模型 层次、网状模型基本上是面向

18、专业人员的,使用极不方便 问题:寻找一种能面向一般用户的数据模型 ? ( 1)定义: 用二维表(关系)来描述实体及实体间联系的模 型 。 ( 2)示例 零 件 供应商 供应 m n 设 备 工 人 使用 保养 第一章 绪 论 2020/12/4 数据库系统 27 供应商 S S1 张三 北京 S2 李四 郑州 S# SNAME SADDR 零件 P P1 电机 2000 P2 螺丝 2 P# PNAME PRICE (联系)供应 SP S1 P1 200 S1 P3 22 S# P# QTY 关系: 对应一张表, 每表起一个名称即关系名 元组: 表中的一行 属性: 表中一列, 每列起一个名称即

19、属性名 主码: 唯一确定一个元组的属 性组 域: 属性的取值范围 第一章 绪 论 2020/12/4 数据库系统 28 ( 3)关系模式:对关系的描述,一般表示为: 关系名(属性 1,属性 2, ,属性 n) ( 4)优点: 无论实体还是实体之间的联系都用统一的数据结构 (二维表、关系)来表示,可方便地表示 m:n联系,因此概 念简单,用户易懂易用 如: 可表示为: 学生(学号,姓名,性别,系和年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 学生 选修 课程 m n 表格中行、列次序无关 有坚实的理论基础(关系理论) 第一章 绪 论 2020/12/4 数据库系统 29 存取

20、路径对用户透明,用户只需指出“做什么”,不 需说明“怎么做”,因此数据独立性更高 缺点: 由于存取路径对用户透明,查询效率不够高,必 须对查询请求进行优化。 说明: 关系必须规范化,关系的每个分量必须是一个不可分的 数据项,不允许表中套表。规范化理论将在后续章节讲解。 ( 5)关系模型与非关系模型的比较 统一 不统一 均为关系 实体及实体间联系 采用的数据结构 操作方式 存取路径 关系模型 非关系模型 对用户透明 对用户不透明 一次一集合 一次一记录 第一章 绪 论 2020/12/4 数据库系统 30 三级模式 (外模式、模式、内模式) 两级映象 (外模式 /模式,模式 /内模式映象) 一、

21、 DBS的三级模式结构 1、 模式 ( Schema):又称 逻辑模式 。 DB的全局逻辑结构 。 即 DB中全体数据的逻辑结构和特征的描述。 说明 模式只涉及到型的描述,不涉及具体的值(实例),反映的是 数据的结构及其联系 模式不涉及物理存储细节和硬件环境,也与应用程序无关 模式承上启下,是 DB设计的关键 DBS提供模式 DDL( Data Definition Language)来定义模式 (描述 DB结构) 3 DBS的结构 第一章 绪 论 2020/12/4 数据库系统 31 模式定义的任务 (概念模型 模式) 定义全局逻辑结构(构成记录的属性名、类型、宽度等) 定义有关的安全性、完

22、整性要求 定义记录间的联系 一个数据库只有一个模式 2 、 外模式 :又称 子模式 或 用户模式 。 DB的局部逻辑结构 。 即与某一应用有关的数据的一个逻辑表示。 说明 : 外模式是某个用户的数据视图, 模式是所有用户的公共数据视图 ; 一个 DB只能有一个模式,但可以有多个外模式; 外模式通常是模式的子集,但可以在结构、类型、长度等 方面有差异; DBS提供外模式 DDL。 第一章 绪 论 2020/12/4 数据库系统 32 3、 内模式 :又称 存储模式 。 数据的物理结构和存储方式的描述 。 即 DB中数据的内部表示方式。 说明: 一个数据库只有一个内模式 DBS提供内模式 DDL;

23、 内模式定义的任务 记录存储格式 , 索引组织方式 , 数据是否压缩 、 是否加密等 。 4、两级映象及其作用 ( 1) 外模式 /模式映象 :定义外模式和模式间的对应关系。对 应同一个模式可以有多个外模式,对每个外模式都有一个外模 式 /模式映象。 作用 :模式变,可修改映象使外模式保持不变,从而应用程 序不必修改,保证了程序和数据的逻辑独立性。 第一章 绪 论 2020/12/4 数据库系统 33 ( 2) 模式 /内模式映象 :定义 DB全局逻辑结构和存储结构间的 对应关系。一个数据库只有一个模式,也只有一个内模式,因此 模式 /内模式的映象也是唯一的。 作用 :存储结构变,可修改映象使

24、逻辑结构(模式)保持不变, 从而应用程序不必修改,保证了数据与程序的物理独立性。 第一章 绪 论 2020/12/4 数据库系统 34 4 数据库系统的组成 1、 数据库 :一个或多个数据库 数据库的四要素:用户数据、元数据、索引和应用元数据 2、 软件 操作系统;支持 DBMS的运行 数据库管理系统 DBMS( DataBase Management System): 操纵和管理数据库的大型软件系统,是数据库系统的核心 数据库应用开发工具等辅助软件 具有数据库接口的高级语言与编译系统,如 C、 C+等 某个数据库应用系统 一、数据库系统( DataBase System, DBS)的组成 广

25、义上讲, DBS就是 计算机系统中引进数据库后的构成 。 有下面四部分: 第一章 绪 论 2020/12/4 数据库系统 35 3、 人员 用户 应用程序员 数据库管理员 DBA (使用) (开发) (管理) DBA( Data Base dministrator)的职责 : 决定数据库的内容和逻辑结构、存储结构 确定数据的安全性要求和完整性约束条件 监控数据库的使用和运行,维护数据库 决定数据库的存储结构和存储策略 负责数据库的改进和重组重构 4、 硬件 计算机及有关设备,要求有足够大的内、外存储容量及较 高的处理速度。 第一章 绪 论 2020/12/4 数据库系统 36 数据库系统图示:

26、 用户 1 用户 2 用户 n 应用程序 1 应用程序 m 辅助软件 DBMS 操作系统 数据库 数据库 DBA 负责 应用 程序员 第一章 绪 论 2020/12/4 数据库系统 37 二、 数据库系统研究的对象 如何高效巧妙地进行数据管理,而又 花费最少 如:占用空间少 查询快 维护方便等 三个主要研究领域 : DBMS及其辅助软件 数据库设计 数据库理论 作业: 3, 5, 7, 12, 13, 20, 22 第二章 关系数据库 2020/12/4 数据库系统数据库系统 38 本章要求: 本章内容: 请选择内容 返回 1、掌握关系、关系模式、关系数据库等基本概念 2、掌握关系的三类完整性

27、的含义 3、掌握关系代数运算 1 关系模型的基本概念 2 RDBS的数据操纵语言:关系代数 3 RDBS的数据操纵语言:关系演算语言 第二章 关系数据库 2020/12/4 数据库系统数据库系统 39 层次、网状数据库 是面向专业人员的,使用很不方便 。程序员必须经过良好的培训,对所使用的系统有深入的 了解才能用好系统。 关系数据库 就是要解决这一问题,使它成为面向用户 的系统。 关系数据库是应用数学方法来处理数据的。它具有结 构简单、理论基础坚实、数据独立性高以及提供非过程性 语言等优点。 1 关系模型的基本概念 第二章 关系数据库 2020/12/4 数据库系统数据库系统 40 一、关系的

28、数学定义 1、 域 ( Domain) : 值的集合。它们具有相同的数据类型 ,语义上通常指某一对象的取值范围。 例如:全体整数, 0到 100之间的整数, 长度不超过 10的字符串集合 2、 笛卡尔积 ( Cartesian Product):设 D1、 D2、 、 Dn 是 n个域 , 则它们的笛卡尔积为 D1D2 Dn=(d1, d2, , dn) | di Di, i=1,2,n 其中每一个元素称为一个 n元组 (n-tuple), 简称 元组 ; 元组中的每个值 di称为一个 分量 (component). 第二章 关系数据库 2020/12/4 数据库系统数据库系统 41 笛卡尔积

29、可以写成一个二维表 例如: 设 D1=张三,李四 , D2=数学,语文 , D3=优,良 则 D1 D2 D3可用二维表表示为: 张三 数学 优 张三 数学 良 张三 语文 优 张三 语文 良 李四 数学 优 李四 数学 良 李四 语文 优 李四 语文 良 3、 关系 ( Relation) 笛卡尔积 D1D2 Dn的子集合, 记作 R( D1, D2, , Dn) 关系名 n为关系的目或度 第二章 关系数据库 2020/12/4 数据库系统数据库系统 42 4、说明 关系是一个二维表。 每行对应一个元组。 每列可起一个名字,称为属性。属性的取值范围为一个 域,元组中的一个属性值是一个分量。

30、5、关系的性质 列是同质的,即每列中的数据必须来自同一个域 每一列必须是不可再分的数据项(不允许表中套表,即 满足第一范式) 不能有相同的行 行、列次序无关 第二章 关系数据库 2020/12/4 数据库系统数据库系统 43 二、关系模型 三部分:关系数据结构、关系操作集合、关系的完整性 (一)数据结构 1、单一的数据结构:关系(二维表) 不论是实体还是实体间的联系都用关系表示 。 实体值 关系的元组,在关系数据库中通常称为 记录 属性值 元组的分量,在关系数据库中通常称为 字段 关键字(码):唯一标识一个元组的属性组 关键字可以有多个,统称 候选关键字 。在使用时,通 常选定一个作为 主关键

31、字 。主关键字的诸属性称为 主属 性 ,其它为 非主属性 。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 44 关系数据库模式 :对关系数据库的描述,包括域 的定义及在域上定义的所有关系模式。 关系数据库 :所有实体及实体间联系的关系的集 合。是某时刻所有关系模式对应的关系的集合。 2、关系模式: 关系的描述 。 包括关系名、诸属性名、属性向域的映象、属性间的依赖。 关系的型 一个元组为关系的一个值 表示: R( U, D, dom, F) 属性的类型、长度等 值 型 第二章 关系数据库 2020/12/4 数据库系统数据库系统 45 3、关系的三种类型 基本关系:客观存在的

32、基本表 查询表:由基本表按一定条件检索得到的结果 视图 ( View): 从一个或多个基本关系上导出的关系 。它 不对应实际的存储数据,是一个虚关系,然而可永久存在。 相当于关系模型的外模式。 由于二维表的存储策略非常简单,关于数据库的物理 存储完全由 DBMS自动完成。因此,在关系模型中不需要 与内模式相应的概念。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 46 (二)关系操作 1、种类:选择、投影、连接、除、并、交、差 增加、删除、修改 查询操作 维护操作 一次一集合(关系型) 一次一记录(非关系型) 非过程化语言:用户只需告诉做什么( What) 不需告诉怎么做( H

33、ow) 数据定义、数据操纵、数据控制语言集成在一起 DDL DML DCL:权限控制、完整性控制等 2、特点: 集合操作,一次操作 可存取多个元组 第二章 关系数据库 2020/12/4 数据库系统数据库系统 47 (三)关系模型的三类完整性 1、 实体完整性 ( Entity Integrity) 基本关系的所有主属性不能取空值 原因:基本关系 实体集 实体必可区分 (标识符) 主关键字是 唯一性标识, 故不能空 2、 参照完整性 ( Referential Integrity),也叫 引用完整性 若基本关系 R含有与另一个基本关系 S的主关键字相对 应的属性组 F( F称为 R的 外键 或

34、 外部码 ),则 R中每个元 组在 F上的值或为空值,或等于 S中某个元组的主关键字值 。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 48 例: 职工关系 EMP( ENO, ENAME, DNO) 部门关系 DEPT( DNO, DNAME) DEPT的主键 EMP的外键 ,只能取空 值或 DEPT 中某关键字 的值 又如:学生关系( SNO, SNAME, AGE, SEX) 课程关系( CNO, CNAME) 选课关系( SNO, CNO, G) 3、 用户定义的完整性 用户定义的某一属性值必须满足的语义要求。 一经定义, DBMS会自动检查,从而不必在应用程序 中作

35、检查。 本节开头 下一节 本章开头 第二章 关系数据库 2020/12/4 数据库系统数据库系统 49 3、差( Difference): R S = t | tRtS 一、传统的集合运算 1、并( Union): R S = t | tRtS 2、交( Intersection): R S = t | tRtS 2 RDBS的数据操纵语言:关系代数 关系代数的运算对象是关系,运算结果也为关系 。其运算按运算符的不同可分为两类。 4、笛卡尔积(广义): R S = trts | tr R ts S 第二章 关系数据库 2020/12/4 数据库系统数据库系统 50 二、专门的关系运算 1、 选

36、择 ( Selection),又称限制( Restriction) (R): F 在关系 R中选出满足条件 F的诸元组形成一个新 关系。 条件表达式 2、 投影 ( Projection) ( R) A :在 R中选出若干属性列组成一个新关系。 属性组 投影后若有重复行,则自动保留一个 从行的角度的运算 从列的角度的运算 第二章 关系数据库 2020/12/4 数据库系统数据库系统 51 当 为等号且 A、 B两属性相同时,称为 自然连接 ,记作 3、连接( Join) R S A B :从两个关系的笛卡尔积中选取属性间 满足条件 A B的元组。 R中属性 S中属性 比较运算符 说明: R S

37、 A B = ( RS) A B R S 自然连接将去掉重复属性 连接是同时处理 多个关系的 重要运算 若仅有 为等号的条件 , 称为 等值连接 第二章 关系数据库 2020/12/4 数据库系统数据库系统 52 ? 4、 除 ( Division) R( X, Y) S( Y, Z):把 R按 X的值分组,若某一组 中属性组 Y的值包含 S在 Y上投影的全部 元组,则该 X的值作为 商关系的一个元组 属性组 例:求至少选修 C1、 C3课程的学生号码 设一临时关系 K: C# C1 C3 关系代数表达式 ( SC) K = S#, C# S1, S# C# G S1 C1 A S1 C2 A

38、 S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A SC: 按 S1分组 第二章 关系数据库 2020/12/4 数据库系统数据库系统 53 S1, S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A 4、 除 ( Division) R( X, Y) S( Y, Z):把 R按 X的值分组,若某一组 中属性组 Y的值包含 S在 Y上投影的全部 元

39、组,则该 X的值作为 商关系的一个元组 属性组 例:求至少选修 C1、 C3课程的学生号码 设一临时关系 K: C# C1 C3 关系代数表达式 ( SC) K = S#, C# S# C# G SC: 按 S2分组 第二章 关系数据库 2020/12/4 数据库系统数据库系统 54 S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A S1, 4、 除 ( Division) R( X, Y) S( Y, Z):把 R按 X的值分组,若某一组 中属性组 Y

40、的值包含 S在 Y上投影的全部 元组,则该 X的值作为 商关系的一个元组 属性组 例:求至少选修 C1、 C3课程的学生号码 设一临时关系 K: C# C1 C3 关系代数表达式 ( SC) K = S#, C# S# C# G SC: 按 S3分组 第二章 关系数据库 2020/12/4 数据库系统数据库系统 55 S1, 4、 除 ( Division) R( X, Y) S( Y, Z):把 R按 X的值分组,若某一组 中属性组 Y的值包含 S在 Y上投影的全部 元组,则该 X的值作为 商关系的一个元组 属性组 例:求至少选修 C1、 C3课程的学生号码 设一临时关系 K: C# C1

41、C3 关系代数表达式 ( SC) K = S#, C# S# C# G SC: 按 S4分组 1, S4 S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A 第二章 关系数据库 2020/12/4 数据库系统数据库系统 56 三、关系代数运算举例 S: S# SN SD SA S1 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20 S6 F CS 22 C: C# CN PC# C1 G C2 H C1

42、 C3 I C2 C4 J C2 C5 K C4 SC: S# C# G S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C2 B S4 C5 D S5 C2 C S5 C3 B S5 C5 B S6 C1 A S6 C5 A 求至少选修这样一 门课的学生姓名,这门 课的直接先行课是 C2 先找出先行课为 C2的课程号: ( C), 记为 PC PC#=C2 找选修该类课程的学生学号: 记为 PCS PC ( SC) S#, C# 找出学生姓名: PCS ( S) S#, SN

43、 ( ) SN 第二章 关系数据库 2020/12/4 数据库系统数据库系统 57 本节开头 下一节 本章开头 最终的关系代数表达式 : ( ) SN ( S) S#, SN ( C ) PC#=C2 ( SC ) S#, C# PC PCS 说明: 用关系代数表示查询时,若查询涉及多个关系,需用连 接操作实现;若查询诸如“选修了全部课程”的学生、“使 用了全部零件”的工程等,需用除法操作实现。 作业: 1, 4, 5, 6 第二章 关系数据库 2020/12/4 数据库系统数据库系统 58 一、元组关系演算 1、元组关系演算表达式: 关系演算:基于谓词演算 面向元组:谓词变量的获得值是关系中

44、的元组 (元组变量) 面向域:谓词变量的获得值是关系中某属性的值 (域变量) 按谓词变量 的特征划分 t | (t) 公式 t为元组变量 运算的结果 还是一个关系 3 RDBS的数据操纵语言:关系演算语言 第二章 关系数据库 2020/12/4 数据库系统数据库系统 59 2、原子公式 R (t): 表示 t是关系 R中的一个元组 tiuj: 表示 t的第 i个分量和 u的第 j个分量满足比较关系 tiC 或 C ti :含义同上 ,只不过 C为常量 3、公式的递归定义 (1)每个 原子公式 是一个公式; (2)设 1、 2是公式,则 1、 1 2、 1 2 也是公式; (3)设 是公式, t

45、是元组变量,则 ( t) 、 ( t) 也是公式; (4)除此之外没有其它形式的公式。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 60 4、关系代数运算均可用关系演算来表示,反之亦然 见教材 P71。 S: S# SN SD SA 5、用关系演算来表达查询 例 1,求年龄大于或等于 20的学生: S1 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20 S6 F CS 22 S20 = t | S(t) t420 例 2,求学生姓名及所在的系: S1= t (2) | ( u )(S(u) t1=u2 t2=u3 ) S1

46、 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20 S6 F CS 22 第二章 关系数据库 2020/12/4 数据库系统数据库系统 63 二、未实现的元组关系演算语言 ALPHA E. F. Codd提出,但并未实现。 1、检索操作( GET) ( 1)不设元组变量 例:取出计算机系学生的学号: 工作空间名 表达式 限定条件 GET W ( S.S#): S.SD=CS 第二章 关系数据库 2020/12/4 数据库系统数据库系统 64 二、未实现的元组关系演算语言 ALPHA E. F. Codd提出,但并未实现。 1、检索操作( G

47、ET) ( 1)不设元组变量 例:取出计算机系学生的学号: 相当于原子公式 tiC GET W (1) ( S.S#): S.SD=CS (事实上关系名起到元组变量的作用 ) 相当于投影 取出 一个 计算机系学生的学号 GET W ( S.S#): S.SD=CS 定额 第二章 关系数据库 2020/12/4 数据库系统数据库系统 65 (2) 使用元组变量 应用场合 用较短的名字代替较长的关系名 使用量词时 例 查找不选 C1课程的学生姓名 RANGE SC X GET W ( S.SN): X(X.S# S.S# X.C# C1) 查找选修全部课程的学生姓名 RANGE C CX RANG

48、E SC SCX GET W( S.SN): CXSCX(SCX.S# =S.S# SCX.C# =CX.C#) 变量范围说明 关系名 元组变量 第二章 关系数据库 2020/12/4 数据库系统数据库系统 66 2、存储操作 ( 1)修改: UPDATE ( 2)插入: PUT ( 3)删除: DELETE 参阅教材 P67-P69。 关键字不能修改, 只能先删除、再插入 第二章 关系数据库 2020/12/4 数据库系统数据库系统 67 四、域关系演算语言 QBE QBE是 Query By Example 的缩写, 1978年在 IBM370上 实现。 1、特点 用户通过表格形式提出查询

49、,查询结果也通过表格显示 出来 用户容易掌握,易学易用 三、域关系演算 与元组关系演算类似,只不过这里的变量取值范围是属 性值,其谓词变元称作欲变量,关系的属性名可视作欲变量 。 关系代数、元组关系演算、域关系演算的表达能力是 等价的。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 68 2、 使用方法 ( 1) 用户提出使用要求(如键入某一命令) ( 2) 机器显示空白表格 ( 3) 用户输入关系名 如 学生关系 S S ( 4)机器自动显示属性名 S# SN SD SA 第二章 关系数据库 2020/12/4 数据库系统数据库系统 69 2、 使用方法 ( 1) 用户提出使

50、用要求(如键入某一命令) ( 2) 机器显示空白表格 ( 3) 用户输入关系名 如 学生关系 S ( 4) 机器自动显示属性名 S S# SN SD SA ( 5) 提出查询要求 如 查询计算机系 的学生姓名和年龄 P.张三 CS P.30 查询条件 SD=CS P.是操作符 示例元素 (任选一个可能的值 ) 第二章 关系数据库 2020/12/4 数据库系统数据库系统 70 S S# SN SD SA 3、其他例子 : ( 1)查询操作 例 1:查计算机系年龄大 于 19的学生姓名 P.张三 CS 19 S S# SN SD SA P.张三 CS 19 P.张三 两个条件写两行 , 示例元素

51、 相同 , 表示 条件之间是 “与” 的关 系 S S# SN SD SA P.张三 CS 19 P.李四 示例元素 不同 , 表示 条件之间是 “或” 的关系 例 2:查计算机系或年龄 大于 19的学生姓名 第二章 关系数据库 2020/12/4 数据库系统数据库系统 71 例 3:查选修 C2的学生名字 (涉及两个关系,需要连接操作) S S# SN SD SA P.张三 S1 SC S# C# G S1 C2 不同关系中的 两个示例元素相同, 表示了连接操作。 第二章 关系数据库 2020/12/4 数据库系统数据库系统 72 (2) 修改操作 修改操作符为“ U.,不允许修改主码,若要

52、修改主码, 需先删除元组,再插入。 S S# SN SD SA U. CS S1 S S# SN SD SA CS S1 U. 修改操作不包含表 达式,可有两种表 示方法。 例 2:将计算机系所有 学生的年龄增加 1岁。 S S# SN SD SA CS S1 U. 例 1:把学号为 S1的学 生转入计算机系。 19 S1 19+1 第二章 关系数据库 2020/12/4 数据库系统数据库系统 73 ( 3) 插入操作 操作符为“ I.,新元组必须包含码,其他属性值可为空。 S S# SN SD SA CS S8 I. 19 美丽 例: ( 4)删除操作 操作符为“ D.。 例:删除计算机系

53、的学生。 S S# SN SD SA CS D. 第三章 关系数据库标准语言 SQL 2020/12/4 数据库系统数据库系统 74 本章要求: 本章内容: 请选择内容 返回 1、掌握 SQL定义基本表和建立索引的方法 2、掌握 SQL中各种查询方法和数据更新方法 3、掌握 SQL中视图的定义方法和用法 4、掌握 SQL的授权机制 5、了解嵌入式 SQL的基本使用方法 1 SQL概述 2 SQL数据定义功能 3 SQL数据操纵功能 4 视图 5 SQL数据控制功能 6 嵌入式 SQL 第三章 关系数据库标准语言 SQL 2020/12/4 数据库系统数据库系统 75 一、 SQL 的发展 SQ

54、L是 Structured Query Language的缩写 ( ANSI解释为 Standard Query Language) 74年 Boyce 例 3 带条件的分组查询、统计: 使用 HAVING 求选修课程超过 3门的学生学号 SELECT S# FROM SC GROUP BY S# HAVING COUNT( *) 3; HAVING是选择分组的条件且 必须和 GROUP BY一起使用 WHERE是选择记录的条件; 通过一个库函数, 使之可不必出现在 GROUP BY中 建立两个表的连接 按学号分组 过滤分组,可用 库函数多次作用 同一字段 按学号降序排序 库函数只能作用于 H

55、AVING和 目标列,而不能用于 WHERE 。 第三章 关系数据库标准语言 SQL 2020/12/4 数据库系统数据库系统 118 4 SQL数据操纵 -数据更新 一、插入数据 1、插入单个元组 INSERT INTO 表名 (字段名 ,字段名 VALUES (常量 ,常量 ; 例 1:插入一条选课记录( S1, C5)。 INSERT INTO SC( S#, C#) VALUES( S1, C1); 第三章 关系数据库标准语言 SQL 2020/12/4 数据库系统数据库系统 119 说明: 当在 INTO后面仅指定部分属性列时,插入记录后其它 列的值为空值; 如果 INTO后面没有指定属性列,则必须按表列的定义 次序为每个列指定一个值; 具有 NOT NULL属性的列,必须指定值。 2、插入子查询结果 INSERT INTO 表名 (字段名 ,字段名 子查询; 第三章 关系数据库标准语言 SQL 2020/12/4

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

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

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


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