《数据库系统概论》学习笔记
captxb
这个作者很懒,什么都没留下…
展开
-
chapter01_1_数据库系统引论
数据库系统 用户 --> 应用系统 --> 数据库管理系统 --> 数据库 | | | | ---------------------------...原创 2019-02-27 15:45:41 · 125 阅读 · 0 评论 -
chapter08_数据库恢复技术_2_数据库恢复
故障分类 (1) 系统故障 造成系统停止运行的故障,此时正在执行的所有事务将全部中断,内存中的事务数据丢失,可能会出现不一致的状态 (2) 事务内部的故障 死锁、运算溢出等导致事务处理出现错误、未达到预期终点(Commit或RollBack)的故障,导致事务的非正常结束 (3) 存储设备故障 介质破坏 (4) 其他 数据库恢复策略综述 (1) 事务故障的恢复 利用__日志__文件撤销事务对...原创 2019-03-02 21:52:34 · 177 阅读 · 0 评论 -
chapter09_并发控制_1.并发事务运行时存在的可能问题
可能存在的问题 (1) 丢失更新 两个事务同时更新某条记录时,一个事务提交的结果破坏了另一个事务提交的结果。 (例如:两个售票处卖同一列车的票) (2) 不可重复读取 一个事务先读取了一次记录中的数据,另一个事务对这个记录进行更新;第一个事务再次读取时,读到了不同的数据(例如用户A第一次查看余额,这是用户B向用户A转账,用户A再次查看余额时发现数值不一样) (3) 读脏数据 一个事务更新了某条...原创 2019-03-03 09:19:17 · 173 阅读 · 0 评论 -
chapter09_并发控制_2_并发调度的可串行性
调度:并发事务的操作顺序 不同的事务处于串行关系时,一定没有状态不一致的问题 可串行化调度:多个事务的并发执行是正确的,当且仅当并发执行的结果与这些事务按照某一串行顺序执行的结果相同 (1) __如果两个操作X和Y,读写的数据项不同,则调度中的事务操作顺序不会影响任何操作结果__ (2) __当两个操作X和Y,如果读写的数据项相同,但是它们都为读操作时,它们的顺序无关紧要__ ...原创 2019-03-03 09:21:20 · 289 阅读 · 0 评论 -
chapter09_并发控制_3_基于封锁的并发控制技术
基本思想 事务T1要修改记录A之前先对A加锁,其他事务不能获得A的锁,从而也不能读取和修改A,直到T1修改完成再释放锁 基本的锁类型 (1) 共享锁(S锁) 一个事务T对A加上S锁以后,T只能读取数据A,不能写数据A (2) 排他锁(X锁) 一个事务T对A加上X锁以后,T既可以读取数据A,也可以写数据A (3) 加锁方式 当数据A上没有任何锁时,一个事务可以对其加S锁或X锁; 当数据A上有...原创 2019-03-03 09:29:25 · 158 阅读 · 0 评论 -
chapter09_并发控制_4_多种并发机制
并发机制 (1) 封锁技术 (2) 时间戳技术 (3) 基于有效性确认的并发控制 插入和删除数据项的操作同样会对并发控制产生影响原创 2019-03-03 09:40:47 · 94 阅读 · 0 评论 -
chapter10_关系数据库设计理论_1_关系模型的存储异常
数据库模式: 在关系数据库中包含了一组关系,一个关系对应一个关系模式。这组关系所对应关系模式的集合称为数据库模式。 不好的关系模式可能会出现的问题 示例:图书借阅管理系统 (借书证号, 借书人姓名, 借书人所在单位, 单位负责人, 借阅图书编号, 借阅日期) (1) 数据冗余 每借一本书,都要重复存储所在单位,单位负责人的信息 (2) 插入异常 如果一个人没有借书,那么他就无法加入数据库中...原创 2019-03-03 09:42:34 · 201 阅读 · 0 评论 -
chapter10_关系数据库设计理论_2_函数依赖
函数依赖 关系模式的所有属性集合U, X,Y是U的子集。对任意元组t1、t2,如果它们在X上的属性值相等,则它们在Y上的属性值也相等。此时称__Y依赖于X, X->Y__ (1) 完全函数依赖 若 X->Y,对任意X的子集X’, X’->Y均不成立,则X->Y是完全函数依赖 (2) 部分函数依赖 若 X->Y,存在X的真子集X’, X’->Y成立,则X-...原创 2019-03-03 09:43:46 · 130 阅读 · 0 评论 -
chapter10_关系数据库设计理论_3_模式分解
模式分解 (1) 目标 将一个大的关系模式用几个较小的模式代替 (2) 定义 关系模式R(U), ρ = {R1(U1), R2(U2), …, Rk(Uk)}是一个关系模式的集合,若U1∪U2∪…∪Uk = U成立,则ρ是R(U)的一个分解 (3) 一个关系模式可以有多种不同的分解 (4) 模式分解的__原则__ 1° 不丢失信息 对同样的数据,分解前后的查询结果应相同 2° 保持函数依赖关...原创 2019-03-03 09:44:53 · 167 阅读 · 0 评论 -
chapter10_关系数据库设计理论_4_关系模式的规范化
第一范式 1NF 关系模式R中的每一个属性对应的域值都是不可再分的 第二范式 2NF (1) 候选键 有的关系中,能够标识元组的属性(组)不止一个。此时它们都称为候选键(所有候选键中属性的数量应该一致) (2) 主属性和非主属性:如果某个属性包含在关系模式的某个候选键中,则为__主属性__;否则为__非主属性__ (3) 2NF定义 一个关系模式满足1NF,且非主属性完全依赖于R的每个候选...原创 2019-03-03 09:48:12 · 184 阅读 · 0 评论 -
chapter12_数据库编程_1_综述
标准SQL语言是一种__非过程性__的数据库操作语言,不能实现控制流程、函数、子程序。 因此,各个数据库软件都进行了扩展 过程的类型 (1) 批处理 将一个或多个SQL语句作为一组,从应用程序发送到数据库服务器。每组将会编译为单个可执行单元 MySQL添加批处理:在连接数据库URL时,设置参数rewriteBatchedStatements = true,另外还要使用addBatch和ex...原创 2019-03-03 09:51:32 · 96 阅读 · 0 评论 -
chapter12_数据库编程_2_游标
处理多行数据的操作要使用__游标cursor__ 游标有__四个__基本操作: (1) 声明 DECLARE (2) 打开 OPEN (3) 读取数据 FETCH (4) 关闭 CLOSE 声明DECLARE (1) 语法 DECLARE cursor_name CURSOR FOR select_statement (2) 用于定义游标的SELECT语句不能有INTO。The ...原创 2019-03-03 10:33:00 · 156 阅读 · 0 评论 -
chapter12_数据库编程_3_存储过程
存储过程 (1) 存储过程是一个程序代码,存储在数据库中 (2) 作用 1° 接受输入参数,并以输出参数的格式向调用过程__返回多个值__ 2° 包含用于在数据库中执行操作(包括调用其他过程)的编程语句 3° 向调用过程返回状态值,指明成功或失败 (3) 优点 1° 存储过程已经在服务器中存储,执行__效率更高__ 2° 存储过程和视图等类似,是一种可以授权的数据库对象 3° 用户可以被授予权...原创 2019-03-04 09:34:51 · 125 阅读 · 0 评论 -
chapter12_数据库编程_4_用户定义函数
函数 (1) 函数也是一种存储过程,只不过它可以返回值 (2) 返回值可以是__单个标量值__或__结果集__(MYSQL中不能返回结果集,用存储过程才可以返回结果集),返回标量值的函数称为__标量函数__,返回结果集的函数称为__表值函数__ (3) 由于函数可以返回值,所以可以直接使用 示例 SELECT BOCHEN_FUNCTION(); (4) 函数可以分为 系统函数 和 用户...原创 2019-03-04 09:34:43 · 126 阅读 · 0 评论 -
chapter08_数据库恢复技术_1_事务的基本概念和特征
事务的四个特征:ACID (1) 原子性 Atomic 事务中的所有操作要么都执行,要么都不执行 (2) 一致性 Consistency 事务执行的结果从一个状态到另一个状态时保持一致。即当事务提交成功时,保存一致性的结果;当事务提交不成功时,数据库将处在不一样的状态,这种状态应该撤销 (3) 隔离性 Isolation 并发执行事务时,事务之间不能互相干扰 (4) 持久性 Durabilit...原创 2019-03-02 21:43:32 · 137 阅读 · 0 评论 -
chapter07_数据库的完整性_1_数据库的完整性
数据库的完整性包括 (1) 数据的正确性 数据的合法性 (2) 数据的有效性 数据是否在有效范围内 (3) 数据的相容性 表示同一事实的两个数据应该相同 完整性约束 (1) 实体完整性约束 主键不能为空 (2) 参照完整性约束 外键要么为空,要么为其他表中取值 (3) 用户定义的完整性约束 用户定义的规则 数据完整性控制策略 (1) 默认值 DEFAULT (2) 约束 UNIQUE、...原创 2019-03-02 21:12:00 · 215 阅读 · 0 评论 -
chapter02_数据模型_1_数据模型
E-R(Entity-Relationship)概念模型 (1) 广泛用于__概念模型__的设计 (2) 仅表示现实世界中各个事物之间的联系,不涉及计算机中的表示 (3) 有了E-R模型,可以很方便的转换为具体的DBMS所支持的数据模型 (4) 包括三个部分:实体、属性和实体间的联系 实体 (1) 客观存在的可以相互区别的事物,例如一个学生、一本书、一次交易…… (2) 实体集:具有同类特...原创 2019-02-27 15:51:58 · 234 阅读 · 0 评论 -
chapter03_关系数据库_1_关系代数
对关系的运算可分为 (1) 关系代数运算 1° 传统的集合运算 2° 专门的关系运算 (2) 关系演算 1° 元组关系演算 2° 域关系演算 传统的集合运算 (1) 并 Q = R∪S 代表R关系中的所有元组和S关系中的所有元组合在一起形成新关系Q (2) 差 Q = R - S 的结果是__属于R但不属于S__的所有元组构成Q (3) 交 Q = R∩S 的结果是既属于R又属于S的所有元...原创 2019-02-27 16:14:29 · 114 阅读 · 0 评论 -
chapter03_关系数据库_2_关系模型的基本概念
关系模型的基本概念 (1) 一个关系对应一张二维表 (2) 域:取值范围的集合 (3) 元组:每一行的记录 (2) 规范化的关系 1° 每一列的值是同类型的数据,来自同一个域 2° 不同的列可以有相同的域,每一列称为__属性__,用属性名标识 3° 列的次序无关紧要 4° 元组的顺序无关紧要 5° 关系中不能出现重复元组 6° 元组的每个分量都是原子的,不可拆分 实际DBMS不一定完全符合规范...原创 2019-02-27 16:28:11 · 148 阅读 · 0 评论 -
chapter03_关系数据库_3_关系演算
关系演算 (1) 关系演算以__谓词演算为基础__。 (2) 和关系代数运算的区别是,关系演算只需要用谓词的形式给出查询结果应满足的条件,无顺序 (3) 包括: 元组关系演算, 域关系演算 谓词公式中的运算符 (1) 比较运算符:=、>、<、≥、≤、≠ (2) 逻辑运算符:与、或、非 (3) 量词:全称量词任意、存在量词存在 若表达式中的变量是元组变量,则称为__元组关系演算__; 若...原创 2019-02-27 16:29:03 · 244 阅读 · 0 评论 -
chapter16_多媒体数据库_1_概述
如果对多媒体文件的内容感兴趣,要检索文件的全部内容,可以和文件系统结合:数据库中只保存文件的路径原创 2019-02-28 17:06:28 · 180 阅读 · 0 评论 -
chapter04_关系数据库标准语言SQL_1_SQL
SQL的功能 (1) 数据定义:定义表、视图、索引 (2) 数据操纵:增删改查 (3) 数据控制:访问权限、事务 三级模式和SQL的对应关系 概念模式 – 基本表 外模式 – 视图 内模式 – 存储文件 UNIQUE (1) 表示列值必须唯一 示例 CREATE TEMPORARY TABLE `temp` ( `num1` int(11) DEFAULT NU...原创 2019-03-01 10:48:36 · 100 阅读 · 0 评论 -
chapter13_数据库的存储结构_1_数据库存储设备
物理存储设备 (1) 高速缓存cache 数据库系统无需考虑高速缓存的管理,一般有相关硬件设备管理 (2) 主存储器(内存) 除操作系统外,只将__DBMS、数据缓冲区、应用程序、部分正在处理的数据__加载到主存储器中 (3) 磁盘 一般,将整个数据库系统存在磁盘上 (4) 光盘 (5) 磁带 数据库的存储体系 (1) __块__是分配磁盘空间的基本单位,也是磁盘和内存之间传递数据的基本单...原创 2019-03-01 11:01:31 · 184 阅读 · 0 评论 -
chapter13_数据库的存储结构_3_文件的存储结构
磁盘空间以块为单位 (1) 文件是相关磁盘块的集合 (2) 文件块在逻辑上连续,在物理存储上可以连续(顺序存储,类似数组),可以不连续(链接存储,类似链表) 按照文件内记录的组织方式,对文件的分类 (1) 无序文件 1° 记录的存储顺序与记录的内容无关,每次都写入到文件的末尾处 2° 插入:直接插入到末尾处 3° 查找:从第一条记录开始扫描 4° 删除: 定长记录:查找要删除的记录,将...原创 2019-03-01 16:53:25 · 128 阅读 · 0 评论 -
chapter13_数据库的存储结构_4_索引文件
索引:将一个或多个字段,按照某种有规律的方式组织起来,以便进行快速查找 索引文件包括 索引键 + 对应的记录指针 索引键 位置 001 0x983f 002 0x753d ... ... 索引的__弊端__: (1) 索引文件也要占据存储空间 (2) 插入、删除、修改记录时,要同时更新索引文件 当索引文件很大时,可以对索引...原创 2019-03-01 17:10:12 · 81 阅读 · 0 评论 -
chapter05_查询处理和查询优化_1_关系数据库系统的查询处理过程与算法
查询处理的过程 (1) 查询分析 检查语法错误 (2) 查询检查 语义检查、用户权限检查、完整性约束检查 (3) 建立查询的内部表示 生成语法树 (4) 查询优化 代数优化:关系代数表达式的等价变换 物理优化:结合索引、数据值的分布特征改善查询 代价估算:评估若干查询计划的效率 (5) 查询执行 分为 解释 和 __编译__两种 解释执行:对于每一条查询语句,DBMS都不保留可执行代码,每次都...原创 2019-03-02 21:01:19 · 320 阅读 · 0 评论 -
chapter05_查询处理和查询优化_2_关系数据库系统的查询优化方式
查询优化技术 (1) 代数优化 (2) 基于存储路径的优化 (3) 基于代价估算的优化 整体过程: 将查询转换成语法树; 根据关系的等价变化规则对语法树进行代数优化; 选择底层的操作算法,对于语法树中的每个操作,根据存储路径、数据存储分布、存储数据的聚簇等信息选择具体的执行算法; 生成查询计划,查询计划由一系列内部操作组成,这些内部操作按照一定的次序构成不同的执行方案,估算每个执行方案的代价,...原创 2019-03-02 21:03:06 · 160 阅读 · 0 评论 -
chapter06_数据库的安全性_1_数据库的安全性
数据保护包括: 数据的安全性 + 数据的完整性 数据库的安全性 (1) 完整性:只有被授权的用户可以进行合法存取 (2) 可用性:系统采用的安全机制不能明显降低数据库的性能 (3) 保密性:系统对数据库中的机密数据进行加密 (4) 可审计性:把合法用户的所有操作记录下来 因此,数据库系统所采用的安全技术主要包括以下几种 1° 访问控制技术: 通过创建账户和口令,由DBMS控制登录过程 2°...原创 2019-03-02 21:04:44 · 146 阅读 · 0 评论 -
chapter12_数据库编程_5_触发器
(1) 触发器的__作用__是实现数据完整性,它比主键、外键、NOT NULL、UNIQUE更加灵活 (2) __触发器是特殊的存储过程。它与存储过程经历的过程类似(分析、解析、优化),但是__没有接口,不能被显示调用,只能自动执行。 触发器和存储过程的区别:只能自动执行,不能显式调用 (3) __触发器是引发它的事务的一部分。__只有触发器被正确执行,该事务才是完整的。 (4) 使用原则 1...原创 2019-03-04 09:34:35 · 120 阅读 · 0 评论