数据库复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章:概论
数据库应用:联机事务处理、联机分析处理
DBMS是一类重要的系统软件,由一组程序构成,其主要功能是完成对数据库的定义、数据操纵,提供给用户一个简明的应用接口,实现事务处理等。

DBMS基本功能:数据定义、数据操纵、数据库的运行管理、数据库的建立和维护功能。

DBMS组成模块:查询处理器、存储处理器。

DBMS层次结构:应用层、语言翻译处理层、数据存取层、操作系统、数据库。

数据库系统组成:数据库、数据库管理系统、应用程序和用户
数据模型三要素:数据结构、数据操作、数据的完整性约束条件
三种数据模型:概念模型(实体-联系模型)—逻辑模型(层次模型、网状模型、关系模型、对象关系模型)—物理模型
DBS的三级模式:外模式(用户模式/子模式)、内模式、模式(逻辑模式)
两个层次的映像:外模式/模式映像、模式/内模式映像
数据库系统的特点:数据结构化、数据共享性高冗余度低、数据独立性高、数据由DBMS 统一管理和控制
数据库系统的分类:集中式数据库系统、客户机/服务器数据库系统、并行数据库系统、分布式数据库系统
第二章:关系模型
表名-关系名、表头-关系模式、数据-关系实例
关系模型的数据结构是一张扁平的二维表(关系)。

关系模型的数据操作:建表、填表、修改、删除、查询、销毁表
关系模型的完整性约束:实体完整性、参照完整性、用户定义的完整性
关系代数用到的运算符包括四类:传统的集合运算符(交并差笛卡尔积)、专门的关系运算符(选择投影连接除)、算术比较符和逻辑运算符。

第三章:SQL查询
操作对象:表和视图是SQL的操作对象。

操作分类:数据定义语言、数据操纵语言、数据控制、嵌入式SQL和动态SQL
SQL的特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用
SQL功能:数据查询(SELECT)、数据定义(CREATE、DROP、ALTER)、数据操作(INSERT,UPDATE,DELETE )、数据控制(GRANT,REVOKE )
第四章:查询处理及优化
查询处理的步骤:查询分析、查询检查、查询优化、查询执行
一个典型的外部排序算法分为内部排序阶段和归并阶段。

关系数据库查询优化的总目标是:选择有效的策略,求得给定关系表达式的值。

查询优化一般来说,可以归纳为四个步骤:
1、将查询转换成某种内部表示,通常是语法树。

2、根据一定的等价变换规则把语法树转换成标准(优化)形式。

3、选择低层的操作算法。

对于语法树中的每一个操作需要根据存取路径、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。

4、生成查询计划。

查询计划也称查询执行方案,是由一系列内部操作组成的。

查询优化的一般准则:1.选择运算应尽可能先做。

2.在执行连接前对关系适当地预处理。

3.把投影运算和选择运算同时进行。

4.把投影同其前或其后的双目运算结合起来。

5.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。

6.找出公共子表达式。

第五章:事务管理
概念:事务是由一系列的对数据库的查询操作和更新操作构成,这些操作是一个整体,不能分割,即要么所有的操作都顺利完成,要么一个操作也不要做,绝不能只完成了部分操作,而还有一些操作没有完成。

事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

事务的特性:原子性,一个事务中的所有操作,是一个逻辑上不可分割的单位。

一致性,数据库处于一个一致性状态是指数据库中的数据满足各种完整性约束。

隔离性,隔离性的含义是指无论同时有多少事务在执行,DBMS会保证事务之间互不干扰,就像只有一个事务在运行一样。

持久性,事务一旦结束,无论出现什么情况,即使突然掉电,或者操作系统崩溃,DBMS也确保完成指定的任务。

DBMS的恢复子系统采用日志和备份技术保证事务的持久性。

定义事务的SQL语句有三条:
启动事务:BEGIN TRANSACTION
提交事务:COMMIT TRANSACTION
回滚语句:ROLLBACK TRANSACTION
故障种类:事务故障,系统故障,介质故障
恢复技术:日志文件,数据库备份
并发控制常用的方法:封锁法、时间印法和乐观控制法
并发带来的问题:丢失修改,读脏数据,不可重复读
S锁又被称为共享锁(读锁)X锁又被叫做排它锁(写锁)。

一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。

事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。

一级封锁协议可防止丢失修改,并保证事务T是可恢复的,但它不能保证可重复读和不读“脏”数据。

二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。

二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据,由于读完数据后即可释放S锁,所以它不能保证可重复读。

三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。

三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。

两段封锁协议的内容:1、在事务T的R(A)操作之前,先对A加S锁,如果加锁成功,则执行操作R(A),否则,将R(A)加入A的等待队列。

2、在事务T的W(A)操作之前,先对A加X 锁,如果加锁成功,则执行操作W(A),否则,将W(A)加入A的等待队列。

3、在收到事务的Abort或Commit请求后,释放T在每个数据上所加的锁,如果在数据A的等待队列中不空,即有其它的事务等待对A进行操作,则从队列中取出第一个操作,完成加锁,然后执行该操作。

4、执行Abort和Commit请求后,不再接收该事务的读写操作。

事务T1已经获得了对数据对象A的加锁请求,又申请对数据对象B加锁,但没有获得批准,
处于B的等待队列中。

事务T2已经获得了对数据对象B的加锁请求,又申请对数据对象A 加锁,但没有获得批准,处于A的等待队列中。

两个事务都处于无限的等待中,不能继续执行下去,,称为死锁问题。

当发生死锁时,DBMS会根据一定的策略选择一个或多个事务,强行中断其执行,回滚它或它们的所有操作,以便打破死锁状态,让其它事务继续执行下去。

第六章:客户机/服务器
数据库管理系统作为服务器,应用系统作为客户端
基本的客户机/服务器系统由三部分组成:客户平台、服务器平台、连接支持。

服务器类型:文件服务器、数据库服务器、应用服务器,在Internet和Intranet环境下还有Web服务器、电子邮件服务器等。

第七章:在应用中使用SQL
为了不修改宿主语言的编译器,DBMS提供一个预编译器,预编译器识别嵌入式SQL语句,将它们换成SQL函数库中的函数调用,将最初的宿主语言和嵌入式SQL的混合体转换成纯宿主语言的代码,然后由编译器进行通常的编译和连接操作,最终生成可执行代码,完成过程控制和数据库操作。

第八章:实体联系模型
数据库设计一般要经过以下几个步骤:
需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,数据库物理设计阶段,数据库实施阶段属性可以划分为单值属性和多值属性
实体联系模型,叫做E-R图
一个联系型所关联的实体型的个数叫做联系型的度。

只关联到一个实体型的联系型叫做一元联系型(例如员工之间的领导联系),有二个实体型参与的联系型叫做二元联系型
为了更精确的描述实体型的一个实体可以在一个联系中出现的次数,引入基数约束的概念,基数约束用一个数对min..max表示,0≤min≤max。

min=1的约束叫做强制参与约束,即被施加基数约束的实体型中的每个实体都要参与联系,min=0的约束叫做非强制参与约束,被施加基数约束的实体型中的实体可以出现在联系中,也可以不出现在联系中。

为什么要将多值属性转换为一个联系型?
将多值属性转换为一个联系型是因为有一些数据模型,如后面所说的关系模型,不支持多值属性。

用E-R方法构建一个项目的模型时,经常会遇到某些实体型是其它实体型的子类型。

例如,研究生和本科生是学生的子类型,子类型联系又叫做IsA联系,分类属性,不相交约束,完备性约束(完备性约束所约定的是,父实体型中的一个实体是否必须是某一个子类型实体型中的实体,如果是,则叫做完全特化,否则,叫做部分特化。

完备性约束可以用文字加以说明。

) part-of联系即部分联系,它表明某个实体型是另外一个实体型的一部分。

有两种类型的part-of联系。

一种类型是即使整体被破坏,整体的部分仍然可以独立存在,这种类型的part-of 联系是非独占的。

例如,汽车和轮子。

如果一个实体型的存在依赖于其它实体型的存在,则这个实体型叫做弱实体型,否则叫做强实体型(双矩形表示弱实体型)。

相关文档
最新文档