自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 chapter09_并发控制_4_多种并发机制

并发机制(1) 封锁技术(2) 时间戳技术(3) 基于有效性确认的并发控制插入和删除数据项的操作同样会对并发控制产生影响 ...

2018-12-29 11:09:00 83

原创 chapter09_并发控制_2_并发调度的可串行性

调度:并发事务的操作顺序不同的事务处于串行关系时,一定没有状态不一致的问题可串行化调度:多个事务的并发执行是正确的,当且仅当并发执行的结果与这些事务按照某一串行顺序执行的结果相同(1) 如果两个操作X和Y,读写的数据项不同,则调度中的事务操作顺序不会影响任何操作结果(2) 当两个操作X和Y,如果读写的数据项相同,但是它们都为读操作时,它们的顺序...

2018-12-29 11:08:00 267

原创 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上没有任何锁时,一...

2018-12-29 11:08:00 140

原创 chapter08_数据库恢复技术_2_数据库恢复

故障分类(1) 系统故障造成系统停止运行的故障,此时正在执行的所有事务将全部中断,内存中的事务数据丢失,可能会出现不一致的状态(2) 事务内部的故障死锁、运算溢出等导致事务处理出现错误、未达到预期终点(Commit或RollBack)的故障,导致事务的非正常结束(3) 存储设备故障介质破坏(4) 其他数据库恢复策略综述(1) 事务...

2018-12-29 11:07:00 102

原创 chapter09_并发控制_1_并发事务运行时存在的可能问题

可能存在的问题(1) 丢失更新两个事务同时更新某条记录时,一个事务提交的结果破坏了另一个事务提交的结果。 (例如:两个售票处卖同一列车的票)(2) 不可重复读取一个事务先读取了一次记录中的数据,另一个事务对这个记录进行更新;第一个事务再次读取时,读到了不同的数据(例如用户A第一次查看余额,这是用户B向用户A转账,用户A再次查看余额时发现数值不一...

2018-12-29 11:07:00 123

原创 chapter08_数据库恢复技术_1_事务的基本概念和特征

事务的四个特征:ACID(1) 原子性 Atomic事务中的所有操作要么都执行,要么都不执行(2) 一致性 Consistency事务执行的结果从一个状态到另一个状态时保持一致。即当事务提交成功时,保存一致性的结果;当事务提交不成功时,数据库将处在不一样的状态,这种状态应该撤销(3) 隔离性 Isolation并发执行事务时,事务之间不能互...

2018-12-29 11:05:00 218

原创 chapter07_数据库的完整性_1_数据库的完整性

数据库的完整性包括(1) 数据的正确性数据的合法性(2) 数据的有效性数据是否在有效范围内(3) 数据的相容性表示同一事实的两个数据应该相同完整性约束(1) 实体完整性约束主键不能为空(2) 参照完整性约束外键要么为空,要么为其他表中取值(3) 用户定义的完整性约束用户定义的规则数据完整性控制策略(1) 默认值 D...

2018-12-28 11:14:00 122

原创 chapter06_数据库的安全性_1_数据库的安全性

数据保护包括: 数据的安全性 + 数据的完整性数据库的安全性(1) 完整性:只有被授权的用户可以进行合法存取(2) 可用性:系统采用的安全机制不能明显降低数据库的性能(3) 保密性:系统对数据库中的机密数据进行加密(4) 可审计性:把合法用户的所有操作记录下来因此,数据库系统所采用的安全技术主要包括以下几种1° 访问控制技术:通过创建账...

2018-12-28 11:13:00 130

原创 chapter05_查询处理和查询优化_2_关系数据库系统的查询优化方式

查询优化技术(1) 代数优化(2) 基于存储路径的优化(3) 基于代价估算的优化整体过程:将查询转换成语法树;根据关系的等价变化规则对语法树进行代数优化;选择底层的操作算法,对于语法树中的每个操作,根据存储路径、数据存储分布、存储数据的聚簇等信息选择具体的执行算法;生成查询计划,查询计划由一系列内部操作组成,这些内部操作按照一定的次序构...

2018-12-28 11:12:00 146

原创 chapter04_关系数据库标准语言SQL_1_SQL

SQL的功能(1) 数据定义:定义表、视图、索引(2) 数据操纵:增删改查(3) 数据控制:访问权限、事务三级模式和SQL的对应关系概念模式 -- 基本表外模式 -- 视图内模式 -- 存储文件UNIQUE(1) 表示列值必须唯一示例 CREATE TEMPORARY TABLE `temp` ( `...

2018-12-28 11:11:00 105

原创 chapter05_查询处理和查询优化_1_关系数据库系统的查询处理过程与算法

查询处理的过程(1) 查询分析检查语法错误(2) 查询检查语义检查、用户权限检查、完整性约束检查(3) 建立查询的内部表示生成语法树(4) 查询优化代数优化:关系代数表达式的等价变换物理优化:结合索引、数据值的分布特征改善查询代价估算:评估若干查询计划的效率(5) 查询执行分为 解释 和 编译两种解释执行:对于每一条查询语句,...

2018-12-28 11:11:00 330

原创 chapter03_关系数据库_3_关系演算

关系演算(1) 关系演算以谓词演算为基础。(2) 和关系代数运算的区别是,关系演算只需要用谓词的形式给出查询结果应满足的条件,无顺序(3) 包括: 元组关系演算, 域关系演算谓词公式中的运算符(1) 比较运算符:=、>、<、≥、≤、≠(2) 逻辑运算符:与、或、非(3) 量词:全称量词任意、存在量词存在若表达式中的变量是元组变量...

2018-12-28 11:10:00 134

原创 chapter03_关系数据库_2_关系模型的基本概念

关系模型的基本概念(1) 一个关系对应一张二维表(2) 域:取值范围的集合(3) 元组:每一行的记录(2) 规范化的关系1° 每一列的值是同类型的数据,来自同一个域2° 不同的列可以有相同的域,每一列称为属性,用属性名标识3° 列的次序无关紧要4° 元组的顺序无关紧要5° 关系中不能出现重复元组6° 元组的每个分量都是原子的,不可拆...

2018-12-27 14:29:00 134

原创 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...

2018-12-27 14:28:00 144

原创 chapter02_数据模型_1_数据模型

E-R(Entity-Relationship)概念模型(1) 广泛用于概念模型的设计(2) 仅表示现实世界中各个事物之间的联系,不涉及计算机中的表示(3) 有了 E-R模型,可以很方便的转换为具体的DBMS所支持的数据模型(4) 包括三个部分:实体、属性和实体间的联系实体(1) 客观存在的可以相互区别的事物,例如一个学生、一本书、一次...

2018-12-27 14:27:00 106

原创 chapter01_数据库系统引论_1_数据库系统引论

数据库系统 用户 --> 应用系统 --> 数据库管理系统 --> 数据库 | | | | ------...

2018-12-27 14:26:00 120

原创 chapter13_附录

临时表(1) 只存在于内存中,数据库断开连接后消失,一般用于测试(2) 用法:加上TEMPORARY CREATE TEMPORARY TABLE temp_table ( .... );转换数据类型使用 CAST()函数获取当前用户、日期、时间等系统内置信息SELECT CURRENT_USER; 获取当前...

2018-12-27 14:22:00 70

原创 chapter12_安全性

添加新用户 CREATE USER 'bochen'@'localhost' IDENTIFIED BY '123456';删除用户 DROP USER 'bochen'@'localhost';设置用户的权限GRANT(1) 简单的GRANT语句 GRANT SELECT ON clown_info TO bochen;...

2018-12-27 14:22:00 77

原创 chapter10_外联接、自联接与联合

左外连接 LEFT OUTER JOIN左外联接接收左表的所有行,并用这些行与右表中的行进行匹配。 如果没有相符的结果就在右表中的列中填入NULL示例 SELECT g.girl, t.toy FROM girls AS g LEFT OUTER JOIN toys AS t ON g.toy_id = t.toy_id;当左表和右表具有一...

2018-12-26 10:18:00 71

原创 chapter09_子查询

(NOT) IN 可以表示在集合中取值示例 SELECT mc.name, jc.title FROM job_current AS jc NATURAL JOIN my_contacts AS mc WHERE jc.title IN ('Cook', 'Waiter', 'Writer', 'Web Developers');可以用子...

2018-12-26 10:17:00 85

原创 chapter08_联接与多张表的操作

AS 既可以用作列的别名,也可以用作表的别名示例 SELECT profession AS mc_prof FROM my_contacts AS mc GROUP BY mc_prof ORDER BY mc_prof;CROSS JOIN 交叉联接(1) 相当于对两张表做笛卡尔积(2) CROSS JOIN 一般不作实际使用,主要...

2018-12-26 10:17:00 150

原创 chapter06_SELECT进阶

ORDER BY(1) 可以使用多个关键字示例 SELECT * FROM my_contact ORDER BY name, number;(2) 默认 升序ASCSQL排序规则NULL > 数字 > 大写字母 > 小写字母升序ASC和降序DESC可以同时用在一条语句中示例 SELECT * FROM...

2018-12-26 10:16:00 168

原创 chapter07_多张表的数据库设计

模式schema:对数据库内的数据描述(列和表),任何相关对象,各种连接方式的描述的统称解决不具有原子性的单表的问题 -- 拆分成多个具有原子性的表主键:标识当前这个表的一个或一组属性外键:对当前这个表来说未必是key,但是它是另一个表的主键。另一个表此时叫做父表(主表),父表中对应外键的主键叫做父键外键(1) 语句示例 CREATE...

2018-12-26 10:16:00 161

原创 chapter05_ALTER和字符串函数

FIRST关键字可以把新添加的列放在表的最前面,主键一般作为表的第一列ALTER的几种操作第二行:添加新列,并把这列置为表的第一列第三行:添加主键第四行:添加新列,并把这列放在contact_id列的后面(默认是放在最后一列)第五行:修改表名第六行:改变列的属性第七行:改变列的属性和名称第八行:卸除主键第九行:卸除某一列(同时删除改列...

2018-12-26 10:15:00 136

原创 chapter04_聪明的表设计

简短的查询优于较长的查询原子性数据:(1) 定义:它已经被分割至最小块,不能或不应该再被分割对于同样的信息,不同的表对于原子性数据的需求不同示例 地址包括街道 + 门牌号,对于外卖来说,它们应该合在一列存储;对于房地产中介来说,应该分成两列存储(2) 规则一具有原子性数据的列不会有多个类型相同的值示例 food_name | ...

2018-12-25 15:54:00 143

原创 chapter03_DELECT和UPDATE

DELETE FROM xxx WHERE ……WHERE 后面接着的内容可以用所有SELECT语句用到的内容谨慎使用DELETE,除非已经确认加入了精确的WHERE子句一个技巧是先用 SELECT替换DELETE,看看到底要删除哪些记录UPDATE 可以一次更新很多列的内容,中间用逗号,连接示例 UPDATE my_conta...

2018-12-25 15:53:00 84

原创 chapter02_SELECT语句

不要使用双引号,双引号只在编程语言中使用,不要在SQL中使用使用SELECT语句,应该只选择需要的列,而不是SELECT * 之后交给编程语言处理,因为这样可以加快查询速度等于运算符: = (单个等号)不等于运算符: <>对INT、DEC类型的列使用比较运算符的时候,结果就是大于某个值或者小于某个值的行;对CHAR, ...

2018-12-25 15:52:00 359

原创 chapter01_数据和表

数据库:保存表和其他SQL结构的容器SQL不区分大小写,但是命令应该用大写,数据库名、表名等应该用小写基本数据类型BOOLEANCHAR(SIGNED/UNSIGNED)TINYINT(SIGNED/UNSIGNED):8SMALLINT(SIGNED/UNSIGNED):16MEDIUMINT(SIGNED/UNSIGNED):24I...

2018-12-25 15:51:00 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除