1第一章绪论1、数据库管理系统主要功能包括:1)数据定义功能2)数据组织、存储和管理3)数据操纵功能4)数据库的事务管理和运行管理5)数据库的建立和维护功能6)其他功能2、数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。3、数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。4、数据库管理系统必须提供以下几方面的数据控制功能:1)数据的安全性保护2)数据的完整性检查3)并发控制4)数据库恢复5、数据模型应满足三方面要求:一是能比较真实第模拟现实世界、二是容易为人所理解、三是便于在计算机上实现。6、根据模型应用的不同目的可以分为:第一类是概念模型,第二类是逻辑模型和物理模型。第二类是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。7、信息世界主要涉及以下一些概念:1)实体2)属性3)码4)实体型5)实体集6)联系8、实体之间的联系有一对一、一对多和多对多等多种类型。9、概念模型最常用的方法是实体-联系方法,该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。10、数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。2其中数据结构是对系统静态特性的描述、数据操作主要是查询和更新两大类操作、数据的完整性约束条件是任何关系必须满足实体完整性和参照完整性两个条件。11、数据库主要的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。12、1970年,美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,他于1981年获得ACM图灵奖。13、关系模型的数据结构:1)关系2)元组(一行即为一个元组)3)属性(一列即为一个属性)4)码5)域6)分量14、关系模型的缺点:由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。15、数据库系统的三级模式结构:模式(一个数据库只有一个模式)、外模式(一个数据库可以有多个外模式)、内模式(一个数据库只有一个内模式)。16、数据库在这三级模式之间提供了两层映象:外模式/模式映象、模式/内模式映象。第二章关系数据库1、若一个关系有多个候选码,则选定其中一个主码;候选码的诸属性称为主属性;不包含在任何候选码中的属性称为非主属性或非码属性;在最简单的情况下,候选码只包含一个属性;在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。2、关系的查询表达能力很强,是关系操作中最最主要的部分。查询操作又可以分为选择、投影、连接、除、并、差、交、笛卡尔积等。其中选择、投影、并、差、笛卡尔积是5种基本操作。3、关系操作的特点是集合操作方式,即操作的对象和结果都是集合,这种操作方式也称为一次一集合。4、关系模型中有三类完整性约束:实体完整性、参照完整性、用户定义的完整3性。5、外码要么是空值,要么是被参照的主码值。第三章关系数据库标准语言SQL1、SQL的特点:1)综合统一2)高度非过程化3)面向集合的操作方式4)以同一种语法结构提供多种使用方式5)语言简洁,易学易用第四章数据库安全性1、数据库的数据保护主要包括数据的安全性和完整性,数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。2、计算机以及信息安全技术方面有一系列的安全标准,最有影响的当推TCSEC和CC这两个标准。3、从4个方面来描述安全性级别划分的指标:安全策略、责任、保证和文档。4、TCSEC/TDI将系统划分为4组7个等级,依次是D、C(C1、C2)、B(B1、B2、B3)、A(A1)5、用户身份鉴别是数据库管理系统提供的最外层安全保护措施。6、C2级的数据库管理系统支持自主存取控制,B1级的数据库管理系统支持强制存取控制。7、SQL也对自主存取控制提供支持,这主要通过SQL的GRANT语句和REVOKE语句来实现。8、在数据库系统汇总,定义存取权限称为授权。第五章数据库完整性1、为维护数据库的完整性,数据库管理系统必须能够实现如下功能:1)提供定义完整性约束条件的机制2)提供完整性检查的方法43)进行违约处理2、关系模型的实体完整性在CREATETABLE中用PRIMARYKEY定义,对单属性构成的码有两种说明方法:一种是定义为列级约束条件,另一种是定义为表级约束条件。3、实体完整性规则自动检查包括:1)检查主码值是否唯一,如果不唯一则拒绝插入或修改2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改4、检查记录中主码值是否唯一的一种方法是进行全表扫描。5、为了避免对基本表进行全表扫描,关系数据库管理系统一般都在主码上自动建立一个索引。6、对被参照表盒参照表进行增、删、改操作时有可能破坏参照完整性。7、当不一致发生时,系统可以采用以下策略加以处理:1)拒绝执行2)级联操作3)设置为空值8、根据应用要求定义属性上的约束条件,即属性值限制,包括:1)列值非空2)列值唯一3)检查列值是否满足一个条件表达式(CHECK短语)第六章关系数据理论1、人们已经提出了多种类型的数据以来,其中最重要的是函数依赖和多值依赖。2、一个好的模式应当不会发生插入异常、删除异常、更新异常、数据冗余。3、4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。第七章数据库设计1、确定用户的最终需求是一件很困难的事,一方面因为用户缺少计算机知识,另一方面设计人员缺少用户的专业知识。因此设计人员必须不断深入地与用户交流,才能逐步确定用户的实际需求。2、调查用户需求的具体步骤是:1)调查组织机构情况52)调查各部门的业务活动情况3)在熟悉业务活动的基础上,协助用户明确对新系统的各种要求4)确定新系统的边界3、常用的调查方法:1)跟班作业2)开调查会3)请专人介绍4)询问5)设计调查表请用户填写6)查阅记录4、结构化分析(SA)方法是一种简单实用的方法,它从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。5、各子系统的E-R图之间的冲突主要有三类:1)属性冲突2)命名冲突3)结构冲突6、逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。7、对于实体型间的联系有以下不同的情况:1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并3)一个m:n联系转换为一个关系模式4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式5)具有相同码的关系模式可合并8、数据库管理系统一般提供多种存取方式,常用的存取方法为索引方法和聚簇方法。B+树索和hash索引是数据库中经典的存取方法,使用最普遍。9、确定数据的存放位置和存储结构要综合考虑:存取时间、存储空间利用率和维护代价三方面的因素。第八章数据库编程61、SQL通信区在应用程序中用EXECSQLINCLUDESQLCA加以定义。SQL通信区中有一个变量SQLCODE,用来存放每次执行SQL语句后返回的代码。2、过程化SQL有三种循环结构:LOOP、WHILE-LOOP和FOR-LOOP。第九章关系查询处理和查询优化1、关系数据库管理系统查询处理可以分为4个阶段:查询分析、查询检查、查询优化、查询执行。2、关系数据库管理系统一般都用查询树,也称为语法分析树来表示扩展关系代数表达式。3、按照优化的层次一般可将查询优化分为代数优化和物理优化。4、典型的启发式规则有:1)选择运算应尽可能先做2)把投影运算和选择运算同时进行3)把投影同其前或后的双目运算结合起来4)把某些选择同在它前面要执行的笛卡尔积结合起来称为一个连接运算5)找出公共字表达式5、如果比例较小(10%)可以使用索引扫描方法,否则还是使用全表顺序扫描。6、应该选块数小的表作为外表。第十章数据库恢复技术1、所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。一般来讲,一个程序中包含多个事务。2、数据库系统中可能发生各种各样的故障,大致分为:1)事物内部的故障2)系统故障3)介质故障4)计算机病毒3、总结各类故障对数据库的影响有两种可能性,一是数据库本身被破坏,二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。74、恢复机制涉及的两个关键问题是:如何建立冗余数据,以及如何利用这些冗余数据实施数据库恢复。5、备用的数据称为后备副本或后援副本,重装后备副本只能将数据库恢复到转储时的状态。6、转储可分为静态转储和动态转储。静态转储是在系统中无运行事务时进行的转储操作,动态转储是指转储期间允许对数据库进行存取或修改。数据转储又可以分别在两种状态下进行,因此数据转储方法又可以分为:动态海量转储、动态增量转储、静态海量转储、静态增量转储。7、日志文件是用来记录事务对数据库更新操作的文件。日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。8、在日志文件中增加一类新的记录——检查点记录,可以改善恢复效率。9、数据库镜像(mirror)功能用于数据库恢复第十一章并发控制1、实现多个事务真正的并行运行,这种并行执行方式称为同时并发方式。2、为了保证事务事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度。3、并发操作带来的数据不一致性包括:1)丢失修改2)不可重复读3)读“脏”数据4、并发控制的主要技术有封锁、时间戳、乐观控制法、多版本并发控制等。5、基本的封锁类型有两种:排他锁(又称为写锁)、共享锁(又称为读锁)。6、避免活锁的简单方法是采用先来先服务的策略。7、解决死锁问题主要有两类方法:一类方法是采取一定措施来预防死锁的发生,另一类方法是允许发生死锁,采用一定手段定期诊断系统中有无死锁,若有则解除之。8、预防死锁的方法:一次封锁法、顺序封锁法。9、数据库系统中诊断死锁的方法一般使用:1)超时法(缺点:一是有可能误判死锁,二是时限若设置太长,死锁发生后不能及时发现)2)事务等待图法810、通常设法解除死锁的方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有的锁,使其他事务得以继续运行下去。11、多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化调度。可串行性是并发事务正确调度的准则,按这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。12、数据库管理系统普遍采用两段锁(简称2PL)协议的方法实现并发调度的可串行性。所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也称为收缩阶段。9简答题一、数据库设计的基本步骤1)需求分析2)概念结构设计3)逻辑结构设计4)物理结构设计5)数据库的实施6)数据库的运行和维护二、数据库的恢复概述尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,但是计算机系统中硬件的故障,软件的错误,操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,重则破坏数据库。因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。三、数据库管理员的职责(DBA)1)决定数据库中的信息内容和结构2)决定数据库的存储结构和存取策略3)定义数据的安全性要求和完整性约束条件4)监控数据库的使用的运行5)数据库的改进和重组,重构四、视图的作用1)视图能够简洁化用户操作2)视图使用户能以多种角度3)视图对重构数据库提供了一定程度的逻辑独立性4)视图能够对机密数据提供安全保护5)适当利用视图可以更清晰地表达查询10五、登记日志文件为保证数据库是可恢复的,登记日志文件时必须遵守两条原则:1)登记的次序严格按并事务执行时间次序2)必须先写日志文件,后写数据库先写日志,后写数据库的原因:修改的日志记