数据库整理
lyl
1 intro: 数据库的作⽤/DBMS的定义/两种data model/数据独立性data independence/concurrency control并发控
制(使⽤加锁协议)/crash recovery(存储备份)/数据库的分层架构以及其应⽤
数据库的作⽤
DBMS定义
两种data model
数据独立性data indenpendence
并发控制
crash recorvery
数据库的分层架构
2 E/R: 实体,实体集,属性/ER图的实体,属性,关系(多对多,多对⼀,⼀对⼀),关系集,关系的属性,弱实体集,键,⼦类/关
系的⾓⾊roles/⼦类,ER⼦类与OO⼦类的区别/键keys/弱实体集定义,两个约定/数据库设计的三个法则,数据冗余,
使⽤实体⽽非属性的两种情况/关系可合并的两种情况,RE图转关系模型:实体的变换,属性的变换,关系的变换,弱
实体集的变换,带有⼦类的ER图的三种转换法
实体,实体集,属性
E/R图的实体,属性,关系(多对多,多对⼀,⼀对⼀),关系集reletionship set
关系的⾓⾊role
⼦类,ER⼦类与OO⼦类的区别
键
弱实体集weak entity定义, 两个约定
数据库设计的三个法则, 数据冗余,使⽤实体⽽非属性的两种情况
关系可合并的两种情况,RE图转关系模型:实体的变换,属性的变换,关系的变换,弱实体集的变换,带有⼦类的
ER图的三种转换法
3 fd: 函数依赖functional dependence的定义,右部分解/键与超键/依赖的推导,闭包closure的推导,利⽤closure判
断依赖是否存在,隐含依赖的推导,规范化normalization, nontrival fd非平凡函数依赖/依赖的投影projected FD,求
依赖投影的简单指数算法exponential algorithm,两个技巧/3种异常, 判断⽆损分解, 分解的评判标准与chase检
测/BCNF的定义,BC的分解/minimal basis最⼩函数依赖集的求法,prime主属性3NF的定义,3NF的合成(3NF
synthesis),BC和3NF的比较/完全函数依赖(full function dependence)/2NF,1NF的定义与判断
函数依赖functional dependence的定义,右部分解
键与超键
依赖的推导,闭包closure的推导,利⽤closure判断依赖是否存在,隐含依赖的推导, nontrival fd非平凡函数依赖
依赖的投影projected FD,求依赖投影的简单指数算法exponential algorithm,两个技巧
3种异常, 判断⽆损分解, 分解的评判标准与chase检测
BCNF的定义,BC的分解
minimal basis的求法,prime,3NF的定义,3NF的合成(3NF synthesis)
完全函数依赖(full function dependence)
2NF,1NF的定义与判断
3_2 fd的公理系统: 基本符号:关系模式,函数依赖的闭包,属性集的闭包,最⼩函数依赖集/Armstrong的3条规则和3
个推理/闭包的计算,求闭包算法的循环次数/FD等价与FD覆盖
基本符号: 关系模式,函数依赖的闭包,属性集的闭包
Armstrong的3条规则和3个推理
闭包的计算,求闭包算法的循环次数
FD等价与覆盖
4 MVD多值依赖: MVD的定义,平凡多值依赖与非平凡多值依赖,MVD的6个性质,MVD与FD的关系/4NF的定
义,4NF与BCNF的对比,4NF的分解/MVD或FD是否存在的判断(使⽤表格,或利⽤传递性)
MVD的定义,平凡多值依赖与非平凡多值依赖,MVD的6个性质,MVD与FD的关系
4NF的定义,4NF与BCNF的对比,4NF的分解
MVD或FD是否存在的判断(使⽤表格,或利⽤传递性),规律⼩结
5 Relational Algebra (ra 关系代数) : relational algebra的定义,操作数operand与算⼦operation/核⼼关系代
数:selection,projection,product and join,rename,执⾏结果/表达式的构建,表达式的三种写法,算符优先级/包bag
定义,与集合的区别,包与集合上操作的不同之处
relational algebra关系代数的定义,操作数operand与算⼦operation
核⼼关系代数:selection,projection, product and join, rename,执⾏结果
表达式的构建,表达式的三种写法,算符优先级
包bag定义,与集合set的区别,包与集合操作的不同之处
6 数据库-连接库: SQL注入/基于库libraries的SQL接⼝/三层架构/php游标cursors
基于libraries的SQL接⼝
数据库环境的三层结构:
基于libraries的SQL接⼝
php游标cursors
7 SQL intro: select-from-where/使⽤as重命名/模糊查询的两种模式/空值null的两种含义/三值逻辑/多重关系查
询:定义,⽅法/self-join查询同⼀关系中的两个不同对象/⼦查询描述,返回值/in(与普通query的区
别),exists,any,all,union,intersect,except⽤法,语句的值,⽤在哪⾥/基于包执⾏的操作,基于集合执⾏的操作/消除重
复项duplicate elimination--distinct/join操作: 笛卡尔积,⾃然连接,theta连接
模糊查询的两种模式
空值null的两种含义
三值逻辑
多重关系查询Multirelation query定义,⽅法
self-join查询同⼀关系中不同的两个对象
⼦查询subquery描述,返回值
in,exists,any,all,union,intersect,except⽤法,语句的值,⽤在哪⾥
基于包执⾏的操作,基于集合执⾏的操作
消除重复项duplicate elimination--distinct
join操作: 笛卡尔积,⾃然连接,theta连接
8 ra-sql: 拓展关系代数:包去重,排序/悬挂元组dangling,内连接,外连接:左外连接,右外连接,全连接/聚集
aggregation:sum,max,min,avg,count,以及与distinct的结合,聚集中的空值/分组,使⽤分组对select进⾏限制,分组
中的聚集函数,使⽤分组的两个必须条件/having的使⽤以及规则,后⾯跟随的条件/数据库插入(普通插入,批量插
入,利⽤⼦查询插入),删除(全部删除,部分删除),更新(全部更新,条件更新),缺省
拓展RA:包去重,排序,分组聚集
悬挂元组dangling tuple,内连接,外连接中悬挂元组的表⽰,外连接:left outer join, right outer join, full outer
join
aggregation:sum,max,min,avg,count,在聚集函数中使⽤distinct,聚集函数中元组null的情况
分组,使⽤分组对select进⾏限制,分组中的聚集函数,使⽤分组的两个必须条件
having的使⽤以及规则,后⾯跟随的条件
数据库插入(普通插入,批量插入,利⽤⼦查询插入),删除(全部删除,部分删除),更新(全部更新,条件更新),缺省
9 约束constraint: 约束的定义,种类/外键的定义,外键表达⽅式,维护外键约束的3种⽅式(default,cascade,Null(缺
省,级联,置空))以及选择策略/三种检测(attribute-based, Tuple-based, assertion断⾔)的⽅式,时机/触发器trigger
描述,使⽤时机,创造规则:event-condition-action
约束的定义,种类
foreign key外键的定义,外键表达⽅式,维护外键约束的3种⽅式(default,cascade,null(缺省,级联,置空))以及选
择策略
三种检测(attribute-based,tuple-based,assertion)的⽅式,时机
触发器trigger描述,创建,使⽤时机,创造规则,event-condition-action规则
10 transaction-view-index事物-视图-索引: transaction定义,ACID,导致事物结束的两种情况:commit,rollback/回
滚rollback:导致回滚的情况,解决⽅法/sql4个隔离层级isolated level,选择/事物序列化的定义,操作/view的定义,种
类,声明,结合触发器的视图,基表更改引起实例化视图更改问题以及解决⽅法/index索引定义,声明,使⽤索引优化
数据库查询tuning的优点,缺点
transaction定义,ACID,commit
roll back:导致回滚的情况,解决⽅法
sql4个隔离层级isolated level,选择
视图的定义,两种类别,声明,结合触发器的视图,视图实例化,基表更改引起实例化视图更改问题的解决⽅法
index索引定义,声明,使⽤索引优化数据库查询tuning的优点,缺点
11 psm持久型存储模块(存储过程),pl与sql: psm定义,参量的三种类型,声明,invoke调⽤,语法:判断,循环,指
针,return/动态SQL声明,调⽤
psm定义,参量,声明,invoke,3个基本种类及作⽤,语法:判断,循环,指针
动态SQL的声明,调⽤
12 grant授权: 语法:授权(操作权限,授权权限),撤销授权revoke,撤销授权的两种选项/授权图的点,边,AP,P*,P**,授
权规则,撤销授权规则
语法:授权(操作权限,授权权限),撤销授权(操作权撤销,授权权撤销),撤销授权的两种选项
授权图的点,边,AP,P*,P**,授权规则,撤销授权规则
13 concurrency 并发控制: 基本概念:transaction事物,conflicting action冲突⾏为的种类,schedule调度,调度的4种
⽅式/并发事务运⾏存在的3个异常/冲突等价conflict equivalent的定义/precedence graph符号表⽰,前驱图的节
点,边,两个定理/(⼀级)加锁解锁协议:符号,legal schedule合法调度和well-formed调度/2PL两阶段锁协议描述,避
免数据出错的其他4种⽅法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则(well-
formed,legal,upgrade变化问题)/increment lock增量锁和update lock的描述,符号/锁的兼容性/系统⼀个解决并发
多⽤户加解锁问题的⽅法/多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,
兼容性,加锁对象上允许再加的其他锁/pehantom数据重影定义,解决⽅法
基本概念:transaction,conflicting action的种类,schedule,调度的四种⽅式
并发事务运⾏存在的3个异常
冲突等价conflict equivalent定义
precedence graph前驱图的符号表⽰,节点,边,两个定理
加解锁协议:符号,legal schedule和well-formed
2PL:描述,避免数据出错的其他4种⽅法(共享锁,多粒度,插入删除,其他机制),共享锁和排他锁描述,3个法则
(well-formed,legal,upgrade变化问题)
increment lock和update lock描述,符号
锁的兼容性
系统⼀个解决并发多⽤户加解锁问题的⽅法
多粒度封锁granularity:多粒度封锁描述,锁的类型((主要是意向锁:)IS,IX,SIX),6个规则,兼容性,加锁对象上允
许再加的其他锁
pehantom数据重影定义,解决⽅法
14 tp: 事务结束的两种情况/可恢复调度,避免级联回滚的概念/死锁的检测,4个避免⽅法
事务结束的两种情况
可恢复调度,避免级联回滚的概念
死锁的检测,4个避免⽅法
15 view serializability视图可串⾏化: 视图等价,视图可串⾏化定义,定理,判断⽅法
view equivalent,view serialiability定义,定理,判断⽅法
21 xml可扩展标记语⾔: xml概念,两种类型,结构/DTD概念,结构,元素,⽤法,属性/ID和IDREF/XML例⼦
xml概念,两种类型
DTD概念,结构,元素,⽤法,属性
22 olap: data warehouse,olap,oltp,data mining/star schema的两个组成部分(事实表,维表)/cube的drill-down和
roll-up操作
data warehouse,olap,oltp,data minging
star schema的两个组成部分
cube的drill-down和roll-up操作
24 distributed分布式数据库: 优点,问题
分布式数据库优点
分布式数据库解决的问题
1 intro: 数据库的作⽤/DBMS的定义/两种data
model/数据独立性data
independence/concurrency control并发控制(使
⽤加锁协议)/crash recovery(存储备份)/数据库的
分层架构以及其应⽤
数据库的作⽤
1. store huge amount of data over a long time
2. allow apps to query and update data
3. protect from unauthorized access
4. protect form system crash
5. protect from incorrect input
6. support concurrent access
7. allow administrator to change data
8. different database operation
DBMS定义
a software to store and manage data, so applications don't have to worry about them
DDL
DML
storage management
transaction management(交易/事物管理)
security, efficiency, scalability(可扩展性)
两种data model
E/R
relational model(表, 元祖...)
数据独立性data indenpendence
DBMS的分层架构包括⼀些views, ⼀个概念层conceptual schema, ⼀个物理层physical schema. 各层之间改变某⼀
层的数据仅对其上层造成影响
并发控制
解决: 加锁locking protocol
crash recorvery
解决: 使⽤⽇志log, 所有对数据的写操作记录在⽇志中,存在稳定的存储系统⾥(stable storage)
数据库的分层架构
⼆层: ODBC, JDBC
三层: 基于Web的应⽤程序
2 E/R: 实体,实体集,属性/ER图的实体,属性,关系(多
对多,多对⼀,⼀对⼀),关系集,关系的属性,弱实体集,
键,⼦类/关系的⾓⾊roles/⼦类,ER⼦类与OO⼦类的
区别/键keys/弱实体集定义,两个约定/数据库设计的
三个法则,数据冗余,使⽤实体⽽非属性的两种情况/
关系可合并的两种情况,RE图转关系模型:实体的变
换,属性的变换,关系的变换,弱实体集的变换,带有⼦
类的ER图的三种转换法
实体,实体集,属性
实体entities: "thing" or object
实体集 entity set: 实体的集合
属性attribute: property(属性) of an entity set
E/R图的实体,属性,关系(多对多,多对⼀,⼀对⼀),关系集
reletionship set
实体: 矩形
属性: 椭圆
关系: 菱形, 直线连接形成关系的实体
多对多: 不带箭头(⼀个酒吧卖很多种酒, ⼀种酒杯很多酒吧卖)
多对⼀: 指向⼀(⼀个⼈只有⼀款最喜欢的酒, ⼀款酒可以被很多⼈最喜欢)
⼀对⼀: 双向箭头(⼀个⼈只有⼀个老婆,反之也是)
关系集: ⼀张表, ⾥⾯有关系中各属性的值, ⼀⾏为⼀个元组, 可以有多⾏
键: 在相应属性下⽅画横线
关系的属性: 由形成关系的双⽅共同确定
弱实体集: 箭头指向弱实体集所依赖的实体
实体: 双框矩形
关系: 双框菱形
键: 在代表键的属性下画横线, 包括⾃⼰的键和依赖实体集的键
⼦类: ⽤带isa三⾓形的箭头从⼦类指向⽗类
实体: 矩形
属性: 椭圆,只标明⼦类特有属性
键: 只有基类实体有键, 并且该键作⽤于整个继承机制的所有类
关系的⾓⾊role
在ER图的边旁标识, 对关系中多次出现的实体进⾏定义
⼦类,ER⼦类与OO⼦类的区别
⼦类 = 特殊情况 = 更少的实体, 更多的属性
ER⼦类与OO⼦类的区别
OO: ⼦类继承⾃⽗类,其对象实体只属于⼀个类(objects are in one class only)
ER: ⼦类的对象在⼦类和⽗类中都存在(E/R entity has representatives in all subclasses which they
belong)
键
键: 键是关系集中的⼀组属性, 若两个元组的键值相同, 则其他非键属性必定相同
A key is a set of attributes for one entity set such that no two entities in this set agree on all the attributes of
the key.
弱实体集weak entity定义, 两个约定
弱实体集: 为了唯⼀标识⼀个实体集中的实体, 需要依赖其本⾝的键以及⼀个或多个多对⼀关系中的另⼀个实体
集的键.
约定:
1. 弱实体集与依赖的实体集之间存在⼀个或多个多对⼀关系
2. 弱实体集的键包括其本⾝的键和所依赖的实体集的键
数据库设计的三个法则, 数据冗余,使⽤实体⽽非属性的两种情况
数据库设计的三个法则
1. 避免冗余(avoid redundancy)
2. 尽量避免弱实体集的使⽤(limit the use of weak entity sets)
3. 能⽤属性就不⽤实体(don't use an entity set when an attribute will do)
数据冗余: 使⽤不同的⽅法描述同⼀件事物(saying the same thing in two different ways)
使⽤实体的两种情况
1. 包含的属性不仅仅是名字,或含有⾄少⼀个非主属性
2. 在多对多或多对⼀关系中属于"多"
关系可合并的两种情况,RE图转关系模型:实体的变换,属性的变换,
关系的变换,弱实体集的变换,带有⼦类的ER图的三种转换法
关系可合并两种情况
同⼀实体集中的关系可合并
多对⼀关系中的"多"可合并
Drinkers(name, addr)
Favorite(drinker, beer)
合并为:
Drinker1(name, addr, favbeer)
ER图转关系模型
实体集 -> 关系
关系 -> 关系(仅包含构成关系的各实体集的键)
弱实体集 -> 关系:
⽤实体表⽰关系⽽非关系表⽰关系
形成弱实体集的关系, 其依赖的实体集的关系
弱实体集形成的关系属性包含弱实体集的全部属性和其依赖的实体集的键
带有⼦类的ER图转换的3种⽅法:
1. OO: 每个⼦类都是⼀个关系, 包含⽗类以及⼦类⾃⼰的全部属性
2. use Null: 只有⼀个关系, 包含⼦类和⽗类的所有属性, 其中⽗类对象不具有的⼦类属性⽤null代替
3. ER: ⼀个⼦类⼀个对象, 包含⽗类的键值和⼦类⾃⼰的全部属性
3 fd: 函数依赖functional dependence的定义,右
部分解/键与超键/依赖的推导,闭包closure的推导,
利⽤closure判断依赖是否存在,隐含依赖的推导,规
范化normalization, nontrival fd非平凡函数依赖/
依赖的投影projected FD,求依赖投影的简单指数算
法exponential algorithm,两个技巧/3种异常, 判断
⽆损分解, 分解的评判标准与chase检测/BCNF的定
义,BC的分解/minimal basis最⼩函数依赖集的求
法,prime主属性3NF的定义,3NF的合成(3NF
synthesis),BC和3NF的比较/完全函数依赖(full
function dependence)/2NF,1NF的定义与判断
函数依赖functional dependence的定义,右部分解
函数依赖: 在关系R中, 如果当属性集X中所有属性值相同时, 属性集Y中的所有属性值也相同, 称关系R中存在函
数依赖
X− > Y
,简写作FD
X ->Y is an assertion about a relation R that whenever two tuples of R agree on all the attributes of X, then
they must also agree on all attributes in set Y.
Say “X ->Y holds in R.”
Convention: …, X, Y, Z represent sets of attributes; A, B, C,… represent single attributes.
Convention: no set formers in sets of attributes, just ABC, rather than {A,B,C }.