云南大学数据库复习资料.docx
《云南大学数据库复习资料.docx》由会员分享,可在线阅读,更多相关《云南大学数据库复习资料.docx(21页珍藏版)》请在冰点文库上搜索。
云南大学数据库复习资料
第一章:
IntExplainwhydatabasesareimportanttobusiness.(解释为什么数据库对商业很重要)
1.数据库系统方便地实现了数据的集中管理。
2.使用数据库系统可以保持数据的独立性。
3..数据库系统是企业实现信息化的核心。
Information
内容代表信息,信息来源于物质和能量,可以被感知、存储、加工、传递和再生。
信息是一个社会属性,是人类维持正常活动不可缺少的资源。
Data
数据是可以被用符号或者其他形式记录下来的信息,是可以被识别的信息。
被赋予特定语义的符号,可以记载和传递信息。
ACIDpropertiesofaTransaction
A:
原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
B:
一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
一致性与原子性是密切相关的。
C:
隔离性(Isolation)一个事务的执行不能被其他事务干扰。
D:
持续性/永久性(Durability)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
第二章:
databasesystemdevelopmentlifecycle
-信息收集阶段:
必须了解企业中数据的组成,确定所需的数据是已经存在还是需要新建。
-分析和设计过程:
需要根据基本的数据需求从概念和逻辑上建立数据模型;然后在开始部署之前,将逻辑的数据库转换可以使用的物理数据库设计。
-部署和试运行阶段:
数据库专家需要预估数据库系统的工作量,确定系统的安全性,预期系统的存储和内存需求;然后将新的数据库从测试环境迁移到生产环境中试运行。
-维持可用性阶段:
系统开始运行之后,仍需要保证系统的可用性和安全性,对数据进行使用权限管理,性能监控管理、性能调优管理、数据备份和恢复管理。
-系统维护阶段:
当数据库环境变化时,需要对数库系统进行升级或者维护,数据库专家需要根据收集到的信息再次重复整个生命周期的流程。
Missionstatement(任务陈述)forthedatabaseprojectdefinesmajoraimsofdatabasesystem.数据库项目定义了数据库系统的主要目标
用户需求规约数据需求事务需求
数据库系统的系统规约初始数据库大小数据库增长速度记录查找的类型和平均数量网络和数据共享需求性能安全性备份和恢复用户界面合法问题
如何在众多的数据库管理系统中选出合适项目本身的DBMS?
1、成本问题2、功能性问题3、系统平台问题4、开发平台的问题
第三章:
IdentifythesymbolsusedinanERdiagram.
Defineandselectaprimarykey.
Explaintheroleofforeignkeys.
Identifyandapplyintegrityrules.
Explaintheadvantagesofrelationaldatabase.
RelationAlgebra
(1)Union并
(2)Intersection交(3)Difference差(4)TheProductOperation笛卡尔积(5)TheProjectionOperation投影
(6)TheSelectionOperation选择
(7)TheJoinOperation连接
(8)除法(division)
Entities,RelationshipsandAttributes实体、关系和属性
entityrelationshipdiagram实体的模型和它们之间的关系称为实体关系图
第四章
PrimaryKeys
UniqueMinimalNotNullNonupdateable
ForeignKeys
AssociativeEntity关联实体
DataIntegrity
Entityintegrity:
基本关系的所有主关键字对应的主属性都不能取空值
Referentialintegrity:
关系中不允许引用不存在的实体
FirstNormalForm(1NF)不允许有多值属性
画er图步骤:
1.将实体表示为表2.确定关系3.列出字段4.识别主键5.确定数据类型
第五章
DataRedundancy数据冗余:
2NF-SecondNormalForm:
主键的一部分不能确定非键字段
3NF-ThirdNormalForm:
非键字段不能确定另一个非键字段
BCNF-Boyce–CoddNormalForm:
非键字段确定主键的一部分
4NF-FourthNormalForm:
全键表中,键的一部分可以决定其他多个值
5NF-FifthNormalForm
6NF-SixthNormalForm
DKNF-Domain/KeyNor
Derivedattribute
由单个属性派生而出;
2、由多个属性派生而出;
3、由其他属性的多个值派生而出;
4、由其他表的多个属性的多个值派生而出;
数据库中,一般只存基属性值,而派生属性只存其定义或依赖关系,用时再从基属性中计算出来
RecursiveRelationships:
递归关系
一对多的递归关系:
计算机和组件之间的关系:
Supertype/SubtypeHierarchies(超类和子类)
PartialSpecialization(局部特殊化):
(超类的某些实例不属于任何子类类型)
TotalSpecialization(全局特殊化):
(超类的所有实例都必须至少属于一个子类类别)
Disjointrule(分离规则):
(超类的一个实例至多属于一个子类类别)
Overlaprule(交叠规则):
(一个超类实例可能属于超过一个子类类别)
connectiontraps.(连接陷阱)1.fantraps(扇形陷阱)andchasmtraps.(深坑陷阱)
扇形陷阱:
哪名学生学习了课程CS101?
用当前的结构是不可能给出一个明确的答案的。
深坑陷阱由于student可以没有textbook,textbook就不知道是属于哪个course的了
第七章
logicaldatabasedesign
Step1:
createandcheckERmodel
Step2:
mapERmodeltotables
步骤1.1标识实体
步骤1.2标识关系
步骤1.3标识实体或关系实体的相关属性
步骤1.4确定属性域
步骤1.5确定候选键、主键
步骤1.6特化和泛化实体标识超类和子类
步骤1.7检查模型的冗余性
步骤1.8检查模型是否支持用户事务
步骤1.9和用户一起检查模型
步骤2.1创建表
步骤2.2使用规范化方法检查表结构
步骤2.3检查表是否支持用户所需的事务
步骤2.4检查业务规则需要的数据属性域约束实体完整性多样性参照完整性
步骤2.5与用户一起讨论逻辑数据库设计
第八章PhysicalDatabaseDesignSummary
步骤3将逻辑数据库设计转换为目标DBMS
步骤3.1设计基表
步骤3.2导出数据的设计表示
步骤3.3设计剩余的业务规则
步骤4:
选择文件组织和索引
替代键(alternatekey)可以是数据表内不作为主键的其他任何列,只要该键对该数据表唯一即可。
换句话说,在唯一列内不允许出现数据重复的现象。
Fileorganizations:
文件存储在磁盘上时,记录在文件中的排列方式。
Indexes:
一种数据结构,DBMS利用索引在文件中更快的定位某些记录,提高对用户查询的响应。
步骤4.1Analyzetransactions事务
对于更新事务,要注意被更新的列,这些列不适合作为索引列。
(b)Columnsusedinanysearchconditions.
在where子句中的列,可能是索引的候选。
(c)Forquery,columnsinvolvedinjoins.
联接列,也可能是索引的候选。
(d)Expectedfrequencyoftransaction.
(e)Performancegoalsoftransaction.
对常用和关键事务中的查询条件使用的列,需要重点考虑。
步骤4.2选择文件组织
步骤4.3选择索引
一种方法是记录无序,创造尽可能多的二级索引也可以通过指定一个主或集群索引来在表中管理记录
每个表只能有一个主索引或一个集群索引
在插入记录时将索引记录添加到每个辅助索引;
更新相应记录时的辅助索引;
增加存储二级索引的磁盘空间;
在查询优化期间可能的性能降低,以考虑所有的辅助索引。
建议:
(1)小表不建索引。
(2)一个表的索引PK,如果它不是文件组织的键。
(3)将辅助索引添加到被大量用作辅助键的列。
(4)如果频繁访问,则将辅助索引添加到FK
(5)需要添加二级索引:
选择或连接标准;按顺序排列;以及其他涉及排序的操作
(6)内置函数中使用的列上添加辅助索引
(7)避免索引频繁更新的列或表。
(8)避免索引需要查询检索表中大量的记录
(9)避免索引包含长字符串的列。
如果查询条件包含多个条件,并且条件中包括一个or子句,而该条件没有索引,那么为其他列添加索引将不会改善查询速度。
SQLServer中常用的索引是B树索引
索引使用条件:
至少要在有效查找参数或连接子句中包括索引的第一列,选择复合索引的列顺序时,更要注意这一点。
Ø复合索引:
把选择性最高的列放在第一位。
Ø保证在连接中使用索引列。
如果连接中指定的列不进行索引,则效率低。
主键自动生成索引。
Ø对关键查询和事务调整索引。
Ø避免选择性差的列生成索引。
Ø小心选择簇索引与非簇索引。
步骤5用户视图
DBMS通常提供两种类型的数据库安全:
系统安全:
系统级访问和使用数据库(如用户名/口令)
数据安全:
访问和使用数据库对象(如表和视图)
DenormalizationNormalization
规范化结果在逻辑数据库设计中,结构上是一致的,并且具有最小的冗余。
反规范化设计是使用空间(冗余)换取时间(效率)
方规范化:
优点:
减少关联表的数量。
提高读取数据的效率。
缺点:
1.使实现更复杂;2.常常牺牲灵活性;3.可以加快检索速度,但会减慢更新速度。
Partitioningtables(拆分表):
水平拆分垂直拆分
优点:
1.改进的负载平衡2.改进的性能3.增加可用性4.改进的复苏5.安全。
缺点:
1.复杂2.重复
添加特殊字段以提高事务的效率
在高并发应用中避免使用外键约束
1、降低数据导入效率(要符合外键约束的才能导入数据,每次都需要检查参照完整性,该过程是有一定时间消耗的,在高并发应用中并不合适)
2、增加维护成本(维护时需要考虑外键约束)
3、有时一个字段可能充当多个实体的共同外键
4、虽然不建议在高并发应用中使用外键约束,但是需要在应用上控制参照完整性,且相关联的列一定要建立索引,提高查询效率。
尽量避免使用触发器
1、一些DBMS对触发器的数量有限制(Innodb每种触发器只支持一个)。
2、可能产生意想不到的数据异常。
3、日后维护可能遇到困难。
4、使业务逻辑变得复杂。
可以用来衡量效率的因素的量:
Transactionthroughput(事务吞吐量):
在给定的时间间隔内处理的事务数。
Responsetime:
完成单个事务的时间。
Diskstorage:
存储数据库文件所需的磁盘空间数量。
影响性能:
因素:
mainmemoryCPUdiskI/Onetwork.
第九章
为什么使用报表平台?
应对快速变化的需求。
更加灵活地设计方式。
更快速多样的展现方式。
较容易适应对格式要求较高的需求。
多种交互形式与多平台展示支持
直接按照规范形式予以打印
将用户与报表直接相关,减轻了IT部门的压力
报表设计人员
集成、灵活、轻松(AnalysisServices查询设计器、VisualStudio集成)
报表管理人员
集中、便捷、直观
报表终端用户
交互、多样、快速
第十章:
ClassificationofPhysicalStorageMedia物理存储介质的分类
MagneticHardDiskMechanism磁性硬盘机制
FileOrganization文件组织
ClassificationofPhysicalStorageMedia
可以访问数据的速度
每单位数据成本
可靠性
Candifferentiatestorageinto:
易失性非易失性
磁盘的总容量
记录盘面数*每记录盘面的磁道数*每磁道的扇区数*每扇区的字节数
磁盘的性能指标:
磁盘的容量,存取时间,数据传输速度,可靠性
磁盘的性能的措施:
访问时间:
当数据传输开始时,读取或写入请求所需要的时间
数据传输速率
Data-transferrate:
数据读取或存储的时间
Meantimetofailure(MTTF):
磁盘连续运行且没有错误时间的平均。
优化磁盘块访问:
Block:
一个连续的扇区序列
Buffering:
从磁盘读取的块被临时存储在内存缓冲区中,以满足将来的请求
预读取:
当一个磁盘块被访问时,即使没有对块的等待请求,也可以将来自相同跟踪的连续块读入内存中的缓冲区
Scheduling:
Disk-arm–schedulingElevatoralgorithm
Fileorganization.:
为了减少块访问时间,我们可以在磁盘上组织块,这与我们期望访问数据的方式密切相关
Nonvolatilewritebuffers.由于主存的内容在一次电源故障中丢失,所以关于数据库更新的信息必须记录在磁盘上以保存可能的系统崩溃。
Logdisk:
减少写延迟的另一种方法是使用日志磁盘—即一个用于编写顺序登录的磁盘—与非易失性RAM缓冲区的方式相同。
廉价磁盘冗余阵列(RAID)
RedundantArraysofIndependentDisks
是一种利用大量廉价磁盘进行磁盘组织的技术
价格上,大量廉价的磁盘比少量昂贵的大磁盘合算得多
性能上,使用大量磁盘可以提高数据的并行存取
可靠性上,冗余数据可以存放在多个磁盘上,因此一个磁盘的故障不会导致数据丢失
通过冗余提高可靠性
第十一章
两种基本的指数:
Orderedindices(顺序索引)Hashindices(散列索引)
索引评价指标:
Accesstypes(访问类型)Accesstime(访问时间)Insertiontime(插入时间)Deletiontime(删除时间)Spaceoverhead(空间开销)
OrderedIndices:
稠密索引:
文件中每个搜索码值都有一个索引记录
SparseIndex稀疏索引:
只为搜索码的某些值建立索引
SecondaryIndices设立中间层,是为了减少索引文件的存储内容和空间(重复索引项记录可稀疏存储)
MultilevelIndex:
建立索引的索引
如果删除的记录是文件中唯一具有特定搜索键值的记录,则搜索键也会从索引中删除。
B-树
1.定义任意非叶子结点最多只有M个儿子;且M>2;
2.根结点的儿子数为[2,M];
3.除根结点以外的非叶子结点的儿子数为[M/2,M];
4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)
5.非叶子结点的关键字个数=指向儿子的指针个数-1;
静态哈希
如果最初的桶数太小,文件增加,由于过多的溢出,性能将会降低,如果空间是为预期的增长而分配的,那么一开始就会浪费大量的空间(并且将会有大量的存储空间)。
如果数据库收缩,空间将被浪费。
一个解决方案:
使用新的哈希函数定期重新组织该文件,更好的解决方案:
允许动态地修改bucket的数量。
动态哈希
第十二章
查询步骤:
查询成本测量:
通常磁盘访问是占主要的主要成本
第十三章查询优化
查询优化器的主要任务
给定一个关系代数表达式,查询优化器的主要任务是产生一个查询执行计划,该计划能获得与原关系表达式相同的结果,并且得到结果的执行代价最小。
具体步骤:
生成逻辑上与给定表达式等价的表达式
利用等价规则将一个表达式转换成另一个等价的表达式
注解(Annotate)结果表达式以得到其他查询执行计划
基于估算代价选择最廉价的计划
整个过程称为基于代价(costbased)的优化,查询执行计划的开销估算可以基于:
关系的统计信息:
元组数目、一个属性的非重复值数目
中间结果的大小
各类算法的开销计算(上一章)
尽可能早地执行投影,可以减少与被连接的关系的大小
第十四章:
事务:
访问并可能更新各种数据项的一个程序执行单元
ACIDProperties
原子性Atomicity事务的所有动作要么全部执行,要么由于出错而撤销事务的部分影响。
一致性Consistency:
在没有其他事务并发执行的情况下,保持数据库的一致性
隔离性Isolation:
每个事务不应该受其他并发事务的影响。
持久性Durability一旦事务成功执行,其影响必须保存在数据库中,一个系统故障不应该导致数据库忽略成功完成的事务
在
基本比较
并行事务会破坏数据库的一致性
串行事务效率低
并行的优点
一个事务由不同的步骤组成,所涉及的系统资源也不同。
这些步骤可以并发执行,以提高系统的吞吐量
系统中存在着周期不等的各种事务,串行会导致难于预测的时延。
如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间
A950B2100
Serializability()可串行化
冲突等价:
如果调度S可以经过一系列非冲突指令交换成S‘
冲突可串行化(conflictserializable):
一个schedule能将冲突的操作调节成类似串行化的操作。
优先图(precedencegraph)
一个调度S的优先图是这样构造的:
它是一个有向图G=(V,E),V是顶点集,E是边集。
顶点集由所有参与调度的事务组成,边集由满足下述条件之一的边Ti
Tj组成:
①在Tj执行read(Q)之前,Ti执行write(Q)
②在Tj执行write(Q)之前,Ti执行read(Q)
③在Tj执行write(Q)之前,Ti执行write(Q)
’冲突可串行化判定准则
如果优先图中存在边Ti
Tj,则在任何等价于S的串行调度S'中,Ti都必须出现在Tj之前
如果调度S的优先图中有环,则S是非冲突可串行化的。
如果图中无环,则S是冲突可串行化的
视图可串行化:
如果一个schedule是视图等价于一个串行化schedule,那么它是视图可串行化的。
每一个冲突可串行化的schedule都是视图可串行化的,反过来不成立。
RecoverableSchedules-可恢复调度
CascadingRollbacks-级联回滚:
单个事务失败导致一系列事务回滚。
第十五章
锁的模式主要有六种:
共享锁、更新锁、排他锁、结构锁、意向锁和块更新锁
排他锁exclusive(X):
如果事务Ti获得数据项的排他锁,Ti既可读又可写
事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁;又称写锁
共享锁shared(S):
如果事务Ti获得数据项的共享锁,Ti可读不可写
事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,但是对R的S锁请求可以成功;又称读锁
封锁点:
在调度中该事务获得最后加锁的位置