标签:关系 重点 数据库 视图 完整性 数据库系统 数据 属性
数据库系统重点
课后习题答案
第一章
https://wenku.baidu.com/view/ce007f3e1511cc7931b765ce050876323112740c.html
第七章
https://wenku.baidu.com/view/8e455b9a4531b90d6c85ec3a87c24028915f85ba.html
后面
https://wenku.baidu.com/u/ok%E6%89%A7%E5%AD%90%E4%B9%8B%E6%89%8B815?from=wenku
其他版本
https://wenku.baidu.com/view/c92538f77c1cfad6195fa7ca.html
第三章 23题答案https://wenku.baidu.com/view/666819916bec0975f465e22a.html
第一章 数据库系统概论
数据管理与数据库
- 数据管理是数据处理的基础工作,数据库是数据管理的技术和手段
数据库
- 是长期存储在计算机内的,有组织,可共享的数据集合
数据库管理系统DBMS
- 提供数据库管理的计算机系统软件
数据库系统及发展
- 文件系统数据管理
三级模式二层结构
- 外模式、模式、内模式
- 多 1 1
- 打印P15-B页
模式
- 对数据库中数据所进行的一种结构性的描述
视图/数据
- 某一种表现形式下表现出来的数据库中的数据
名词
- 数据库DB
- 数据库管理系统DBMS
- 数据库应用DBAP
- 数据库管理员DBA
题目
- 什么是数据库?数据库中的数据有什么特点?
- 数据库是数据管理的新方法和技术,是按数据结构来存储和管理数据的计算机软件系统。数据库中的数据具有数据整体性(即保持自身完整的数据结构)、共享性(多个用户可以同时共享数据库中的数据资源)。
- 什么是数据库管理系统?它的主要功能是什么?
- 数据库管理系统简称DBMS,是专门用于管理数据库的计算机系统软件。
- 能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性,安全性进行控制的功能。
- 什么是数据的整体性?什么是数据的共享性?为什么要使数据有整体性和共享性?
- 整体性是指在进行数据库设计时,要站在全局需要的角度进行抽象和组织数据,要完整的、准确的描述数据自身和数据之间联系的情况,要建立适合整体需要的数据模型。
- 数据的共享性是指由于数据库系统是从整体角度上看待和描述数据的。数据不再是面向某个应用,而是面向整个系统。
- 文件系统管理数据有什么缺陷?
- 有三个缺陷
- 因为文件之间缺乏联系,会造成每个应用程序都有对应的文件,所以数据冗余度大。
- 由于数据冗余,再进行更新操作时,可能产生数据不一致缺陷。
- 由于文件之间相互独立,缺乏联系,会造成数据联系弱的缺陷。
- 使用数据库系统有什么好处?
- 查询迅速准确。
- 数据结构化,DBMS统一管理。
- 数据冗余度小。
- 具有较高的数据独立性。
- 数据的共享性好。
- DBMS还提供了数据的控制功能。
- 试述数据库系统的三级模式结构及每级模式的作用。
- 逻辑模式。逻辑模式是对数据库中数据整体逻辑结构和特征的描述。逻辑模式是系统为了减小数据冗余,实现数据共享的目标,并对所有用户的数据进行综合抽象,而得到的统一的全局数据视图。
- 外模式。外模式是对各个用户和程序所涉及到数据的逻辑结构和数据特征的描述。可以方便用户使用和增强数据的安全性。
- 内模式。那模式是数据的内部表示或底层描述。将系统的模式组织成最优的物理模式。
- 什么是数据的独立性?数据库系统中为什么能具有数据独立性?
- 数据独立性是指应用程序和数据之间的依赖程度低,相互影响小。
- 返回逻辑独立性和物理独立性。数据的物理独立性是指应用程序对数据存储结构的依赖程度。数据的逻辑独立性是指应用程序对数据全局逻辑结构的依赖程度。
- 试述数据库系统中的二级映像技术及作用。
- 指望模式与模式之间的映像、模式与内模式之间的映像技术。
- 这两级映像技术不仅在三级数据模式之间建立了联系,同时也保障了数据的独立性。
第二章 数据模型与概念模型
现实世界 | 信息世界 | 计算机世界 |
---|---|---|
实体 | 实例 | 记录 |
特征 | 属性 | 数据项 |
实体集 | 对象 | 数据或文件 |
实体间关系 | 对象间的联系 | 数据间的联系 |
概念模型 | 数据模型 |
概念模型基本概念
码
- 关键字,唯一标识一个实体
主码
候选码
域
- 属性的取值范围称为属性的域
实体联系类型
- 一对一
- 一对多
- 多对多
概念模型的表示方法
实体-联系方法(E-R图)
- 实体集
- 属性
- 联系
图形表示
- 长方形表示实体集
- 椭圆形表示实体集的属性
- 菱形表示实体集间的联系
- 双竖边的矩形框表示子类,用直线加小圆圈表示超类。P54
- 等 详见书P26
数据模型
常见
- 层次模型
- 使用树形来表示各类实体以及实体间的联系
- 网状模型
- 图
- 关系模型(对应非关系模型)
- 最重要
- 表
三要素
- 数据结构
- 数据操作
- 完整性约束
- 基本的完整性约束是实体完整性和参照完整性
- 特殊的完整性条件是用户定义的完整性
关系数据模型
-
一个关系就是一张二维表
-
基本概念
- 元组:一行
- 属性:一列
- 码
- 域:属性的取值范围
- 分量:元组中的一个属性值称为分量
关系操作和关系的完整性约束条件
- 操作
- 数据查询和插入
- 删除
- 修改数据
- 完整性约束
- 实体完整性
- 在关系中用主关键字来唯一标识一个实体,实体具有独立性,关系中的这种约束条件称为实体完整性。
- 参照完整性
- 定义外键与被参照的主键之间的引用规则
- 用户定义的完整性
- 用户定义某个具体数据库所涉及的数据必须满足的约束条件
- 实体完整性
课后习题8
- 关系模型采用二维表表示实体及实体间的联系,实体间的联系是通过不同关系中的公共属性实现的,若关系DBMS不再提供连接操作,将无法完成涉及多个表之间的查询操作。
第三章 数据库系统的设计方法
数据库系统设计的基本步骤
-
前两个阶段独立于数据库管理系统。后面阶段依赖于数据库管理系统。
-
需求分析阶段
- 准确了解并分析用户对系统的需求和要求,弄清系统要达到的目标和实现的功能
- 系统分析员将分析结果用数据流程图和数据字典表示
- 数据流程图即表达数据和处理过程之间的关系
- 数据字典对系统中数据的详尽描述
-
概念结构设计阶段
- 整个数据库设计的关键,将应用需求转化为与计算机硬件无关的、与数据库管理系统无关的信息模型。
- 即E-R图
-
逻辑结构设计阶段
- 将概念结构转换为某个DBMS所支持的数据模型
- 要完成数据库的逻辑模式和外模式的设计工作。
-
物理设计阶段
- 为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储位置、数据存储结构和存取方法
- 得出内模式
-
数据库实施阶段
- 用DBMS提供的数据操作语言和宿主语言,根据数据库的逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库并进行系统试运行
-
数据库运行和维护阶段
- 在数据库系统运行过程中,必须不断地对结构性能进行评价、调整和修改
注意该页的两个图P48
需求分析阶段
数据字典:存储关于数据项的数据
- 数据项
- 不可再分的数据单位
- 数据结构
- 反应了数据之间的组合关系
- 数据流
- 数据结构在系统内传输的路径
- 流出过程(来自哪里)、流入过程(到哪里去)等信息
- 数据存储
- 处理过程
- 处理过程的具体处理逻辑一般用判定表或判定树描述
- 数据字典中只需要描述处理过程的说明性信息
概念结构设计阶段
设计方法
- 自顶向下
- 从全局概念结构开始
- 自底向上
- 从局部应用的概念结构开始
- 逐步扩张
- 从核心开始
- 混合策略设计
设计步骤
- P53图
- 抽象数据并设计局部视图
- 集成局部视图,得到全局的概念结构
三种数据抽象方法
- 分类
- 例如实体集
- 聚集
- 属性的聚集组成了实体型
- 概括
设计分E-R图
- 设计步骤
- 对收集数据进行分类、组织(聚集)
- 形成实体集、属性和码
- 确定实体集之间的联系类型(1V1 1V多 多V多)
- E-R图中所有的联系必须是实体间的联系,而不能有属性与实体之间的联系
- E-R图之间的冲突主要有一下三类
- 属性冲突
- 命名冲突
- 结构冲突
- 冗余:冗余数据是指可由龙鱼的联系。冗余联系是可由其他联系导出的联系
概念模型向关系模型的转化
- 如何将实体集和实体间的联系转化为关系模式?如何确定这些关系模式的属性和码?
- 概念模型中的一个实体集转化为关系模型的一个关系。实体的属性就是关系的属性。实体的码就是关系的码。关系的结构就是关系模式。
- 1:1联系的转换方法P61
数据库逻辑结构设计的实例
- P65
题目
-
试述数据库设计过程中结构设计部分形成的数据库模式。
- 从概念设计阶段、逻辑设计阶段、物理设计阶段回答问题
-
试述数据库设计的特点
- 必须适应所在的计算机硬件环境,选择合适的DBMS,了解并提高数据库用户的技术水平和管理水平。
- 使结构特性设计和行为特性设计紧密结合、相互参照、反复探寻,共同达到设计目标。
-
数据字典的内容和作用是什么?
- 数据字典是各类数据描述的集合,是进行详细的数据收集和数据分析后所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。
-
试述数据库概念结构设计的重要性和设计步骤。
- 信息模型设计是将系统需求分析得到的用户需求抽象的过程,信息模型能转化为机器世界中的数据模型。并用DBMS实现这些需求。
- 信息模型的设计可分为两步:第一步是抽象数据并设计局部视图。第二步是集成局部视图,得到全局的概念结构。
-
什么是E-R图?构成E-R图的基本要素是什么?
- E-R图是描述现实世界的概念模型图形,E-R图也称为实体-联系图,提供了表示实体集、属性和联系的方法。
- 构成E-R图的基本要素是,实体集、属性和联系。
-
为什么要视图集成?视图集成的方法是什么?
- 视图集成就是把设计好的个子系统的分E-R图综合成一个系统的总E-R图。
- 试图的集成可以有两种方法。一种是多个分E-R图一次集成。另一种方法是逐步集成,用累加的方法一次集成两个分E-R图。
-
什么是数据库的逻辑结构设计?试述其设计步骤。
- 逻辑结构设计是把概念模型结构转化成某个具体的DBMS所支持的数据模型。
- 设计步骤为:把概念模型转化成一般的数据模型;将一班的数据模型转化成特定的DBMS所所支持的数据模型;通过优化方法,将其转化为优化的数据模型。
-
12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是1:1联系类型,5个是1:N联系类型,6个M:N联系类型,那么根据转换规则,这个ER结构转换成的关系模式至少有?为什么
-
12个实体类型+6个M:N联系类型=18
根据ER图转换关系模型规则,12个实体类型转换为12个关系模型,6个M:N联系类型转换为6个关模型,共18个关系模式。
一对一联系:隐含在实体对应的关系中
一对多联系:隐含在实体对应的关系中
多对多联系:直接用关系表示
-
第四章 关系数据库
关系模型及其三要素
关系数据结构
基本概念
- 域
- 列的取值范围
- 笛卡尔积
- 元组
- 属性
- 列的名字
- 候选码和主码
- 外码、外键
- 关系r中的一个属性组,他不是r的候选码,但他与另一个关系s的候选码相对应。
- 全码:包含所有属性
- 主属性非主属性
- 关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。
- 关系模式
- 关系是笛卡尔积的有限子集,所以关系也是一个二维表
- 关系的描述称为关系模式。R(U,D,Dom,F)
- 关系数据库:在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库
特性
- 关系的任意两个元组不能相同
- 现实应用中,表可能并不完全准守此特性
关系操作概述
关系操作的基本内容
- 数据查询、数据维护和数据控制。
八种操作
- 基本运算为 并、差、选择、投影、乘积
- 选择。
- 投影
- 连接
- 除
- 并
- 交
- 差
- 广义笛卡尔积
顺序性
- 交先与并和差,并和差同级
关系的完整性
- 关系模型的实体完整性
- 若属性a是基本关系r的主属性,这属性a的值不能为空值。
- 作用:实体完整性能够保证实体的唯一性、能够保证实体的可区分性。
- 关系模型的参照完整性
- 设f是基本关系r的一个或一组属性,但不是关系r的主码。如果f与基本关系S的主码k相对应。则称f是基本关系r的外码。并称基本关系r为参照关系。基本关系S为被参照关系。
- 外码并不一定要与相应的主码同名。P95例子
- 若属性f是基本关系r的外码,他与基本关系s的主码k相对应,则对于r中每个元组在f上的值必须取空值或者等于s中某个元组的主码值。
- 用户定义的完整性。
- 比如学生考试的成绩必须为0~100。
关系代数
符号
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bc7H4V3D-1617284471909)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309161554097.png)]
传统的集合运算
- 并
- 差
- 交
- 广义笛卡尔积
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ouZQrQd-1617284471913)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309163430531.png)]
专门的关系运算
- 选择
- 投影
- 自动取消相同元组
- 连接
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9H3c1b1H-1617284471914)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309163727768.png)]
- 等值连接
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SHjNPTF1-1617284471916)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309163911951.png)]
- 自然连接
- 去掉重复
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5LNACLRL-1617284471918)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309164036763.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MOEu9Oqh-1617284471919)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309163954922.png)]
- 外连接
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ua2HKW62-1617284471922)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309165857107.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sLF1ETDX-1617284471923)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210309165938016.png)]
- 除
- 查询全部的所有的之类的问题
并相容性
- 参与运算的两个关系及其相关属性之间有一定的对应性,可比性或意义关联性。
- 某些关系代数操作如并、差、交等,需满足并相容性。
关系代数训练易错
打印P50-53
域关系演算语言QBE
题目
- 试述关系模型的特点和三个组成部分
- 关系模型的特点是:在关系模型中,实体集和连续均由单一的关系表示。关系操作语言 操作一体化。关系操作的方式是一次一集合方式,关系操作语言是高度非过程化的语言。
- 关系结构、关系操作、关系完整性约束。
- 试述等值连接与自然连接的区别和联系。
- 等值连接是从关系r和s的广义笛卡尔积中选取a和b属性值相等的那些元组。
- 自然连接是一种特殊的等值连接,他要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
- 简要叙述关系数据库的优点
- 关系数据库是以关系模型作为数据的组织方式。
- 关系数据库的主要优点是概念简单清晰,用户不需了解复杂的存取路径,不需说明怎么干,只需说明干什么。易懂易学。
- 如何通过定义视图和存取控制保证数据库的安全性。
- 视图能够对机密数据提供安全保护。有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图。使机密数据不出现在不应看到这些数据的用户视图上。
- 说明视图与基本表的联系与区别
- 视图是从一个或几个基本表导出的表,是一个虚表?数据库中只存放视图的定义,而不存放视图对应的数据。这些数据存放在原来的基本表中。所以基本表中的数据发生变化时,从视图中查询的数据也就随之改变了。是同一间电力就可以向基本表一样被删除、查询。也可以在视图之上再定义新的视图。但是对视图的更新操作有限制。
第五章
题目
- 简述三层c/s体系的结构特点。
- 三层c/s数据库系统结构为:
- 后端数据库服务器。后端数据库服务器是中间数据库服务器的后台,能够管理多个中间数据库服务器,并能够提供整个数据库系统的事务管理功能。
- 中间数据库端服务器。中间端数据库服务器是一个独立的实体,能够为客户机和前级服务器提供与自己数据库相关的事务服务和数据预处理工作。
- 客户机
- 试述表和视图之间的不同的关系。
- 表即基本表。是在数据库中存放的实际关系表。视图是为了用户查询方便和根据数据安全的需要而建立的虚表。视图既可以是一个表中数据的子集,也可以由多个表连接而成。
第六章 数据库的建立与管理
SQL语言
-
结构化的数据库语言
-
76
-
数据定义语言DDL
- create alter drop
- 模式的定义与删除
-
数据操纵语言DML
- insert delete update select
- 各种方式的更新与检索操作
- 各种复杂条件的检索
- 各种聚集操作
-
数据控制语言DCL
- grant revoke
- 安全性控制
SQL定义数据库
语法及表数据类型
- 打印P77-B
修正与撤销数据库
- 86
- 修正基本表
- 撤消基本表
- 撤消数据库
指定数据库 关闭数据库
视图
- 109
- 对应外模式的数据
- 视图不仅包含外模式,还包含其E-C映像
SQL操纵数据库
78
83
新增元组操作
- 单一元组新增
- 批元组新增
删除元组操作
更新元组操作
SQL进行查询
打印P79
去重操作80
结果排序
模糊查询
多表联合查询
多表重名处理
复杂查询
- 93
- 子查询
- (NOT)IN子查询
- some all子查询
- exists子查询
- 子查询
- 相关子查询
- 内层查询需要依靠外层查询的某些参量作为限定条件才能进行的子查询
- 非相关子查询
- 相关子查询
分组查询
分组过滤
SQL语言实现并-交-差
- 103
空值的处理
内连接外连接的实现
聚集运算
- 聚集函数
第七章 关系数据库理论
关系数据模式的规范化理论
- 范式是指规范化的关系模式。由于规范化的程度不同,就产生了不同的范式。满足最基本规范化的关系模式叫第一范式,第一范式的关系模式在满足另外一些约束条件就产生了第二范式,第三范式、BC范式等。
关系模式规范化的必要性
如果一个关系没有经过规范化,可能会导致上述谈到的
- 数据冗余大
- 更新异常
- 若某系换系主任,数据库中干系的学生记录应全部修改。如有不慎,某些记录漏改了,这会造成数据的不一致出错。
- 数据插入异常
- 一个新系没有招生时,系名和系主任名无法插入到数据库中。
- 删除异常问题
- 删除了不该删的东西
- 当一个系的学生都毕业了而又没有招新生时,删除了全部学生记录,随之也删除了系名和系主任名。
例子P182 为什么表要存成这个样子。
函数依赖及其关系的范式
数据依赖
-
数据依赖是关系模式的重要因素。数据依赖是同一关系中属性间的相互依赖和相互制约。
-
数据依赖包括函数依赖、多值依赖和连接依赖。
函数依赖
-
直接看例子
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBXmHKPm-1617284471927)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210306205821217.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rcRfq0S-1617284471928)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210306210224010.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkKXuJR8-1617284471929)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210306210700350.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bvZTaLsi-1617284471930)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210306210810089.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMu7Szni-1617284471930)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210306211103106.png)]
第一范式
- 关系的第一范式是关系要遵循的最基本的范式。
- 如果关系模式r其所有的属性均为简单属性。即每个属性都是不可再分的,则称r属于第一范式。
- 不符合第一范式可以转化为第一范式。
第二范式
-
满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情
-
例如:订单表只描述订单相关的信息,所以所有字段都必须与订单id相关
-
专业术语:每一个非主属性完全依赖于码
第三范式
-
必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);
-
例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户id即可,而不能有其他的客户信息。因为其他的客户信息直接关联于用户id,而不是直接与订单id直接相关。
-
第三范式是一个可用的关系模式应满足的最低范式
-
专业术语:3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖
BC范式
- 比第三范式更近一步
- 3NF的基础上消除主属性对于码的部分与传递函数依赖,每一个决定因素必含码,要求主属性对码的完全直接依赖
- 满足BCNF,则满足第三范式
- https://www.jianshu.com/p/91c922160830
总结
- 第一范式和第二范式在于有没有分出两张表,第二范式是说一张表中包含了所种不同的实体属性,那么要必须分成多张表, 第三范式是要求已经分成了多张表,那么一张表中只能有另一张表中的id(主键),而不能有其他的任何信息(其他的信息一律用主键在另一表查询)。
- http://mp.weixin.qq.com/s?__biz=MzIyNjE4NDcyMA==&mid=2247484110&idx=1&sn=cf05a9edd8345d7612f1c136edf6e135&chksm=e87519b1df0290a773f8bc07bd09ad565646a96196ce1c486f914915b79a96c82bb6d2eba215&mpshare=1&scene=1&srcid=0619b5vgTpPnpxLvftNdg5uk#rd
二目关系
二目关系是说只有两个属性的表
多值依赖
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnOZZHoO-1617284471931)(C:\Users\wangxiaobing\AppData\Roaming\Typora\typora-user-images\image-20210308094134721.png)]
- 问题在于数据冗余大
第四范式
- 第四范式消除了非主属性对候选键以外属性的多值依赖
- 如果有多值依赖,则一定依赖于候选键
- 满足第四范式必满足BC范式
关系系统及查询优化技术
简述关系数据库管理系统查询优化的三条原则(华师)
- 选择运算尽可能先做。
- 在执行连接前对关系进行适当的预处理。(比如排序)
- 把投影运算和选择运算同时进行。
- 把投影同其前或其后的双目运算结合起来。(双目运算符是指运算所需变量为两个的运算符,或者要求运算对象的个数是的运算符称为双目运算符)
- 把某些选择同在它前面要执行的笛卡尔积结合起来,成为一个连接运算。
- 找出公共子表达式。
试述查询优化的一般步骤
- 把查询转化成某种内部表示。
- 一般是用语法树
- 把语法树转化成标准形式。
- 选择低层的存取路径。
- 生成查询计划,选择代价最小的查询计划。
https://blog.csdn.net/xie__jin__cheng/article/details/103814266
第八章 数据库保护技术
数据库完整性和安全性
数据库完整性
- 是指DBMS应保证的DB的一种特性,在任何情况下的正确性、有效性和一致性
- 广义完整性
- 语义完整性、并发控制、安全控制、DB故障恢复等
- 狭义完整性
- 专指语义完整性
数据库安全性
- 指DBMS应该保证的数据库的一种特性(机制或手段):免受非法、非授权用户的使用、泄漏、更改或破坏。
- 112
DBMA的安全机制
- 自主安全性机制:存取控制。
- 通过权限在用户之间的传递,使用户自主管理数据库安全性。
- 自主安全性是通过授权机制来实现的。
- 实现方式。:1、存储矩阵。2、视图。
- 利用SQL实现数据库自主安全性
- 125
- 授权命令。
- 强制安全性机制。
- 通过对数据和用户强制分类,使得不同类别用户能够访问不同类别的数据。
- 推断控制机制。
- 防止通过历史信息推断出不该被其制造的信息。
- 防止通过公开信息推断出私密信息。
- 数据加密存储机制。
- 通过加密解密保护数据。
用SQL实现数据库的静态完整性
- 115
- create table
- 断言
用SQL实现数据库的动态完整性
- 触发器TRIGGER
- 119
- 是一种过程完整性约束,是一段程序,该程序可以在特定的时刻被自动的触发执行,比如在一次更新操作之前执行,或在更新操作之后执行。
数据库并发控制及SQL Server并发控制机制
事务
事务的概念
- 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
- 目的:充分利用系统资源,发挥数据共享资源的特点。对并发执行的事务的控制也称为并发控制。
事务的语法
- P232
事务的特性
- 原子性
- 就是说要么全做,要么一个也不做。
- 一致性
- 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
- 隔离性
- 一个事务的执行不能被其他事务干扰。
- 持续性
- 一个事务一旦提交,他对数据库中数据的改变就是永久的。
事务特性遭破坏的原因
- 多个事物并行运行时,不同事务的操作交叉执行。
- 事务上并发操作带来的数据不一致性包括三类:
- 丢失修改:T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。
- 不可重复读
- 读脏数据
- 事务在运行过程中被强行停止。
如何产生一个正确的并发调度?
- 基于封锁的并发控制。既基于锁的方法。
- 基于时间戳的并发控制。
- 基于有效性确认的并发控制。
- 后面两个其实就是基于撤回的方法。
封锁及封锁协议
锁的类型
- 排他锁 X锁
- 只有一个事务能读写,其他任何事务都不能读写。
- 共享锁 S锁
- 所有事务都可以读,但任何事务都不能写。
封锁协议
-
何时申请X锁或S锁、持锁时间、何时释放
-
一级封锁协议
- 事务T在修改数据之前必须先对其加X锁,直到事务结束才释放
- 由于没有对读数据进行加锁,所以不能保证可重复读和不读脏数据。
-
二级封锁协议
- 事务T,对要修改的数据必须先加X锁,直到事务结束才放释放X锁。对要读取的数据必须先加S锁,读完即可释放S锁。
- 不但能够防止丢失修改,还可进一步防止读脏数据。
-
三级封锁协议
- 事务T在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有的锁。
- 不但防止了丢失修改和不读脏数据,而且防止了不可重复读。
P236图
封锁出现的问题及解决办法
活锁
- 在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。
- 解决方法:先来先服务。
死锁
- 多事务交错等待的僵持局面。
- 解决方法
- 预防死锁
- 一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁。否则该事务不能继续执行。
- 顺序封锁法:预先对数据对象规定一个封锁顺序。所有事务都按这个顺序实行封锁。
- 检测死锁,有则解除
- 预防死锁
并发调度的可串行性
- 如果多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串行化的调度,反之称为不可串行化调度。
- 可串行性是并发事物正确性的准则。
两段锁协议
- 保证并发调度可串行性的封锁协议。
- 事务分为两个阶段,第一阶段是申请和获得封锁,也称为扩展阶段。在这阶段,事物可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。
- 第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁。但是不能再申请任何锁。
数据库恢复技术与SQL Server数据恢复机制
故障的种类。
- 事务内部的故障。
- 系统故障。
- 介质故障。
- 计算机病毒。
- 用户操作错误。
数据恢复的实现技术。
- 数据转储
- 数据转储就是数据库管理员定期的将整个数据库复制到磁带或者另一个磁盘上保存起来的过程。
- 登记日志文件
题目
-
什么是数据库的安全性?
- 指保护数据库,以防止不合法的使用数据泄密,更改或破坏。
-
数据库安全性控制的常用方法和技术。
- 用户标识与鉴别。
- 存取控制。
- 自主存取控制方法。
- 强制存取控制方法。
- 视图机制。
- 审计。
- 数据加密。
-
什么是数据库的完整性?
- 指数据的正确性和相容性。
-
什么是数据库的完整性约束条件,可分为哪几类?
- 指为了保证进入数据库中的数据的有效性而定义的数据规则。
-
数据库中为什么要并发控制?
- 为了控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。
-
什么是封锁?
- 封锁是使事物对他要操作的数据有一定的控制能力。
- 具有三个环节:申请加锁、获得锁、释放锁。
- 基本的封锁类型有两种:排他锁、共享锁。
-
什么是封锁协议?
- 在对数据对象加锁时,还需要约定一些规则,这些规则称为封锁协议。
-
什么样的并发调度是正确的调度?
- 如果一个事务运行过程中没有其他事物同时运行,既没有受到其他事务的干扰,那么就可以认为该事物的运行结果是正常的。可串行性是并发事务正确性的准则。
-
事务中的提交和回滚是什么意思?
- 提交是提交事务的所有操作。具体说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
- 回滚是数据库回滚到事务开始时的状态。
-
数据库中数据不一致的根本原因
- 一般导致数据库中数据不一致的根本原因有三种情况。第一种是数据冗余造成的,第二种是并发控制不当造成的,第三种是由于某种原因(比如软硬件故障或者操作错误)导致数据丢失或数据损坏。
- 第一种情况:数据冗余 假如数据库中两个表都放了用户的地址,在用户的地址发生改变时,如果只更新了一个表的数据,那么两个表就有了不一致的数据。
- 第二种情况:并发控制不当 假如在飞机票订票系统中,如果两个购票点同时查询某张机票的订购情况,而且分别为订购了这张机票,如果并发控制不当,就会造成同一张机票卖给两个用户的情况。由于系统没有进行并发控制或者并发控制不当,造成数据不一致。
- 第三中情况:故障和错误 如果软硬件出现故障或者操作错误导致数据丢失或数据损坏,引起数据不一致。因此我们需要提供数据库维护和数据库数据恢复的一些措施。 要根据各种 数据库维护 手段(如转存、日志等)和 数据恢复 措施将 数据库恢复 到某个正确的、完整的、一致性的状态下。
- 根本原因:数据冗余
-
完整性和一致性
- https://blog.csdn.net/echo666/article/details/108659535
- 完整性指数据的正确性和相容性。更多是针对实际业务来说的。
- 一致性不单单指实体完整性和参照完整性两个方面,更重要或者说更难实现的是业务完整性,往往需要事务来保证。一致性是事务一个特征,要底层一点。
-
dbms的恢复子系统 保证了事务的持久性
- 由DBMS的恢复管理子系统实现的
其他
超码 候选码
https://blog.csdn.net/huxinxue/article/details/89059478
HAVING 子句https://www.runoob.com/sql/sql-having.html
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
EXISTS
https://blog.csdn.net/amanicspater/article/details/78315575
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
就有了不一致的数据。
-
第二种情况:并发控制不当 假如在飞机票订票系统中,如果两个购票点同时查询某张机票的订购情况,而且分别为订购了这张机票,如果并发控制不当,就会造成同一张机票卖给两个用户的情况。由于系统没有进行并发控制或者并发控制不当,造成数据不一致。
-
第三中情况:故障和错误 如果软硬件出现故障或者操作错误导致数据丢失或数据损坏,引起数据不一致。因此我们需要提供数据库维护和数据库数据恢复的一些措施。 要根据各种 数据库维护 手段(如转存、日志等)和 数据恢复 措施将 数据库恢复 到某个正确的、完整的、一致性的状态下。
-
根本原因:数据冗余
-
完整性和一致性
- https://blog.csdn.net/echo666/article/details/108659535
- 完整性指数据的正确性和相容性。更多是针对实际业务来说的。
- 一致性不单单指实体完整性和参照完整性两个方面,更重要或者说更难实现的是业务完整性,往往需要事务来保证。一致性是事务一个特征,要底层一点。
-
dbms的恢复子系统 保证了事务的持久性
- 由DBMS的恢复管理子系统实现的
其他
超码 候选码
https://blog.csdn.net/huxinxue/article/details/89059478
HAVING 子句https://www.runoob.com/sql/sql-having.html
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
EXISTS
https://blog.csdn.net/amanicspater/article/details/78315575
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
标签:关系,重点,数据库,视图,完整性,数据库系统,数据,属性 来源: https://blog.csdn.net/weixin_41413511/article/details/115385364
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。