数据库知识点总结

文件处理系统存在问题:数据的冗余和不一致,数据访问困难,数据孤立,完整性问题,原子性问题,并发访问异常,安全性问题

数据库三级抽象   物理层:最低层次的抽象,描述数据实际上是怎样存储的。逻辑层:比物理层层次稍高的抽象,描述数据库中存储什么数据及这些数据间存在什么关系。视图层:最高层次的抽象,只描述整个数据库的某个部分

数据操纵语言DML使用户可以访问或操作那些按其某种适当的数据模型组织起来的数据。 过程化DML:要求用户指定需要什么数据以及如何获得这些数据。非过程化DML:只要求用户指定需要什么数据,而不指明如何获得这些数据

事务状态图活动状态:初始状态;事务执行时处于这个状态。部分提交状态:最后一条语句执行后。失败状态:发现正常的执行不能继续之后。中止状态:事务回滚并且数据库已恢复到事务开始执行前的状态之后。提交状态:成功完成后

事务进入中止状态,系统有两种选择:重启事务:事务中止是硬件错误或不是由事务的内部逻辑产生的软件错误时。杀死事务:事务的内部逻辑错误,或者由于输入错误,或所需数据在数据库中没有找到

可恢复调度:对于每对事务,如果读取了由所写的数据项,则先于提交无级联调度:对于每对事务,如果读取了由所写的数据项,则必须在这一读取前提交,容易验证无级联调度总是可恢复的。级联回滚:因一个事无故障导致一系列事物回滚的现象。

强实体集:主码是生成的模式的主码。弱实体集:主码由其所依赖的强实体集的主码与弱实体集的分辨符组合而成

超码:一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。候选码:任意子集都不能成为超码。主码:代表被数据库设计者选中的用来在同一关系中区分不同元组的候选码

事务ACID特性原子性:事务的所有操作在数据库中要么全部正确反映,要么全部不反映。一致性:隔离执行事务时保持数据库的一致性。隔离性:尽管多个事务可能并发执行,但系统保证,对于每对事务,在看来,或者在开始之前已经完成执行,或者在完成之后开始执行。持久性:一个事务成功完成后,它对数据库的改变是永久的,即使系统可能出现故障

视图:任何不是逻辑模型的一部分但作为虚关系对用户可见的关系。屏蔽数据库的逻辑细节,提供防止用户访问数据库的某些部分的安全性机制。create view v as<…>

物化视图:保证如果用于定义视图的实际关系改变了,视图也跟着修改。视图维护:保证视图一直是最新的过程。用其他视图定义视图:一个视图可能被用到定义另一个视图的表达式中视图展开:该过程家丁视图定义不是递归的

完整性约束:保证当授权用户对数据库进行修改时不会破坏数据的一致性,防止对数据的意外破坏

DBMS数据库管理系统:由一个互相关联的数据的集合和一组可以访问这些数据的程序组成。该集合为数据库。目标:提供一个可以方便高效的存取数据库信息的环境。



广义投影:运算通过允许在投影列表中使用算数函数来对投影进行扩展(E),其中E是任意关系代数表达式,而F1…Fn中的每一个都是涉及常量以及E的模式中属性的算术表达式

删除:r ← r-E    r是关系而E是关系代数查询  插入:r ← r  E 

更新:r ← 

数据定义:数据库中的关系集合由数据定义语言(DDL)指定给系统,包括每个关系的模式每个属性的值域完整性约束每个关系维持的索引集合,每个关系安全性和权限信息。磁盘上每个关系的物理存储结构

建造表create table rA1D1,…,AnDn<完整性约束1><完整性约束k>r是关系名 Ai是关系r模式的一个属性名Di是属性Ai域的值的域类型

not  null数据不允许有空值

insert into 关系名 values()

delete from 关系名(表名)删除

drop table r  去掉一个关系

alter table r add  A  D  修改关系表r是已有关系名字 A是要添加的属性的名字 D是要添加的属性的域

as子句给结果关系中的属性赋个名称   group by 子句中的一个或多个属性是用来构造分组的    distinct用来删除重复元组    having分组限定条件

空值检测null    有空值参与比较运算,结果是unknow

集合成员资格:in测试元组是否是集合中成员,也可以用于枚举集合

集合的比较:至少比某一个要大>some(some任意一个all所有每一个) =some等价于in <>all等价于not in

将“关系A包含B”写成“not  exists(B  except  A)”

测试是否存在重复元组:结果中没有重复的元组,unique返回真

删除:delete  from  r  where  P

插入:insert  into  account  values

更新:update   account  set 

事务:由查询和更新语句序列组成commit  work提交当前事务rollback  work回滚当前事务

not  null约束:禁止在该属性上插入一个空值;同样可以被用在用户定义域的声明中,由此该域类型的属性不能为空

unique指出Aj1….Ajm属性形成了一个候选码,候选码的属性可为空

check:保证属性值满足指定的条件

参照完整性:保证一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现

函数依赖推导:模式R上函数依赖α→β成立的条件是:如果对任意合法关系r(R)及r中任意两个元组t1和t2,若t1[α]=t2[α],则t1[β]=t2[β]

保持依赖判别:r分解为n份后,f的闭包不变。

视图等价的串行调度

1对于每个数据项Q,若事务Ti在调度S中读取Q的初始值,那么在调度S’中Ti也必须读取Q的初始值。2对于每个数据项Q,若事务Ti在调度S执行read(Q),并且读取的值是由事务Tj执行的write(Q)产生的,则在调度S’中,Ti的read(Q)操作读取的值Q也必须是有Tj的同一个write(Q)产生的。3对于每个数据项Q,若在调度S中有事务执行最后的write(Q)操作,则在调度S’中操作该事务也必须执行最后的write(Q)



BCNF满足条件:对所有中形如α→β的函数依赖下面至少一个成立:α→β是平凡依赖;α是R的一个超码。分解方法:设R为不属于BCNF的一个模式,则至少有一个非平凡的函数依赖α→β,且α不是R的超码,我们在设计中用一下两个模式取代R:(αβ)(R-(β-α))

3NF满足条件:中所有形如α→β的函数依赖,至少有以下之一成立:α→β是一个平凡的函数依赖;α是R的一个超码;β-α中的每个属性A都包含在R的一个候选码中

无损分解:如果我们把r投影至R1和R2上,然后计算投影结果的自然连接,我们仍然得到一摸一样的r,ΠR1(r)??ΠR2(r)=r。判别:R1交R2是二者中任意一个的超码。

属性集闭包(Armstring公理)

自反律:βα,则α→β

增补律:α→β,则γα→βγ

传递律:α→β及β→γ则α→γ

合并律α→β及→γ,α→βγ

分解律α→βγ,则α→βα→γ

伪传递律:若有α→β及γβ→δ则αγ→δ

闭包:α为一属性集,我们称在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包

属性集闭包算法用途:1判定α是否为超码,通过计算,看是否包含了R中的所有属性。2通过检验是否β,我们可以验证函数依赖α→β是否成立。3对任意γ,我们找出闭包;对任意的S,我们输出一个函数依赖γS

无关属性:考虑函数依赖集F及F中函数依赖α→β,如果A∈α并且F逻辑蕴涵(F—﹛α→β﹜)∪﹛(α—A)→β﹜,则A在α中是无关的;如果如果A∈β并且F逻辑蕴涵(F—﹛α→β﹜)∪﹛α—(β→A)﹜,则属性A在β中是无关的

正则覆盖(Canonical cover)

F的一个正则覆盖Fc是一个依赖集,使得F逻辑蕴涵Fc中的所有依赖,并且Fc逻辑蕴涵F中的所有依赖,此外Fc必须具有如下性质:Fc中任何函数依赖都不含无关属性;Fc中函数依赖的左半部都是唯一的

若一个调度s于一个串行调度冲突等价,称调度s是冲突可串行化

如果调度S可以经过一系列非冲突指令交换转换s’,我们称S与S’是冲突等价的如果某个调度视图等价于一个串行调度,则我们说这个调度S是视图可串行化

共享锁若事务Ti获得了数据项Q的共享型锁,则Ti可读取但不能写Q排它锁:若事务Ti获得了数据项Q的排他型锁,则Ti可读取又能写Q

两阶段封锁协议:增长阶段事务可以获得锁,但不能释放锁。缩减阶段事务可以释放锁,但不能获得锁。

两阶段封锁协议保证冲突可串行化,并不保证不发生死锁,级联回滚可能发生严格两阶段封锁协议:不仅要求封锁是两阶段,还要求事务持有的所有排它锁必须在事务提交后方可释放。强两阶段封锁协议:要求事务提交之前不得释放任何锁

基于图的协议:树形协议只使用排他锁树形协议遵循规则:Ti首次加锁可以对任何一个数据项进行此后Ti对数据项Q加锁的前提是Ti持有Q的父项上的锁对数据项解锁可以随时进行数据项被Ti加锁并解锁后,Ti不能再对数据项加锁

Distinct  primary foreign references  check  union  Intersect  Except


 

第二篇:数据库知识点总结

题型:选择,填空,简答,

综合题:1. SQL语句

2. 会画ER图

3. ER图与关系模式的转换

4. 视图的创建,更新,修改,删除

5. 关系代数表达式

6. 模式分解(第四章的P60-70页要好好看看,这里会出题,然后就是把P60

页的那个表,要会分解,分解之后的形式如P82所示。)

7. 范式(要好好看看定义!要知道什么是第一,第二,第三范式)

第一章 绪论

1. 数据管理技术的发展阶段3个:人工管理阶段、文件系统阶段、数据库系统阶段。

2. 数据库系统主要由四部分组成:数据库、软件系统、硬件系统、用户。

3. 数据模型的组成要素:数据结构、数据操作、完整性约束。

4. 数据模型分类:层次模型、网状模型、关系模型、面向对象模型。

5. 数据库系统的三级模式结构:概念模式、外模式、内模式。

6. 数据库系统的二级映像: 外模式/模式映像、模式/内模式映像。

7. 概念模型中实体的联系:[1]一对一联系(1:1) ;

[2] 一对多联系(1:n);

[3]多对多联系(m:n)

第二章 关系数据库基础

1. 关系模型的三类完整性约束: 实体完整性规则、参照完整性规则、用户自定义完

整性规则。

第三章 关系数据库标准语言SQL

1. 视图的作用: (1)着重于特定数据;

(2)简化了数据操作;

(3)提供一定程度的逻辑独立性;

(4)视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,

对数据提供了一定程度的安全保护。

第四章 规范化理论

1. 关系模式中可能存在的问题: Ⅰ、数据冗余;

Ⅱ、更新异常:a.插入异常;b.修改异常;c.删除异常。

2. 范式 P77-P79

3. P80模式分解

第五章 数据库设计

1. 数据库的设计6步骤:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物

理设计阶段、数据库实施阶段、数据库运行和维护阶段。

第六章 关系查询处理和查询优化

1. 查询处理的步骤: 查询分析、查询检查、查询优化、查询执行。

2. 查询的执行代价 : 总代价= I/O代价+CPU代价

3. 查询优化一般策略: (1)选择运算尽早执行

(2)把投影运算和选择运算同时进行 (3)把投影操作与它前面或后面的一个双目运算结合起来 (4)执行连续运算之前进行预处理 (5)把笛卡尔积和其后的选择运算合并为连接运算

(6)存储公用子表示式

第七章 数据库完整性和安全性

1. 数据库的完整性是指数据的正确性、有效性和相容性。

2. 数据库的安全性是指保护数据库避免不合法的使用,以防数据泄露、更改或破坏。

3. 存取控制机制:(1)定义用户权限,单将用户权限登记到数据字典中;

(2)合法权限检查

主要有a.自主存取控制方法(DAC)

b. 强制存取控制方法(MAC)

第八章 数据库恢复和并发控制

1. 事务是数据库恢复和并发控制的基本单位

2. 事务(概念):是用户定义的一个数据操作序列,这些操作要么全做,要么全不做,

是一个不可分割的工作单位。

3. 事务的性质:(1)原子性;(2)一致性;(3)隔离性;(4)持续性。

4. 故障的种类:(1)事务故障;(2)系统故障;(3)介质故障;(4)计算机病毒和人

为破坏。

5. 恢复的实现技术:(1)数据转储;(2)登记日志文件。

6. 登记日记文件时必须遵循两条原则:(1登记的次序严格按并行事务执行的时间次序。 (2必须先写日志文件,后写数据库。

8. 并发操作带来的问题:(1)丢失修改;(2)不可重复读;(3)读“脏”数据。如课

本的P152的图8.3 ,要看懂那三个图。

9. 避免活锁的方法:先来先服务;预防死锁的方法:一次封锁和顺序封锁法。

10. 封锁 就是事务T在对某个数据对象(如表、记录等)操作之前,先向系统发出请

求,对其加锁。加锁后事务T就对该数据库对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。

11. 排他锁又称为写锁、独占锁,若事务T对数据对象A加上X锁,则只允许T读取

和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。

12. 共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能

修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。

相关推荐