数据库系统基础学习知识原理教学方案计划教育教程练习情况总结复习资料重要资料.doc
-数据库系统原理教程第1章 绪论1.1、引言1、数据:数据是描述事物的符号记录。数据与其语义是不可分的。数据的形式本身并不能完全表达其内容,需要经过语义解释。2、数据库(database,简称DB):长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。3、数据库管理系统(database management system,简称DBMS):是位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。4、数据库系统(database system,简称DBS):指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。5、数据库管理员(database administrator,简称DBA):完成数据库的建立、使用和维护等工作的专业人员。6、数据管理:指如何对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。7、人工管理数据的特点:(1)数据不保存。(2)数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。(3)数据不共享。(4)数据不具有独立性,数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。8、文件系统管理数据的特点:(1)数据可以长期保存。(2)由专门的软件即文件系统进行数据管理,程序和数据之间由软件提供的存取方法进行转换,应用程序与数据之间有了一定的独立性。(3)数据共享性差。(4)数据独立性低。不具有弹性的无结构的数据集。文件记录之间没有联系。9、数据库系统管理数据的特点:(1)数据结构化。(2)数据的共享性好,冗余度低。(3)数据独立性高。(4)数据由DBMS统一管理和控制。10、数据的不一致性:指同一数据不同拷贝的值不一样。11、数据的逻辑独立性:数据库系统的一个映像功能是数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映像功能。这一映像功能保证了当数据的总体逻辑结构改变时,通过对映像的相应改变可以保持数据的局部逻辑结构不变,由于应用程序是依赖数据的局部逻辑结构编写的,所以应用程序不必修改。12、数据的物理独立性:数据库系统的另一个映像功能是数据的存储结构与逻辑结构之间的映像或转换功能。这一映像功能保证了当数据的存储结构改变时,通过对映像的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。13、除了管理功能外,DBMS还提供以下功能:(1)数据的安全性。(2)数据的完整性。(3)并发控制。(4)数据库恢复。14、数据库技术的研究领域:(1)数据库管理系统软件的研制。(2)数据库设计。(3)数据库理论。1.2、数据模型1、数据模型:是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。通常由数据结构、数据操作和完整性约束三个要素组成。2、数据结构:所研究的对象类型的集合。这些对象是数据库的组成成分,包括与数据类型、内容、性质有关的对象和与数据之间联系有关的对象。3、数据操作:指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。4、数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保障数据的正确、有效和相容。5、信息世界涉及的概念:实体、属性、码、域、实体型、实体集、联系。6、两个实体型之间的联系分为:1:1联系、1:n联系、m:n联系。7、ER图:提供了表示实体型、属性和联系的方法。8、常用数据模型:层次模型、网状模型、关系模型。层次模型和网状模型统称为非关系模型。9、基本层次联系:指两个记录以及它们之间的一对多(包括一对一)的联系。10、层次模型:用树形结构表示各类实体以及实体间的联系。优点:模型简单、实体间联系固定、提供良好的完整性支持。缺点:表示多对多联系时很笨拙、对插入删除操作限制较多、查询子节点必须通过父节点、层次命令趋于程序化。11、邻接法:按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。12、链接法:用指引元反映数据之间的层次联系,每个记录设两类指引元,分别指向最左边的子节点和最近的兄弟节点,这种链接方法称为子女兄弟链接法;按树的前序穿越顺序链接各记录值,这种链接方法称为层次序列链接法。13、网状数据模型:是一种比层次模型更具普遍性的结构,去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,允许两个结点之间有多种关系,允许插入双亲不明确的子女结点,允许只删除双亲结点值,更新只需更新指定记录。优点:能更为直接的描述现实世界、具有良好的性能和存取效率。缺点:其DDL语言极其复杂、数据独立性较差。14、一个关系模型涉及以下概念:关系、元组、属性、主码、域、分量、关系模式、关系名。15、关系数据模型:实体及实体间的联系都用关系表示,它的操纵主要包括查询、插入、删除和更新数据。关系的完整性约束条件包括:实体完整性、参照完整性和用户定义完整性。关系模型优点:建立在严格的数学基础上、概念单一、存取路径对用户透明,具有较好的数据独立性,安全保密性。缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型。16、网状数据模型的典型代表是DBTG系统。1.3、数据库系统结构1、模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,是数据库数据在逻辑级上的视图。一个数据库只有一个模式。2、外模式:也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。一个应用程序只能使用一个外模式。同一外模式可以被多个应用系统使用。3、内模式:也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有内模式。4、数据库系统的三级模式结构:是指数据库系统是由外模式、模式和内模式三级构成。5、二级映像功能:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。6、三级模式和两级映像的作用:(1)对于每个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式和模式之间的对应关系。当模式改变时,只需对各个外模式/模式的映像作出相应的改变,可以保持外模式不变,从而应用程序不必修改,保证了数据的逻辑独立性。(2)数据库中只有一个模式和内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,只需对模式/内模式映像作出相应的改变,可以使模式保持不变,从而保证了数据的物理独立性。7、数据库系统体系结构包括:(1)单用户数据库系统:是一种早期的最简单的数据库系统。在单用户系统中,整个数据库系统,包括应用程序、DBMS、数据,都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。(2)主从式结构的数据库系统:是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。(3)分布式结构的数据库系统:指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。数据存放、管理、维护困难。(4)客户/服务器结构的数据库系统:将DBMS和应用功能分开,网络中某些结点上的计算机专门用于执行DBMS功能,称为数据库服务器,其他结点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机。分为集中和分布两种。1.4、数据库管理系统1、DBMS的功能主要包括:(1)数据定义,数据定义包括定义各种模式、映射、约束条件。(2)数据操纵,数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。(3)数据库运行管理,包括对数据库进行并发控制、安全性检查、完整性约束条件检查、数据库内部维护等等。(4)数据组织、存储和管理,DBMS负责分门别类地组织、存储和管理各种数据,确定文件结构。(5)数据库的建立和维护,建立数据库包括数据库初始数据的输入和数据转换等,数据库维护包括数据库的转储、恢复、重构、监视等。(6)数据通信接口,DBMS提供与其他软件系统进行通信的功能。2、DBMS通常由4部分组成:(1)数据定义语言及其翻译处理程序,DDL供用户定义数据库的模式、存储模式、外模式、各级模式之间的映射、有关的约束条件等。(2)数据操纵语言及其编译程序,DML实现对数据库的检索、插入、修改、删除等基本操作。(3)数据库运行控制程序,DBMS提供一些系统运行控制程序负责数据库运行过程中的控制与管理。(4)实用程序,DBMS提供一些实用程序,包括数据初始装入程序、数据转储程序等。3、实现DBMS的方法:(1)N方案:DBMS模块被用户进程按子程序调用,DBMS与应用程序融合在一起,N个用户的系统中只有N个进程。(2)2N方案:每个用户进程均有一个影子进程为之服务,系统中还有若干后台进程。由于系统中进程总数接近于用户数的2倍,所以称为2N方案。(3)M+N方案:是2N方案的一种改进,在N个用户进程的系统中,有M个DBMS进程为之服务(My,其中x是码的真子集,y是非主属性。2NF存在的问题包括:插入异常、删除异常、数据冗余度大、修改复杂。3、3NF:如果关系模式R中不存在候选码X、属性组Y以及非主属性Z使得X决定Y,Y决定Z和Y不决定X成立,则R满足3NF。3NF存在的问题包括:插入异常、删除异常、数据冗余度大、修改复杂。4、BCNF:在关系模式R中,如果每一个决定属性集都包含候选码,则R为BCNF。BCNF是修正的3NF。BCNF关系模式具有如下性质:(1)所有非主属性都完全函数依赖于每个候选码。(2)所有主属性都完全函数依赖于每个不包含它的候选码。(3)没有任何属性完全函数依赖于非码的任何一组属性。5、多值依赖:设R(U)是一个属性集U上的关系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依赖X-Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z无关。多值依赖具有下列性质:对称性、传递性、函数依赖是多值依赖的特殊情况、多值依赖的有效性与属性集的范围有关等等。6、4NF:关系模式R满足1NF,如果对于R的每个非平凡多值依赖X-Y,X都含有候选码,则R满足4NF。4NF就是限制关系模式的属性之间不允许有非平凡函数依赖的多值依赖。4.3、关系模式的规范化1、关系模式的规范化:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。2、关系模式规范化的步骤:(1)对1NF关系进行投影,消除原关系中非主属性对码的部分函数依赖,得到一组2NF关系。(2)对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,得到一组3NF关系。(3)对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖,得到一组BCNF关系。(4)对BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,得到一组4NF关系。(5)对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,得到一组5NF关系。3、无损连接性:关系模式R被分解为若干个关系模式R1、R2、R3等等,若由分解所得的关系模式自然连接的结果与R相等,则称关系模式R的这个分解是具有无损连接性的。只有具有无损连接性的分解才能够保证不丢失信息。4、保持函数依赖:对R,若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖F1所逻辑蕴涵,则称关系模式R的这个分解是保持函数依赖的。第5章 数据库保护5.1、安全性1、数据库的安全性:指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据库安全性控制的一般方法:(1)用户标识和鉴定,由系统提供一定的方式让用户标识自己的名字或身份。系统内部记录所有合法用户的标识,每次用户要求进入系统时,由系统将用户提供的身份标识与系统内部记录的合法用户标识进行核对,通过鉴定后提供机器使用权。(2)存取控制,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。对于通过鉴定获得上机权的用户,系统根据他的存取权限定义他的各种操作请求进行控制,确保他只执行合法操作。(3)定义视图,在关系系统中,为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。(4)审计,使用一个专用文件或数据库,系统自动将用户对数据库的所有操作记录在上面,利用审计追踪的信息,就能重现导致数据库现有状况的一系列事件,以找出非法存取数据的人。(5)数据加密,对于高度敏感的数据,可以利用数据加密技术,以密码形式存储和传输数据。5.2、完整性1、完整性:指数据的正确性和相容性。完整性是防止合法用户使用数据库时向数据库中加入不合语义的数据。2、完整性约束条件:完整性约束条件是完整性控制机制的核心。完整性约束条件作用的对象可以有列级、元组级和关系级三种粒度。完整性约束条件涉及的这三类对象,其状态可以是静态的,也可以是动态的。完整性约束条件可以分为六类:(1)静态列级约束,就是对一个列的取值域的说明。(2)静态元组约束,就是规定组成一个元组的各个列之间的约束关系。(3)静态关系约束,常见静态关系约束有实体完整性、参照完整性、用户定义完整性、统计约束。(4)动态列级约束,是修改列定义或列值时应满足的约束条件。(5)动态元组约束,是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。(6)动态关系约束,就是加在关系变化前后状态上的限制条件。3、DBMS的完整性控制机制的三个方面的功能:(1)定义功能,即提供定义完整性约束条件的机制。(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。(3)如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。检查是否违背完整性约束的时机通常是一条语句执行完后立即检查,这类约束为立即执行的约束。在某些情况下,完整性检查需要延迟到整个事务执行结束后再进行,这类约束称为延迟执行的约束。4、实现DBMS参照完整性时需要考虑:(1)外码是否可以接受空值,外码是否能够取空值是依赖于应用环境的语义的。(2)删除被参照关系的元组时的考虑,有时需要删除被参照关系的某个元组,而参照关系又有若干元组的外码值与被删除的被参照关系的主码值相对应。这时可能采取的操作包括级联删除、受限删除、置空值删除。(3)修改被参照关系中主码的考虑,有时要修改被参照关系中某些元组的主码值,而参照关系中有些元组的外码值正好等于被参照关系要修改的主码值。这时可能采取的操作包括:级联修改、受限修改、置空值修改。5、触发器:一类靠事件驱动的特殊过程,一旦由某个用户定义,任何用户对该数据库的增删改操作均由服务器自动激活相应的触发子,在核心层进行集中的完整性控制。定义数据库触发器的语句是CREATE TRIGGER。5.3、并发控制1、回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,回滚到事务开始时的状态。2、事务:是数据库的逻辑工作单位,它是用户定义的一组操作序列。事务具有4个属性:原子性、一致性、隔离性和持续性。原子性是指一个事务是一个不可分割的工作单位,事务中的操作要么都做要么都不做。一致性是指事务必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性是指一个事务的执行不能被其他事务干扰。持续性是指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。2、并发操作带来的数据不一致性:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读、读脏数据。(1)丢失修改,指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。(2)不可重复读,指事务1读取数据后,事务2执行更新(修改、删除、插入)操作,使事务1无法再现前一次读取结果,分别导致事务1发现数据(改变、消失、新增)。(3)读“脏”数据,是指事务1修改某一数据,并将其写回磁盘,事务2读取同一数据后,事务1由于某种原因被撤销,这时事务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的不一致,不是正确的数据,又称为脏数据。产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。3、可串行化:几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种并行调度策略为可串行化的调度。可串行是并行事务正确性的唯一准则。4、封锁:事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。基本的封锁类型有排它锁(X锁)和共享锁(S锁)。排它锁又称为写锁。若事务T对数据对象加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。共享锁又称为读锁。若事务T对数据对象A加上S锁,则其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。5、封锁的粒度:封锁对象的大小。封锁粒度与系统的并发度和并发控制的开销密切相关。封锁的粒度越大,系统中能够被封锁的对象就越少,并发度也就越小,但同时系统开销也越小;相反,封锁的粒度越小,并发度越高,但系统开销也就越大。6、封锁协议:在运用X锁和S锁这两种基本封锁,对一定粒度的数据对象加锁时,还需要约定一些规则,例如何时申请X锁或S锁、持锁时间、何时释放等,我们称这些规则为封锁协议。7、三级封锁协议:(1)一级封锁协议,事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束和非正常结束。一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。(2)二级封锁协议,在一级封锁协议的基础上,事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除了防止修改丢失,还可以进一步防止读“脏”数据。(3)三级封锁协议,在一级封锁协议的基础上,加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议防止丢失修改、读“脏”数据、不可重复读。8、两段锁协议:它是为了保证并行调度可串行性而提供的封锁协议。两段锁协议规定,在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,而且在释放一个封锁之后,事务不再获得任何其他封锁。所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也称为收缩阶段。9、死锁的预防:防止死锁的发生,其实就是要破坏死锁产生的条件,预防死锁通常有两种办法。(1)一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁发虽然能有效地防止死锁的发生,但也存在问题。第一,一次就将以后要用到的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。第二,数据库中数据是不断变化的,原来不要求封锁的数据,在执行过程中可能会变成封锁对象,所以很难事先确定每个事务所要封锁的数据对象,只能采取扩大封锁范围,将事务在执行过程中可能要封锁的数据对象全部加锁,这就进一步降低了并发度。(2)顺序封锁法顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法同样可以有效地防止死锁,但也同样存在问题。第一,数据库系统中可封锁的数
收藏
编号:2607336
类型:共享资源
大小:145.02KB
格式:DOC
上传时间:2020-04-23
8
金币
- 关 键 词:
-
数据库
系统
基础
学习
知识
原理
教学
方案
计划
规划
教育
教程
练习
情况
总结
复习资料
重要
首要
资料
- 资源描述:
-
-
《数据库系统原理教程》
第1章 绪论
1.1、引言
1、数据:数据是描述事物的符号记录。数据与其语义是不可分的。数据的形式本身并不能完全表达其内容,需要经过语义解释。
2、数据库(database,简称DB):长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。
3、数据库管理系统(database management system,简称DBMS):是位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
4、数据库系统(database system,简称DBS):指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。
5、数据库管理员(database administrator,简称DBA):完成数据库的建立、使用和维护等工作的专业人员。
6、数据管理:指如何对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。
7、人工管理数据的特点:(1)数据不保存。(2)数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。(3)数据不共享。(4)数据不具有独立性,数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。
8、文件系统管理数据的特点:(1)数据可以长期保存。(2)由专门的软件即文件系统进行数据管理,程序和数据之间由软件提供的存取方法进行转换,应用程序与数据之间有了一定的独立性。(3)数据共享性差。(4)数据独立性低。不具有弹性的无结构的数据集。文件记录之间没有联系。
9、数据库系统管理数据的特点:(1)数据结构化。(2)数据的共享性好,冗余度低。(3)数据独立性高。(4)数据由DBMS统一管理和控制。
10、数据的不一致性:指同一数据不同拷贝的值不一样。
11、数据的逻辑独立性:数据库系统的一个映像功能是数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映像功能。这一映像功能保证了当数据的总体逻辑结构改变时,通过对映像的相应改变可以保持数据的局部逻辑结构不变,由于应用程序是依赖数据的局部逻辑结构编写的,所以应用程序不必修改。
12、数据的物理独立性:数据库系统的另一个映像功能是数据的存储结构与逻辑结构之间的映像或转换功能。这一映像功能保证了当数据的存储结构改变时,通过对映像的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。
13、除了管理功能外,DBMS还提供以下功能:(1)数据的安全性。(2)数据的完整性。(3)并发控制。(4)数据库恢复。
14、数据库技术的研究领域:(1)数据库管理系统软件的研制。(2)数据库设计。(3)数据库理论。
1.2、数据模型
1、数据模型:是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。通常由数据结构、数据操作和完整性约束三个要素组成。
2、数据结构:所研究的对象类型的集合。这些对象是数据库的组成成分,包括与数据类型、内容、性质有关的对象和与数据之间联系有关的对象。
3、数据操作:指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。
4、数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保障数据的正确、有效和相容。
5、信息世界涉及的概念:实体、属性、码、域、实体型、实体集、联系。
6、两个实体型之间的联系分为:1:1联系、1:n联系、m:n联系。
7、ER图:提供了表示实体型、属性和联系的方法。
8、常用数据模型:层次模型、网状模型、关系模型。层次模型和网状模型统称为非关系模型。
9、基本层次联系:指两个记录以及它们之间的一对多(包括一对一)的联系。
10、层次模型:用树形结构表示各类实体以及实体间的联系。优点:模型简单、实体间联系固定、提供良好的完整性支持。缺点:表示多对多联系时很笨拙、对插入删除操作限制较多、查询子节点必须通过父节点、层次命令趋于程序化。
11、邻接法:按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。
12、链接法:用指引元反映数据之间的层次联系,每个记录设两类指引元,分别指向最左边的子节点和最近的兄弟节点,这种链接方法称为子女——兄弟链接法;按树的前序穿越顺序链接各记录值,这种链接方法称为层次序列链接法。
13、网状数据模型:是一种比层次模型更具普遍性的结构,去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,允许两个结点之间有多种关系,允许插入双亲不明确的子女结点,允许只删除双亲结点值,更新只需更新指定记录。优点:能更为直接的描述现实世界、具有良好的性能和存取效率。缺点:其DDL语言极其复杂、数据独立性较差。
14、一个关系模型涉及以下概念:关系、元组、属性、主码、域、分量、关系模式、关系名。
15、关系数据模型:实体及实体间的联系都用关系表示,它的操纵主要包括查询、插入、删除和更新数据。关系的完整性约束条件包括:实体完整性、参照完整性和用户定义完整性。关系模型优点:建立在严格的数学基础上、概念单一、存取路径对用户透明,具有较好的数据独立性,安全保密性。缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型。
16、网状数据模型的典型代表是DBTG系统。
1.3、数据库系统结构
1、模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,是数据库数据在逻辑级上的视图。一个数据库只有一个模式。
2、外模式:也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。一个应用程序只能使用一个外模式。同一外模式可以被多个应用系统使用。
3、内模式:也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有内模式。
4、数据库系统的三级模式结构:是指数据库系统是由外模式、模式和内模式三级构成。
5、二级映像功能:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
6、三级模式和两级映像的作用:(1)对于每个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式和模式之间的对应关系。当模式改变时,只需对各个外模式/模式的映像作出相应的改变,可以保持外模式不变,从而应用程序不必修改,保证了数据的逻辑独立性。(2)数据库中只有一个模式和内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,只需对模式/内模式映像作出相应的改变,可以使模式保持不变,从而保证了数据的物理独立性。
7、数据库系统体系结构包括:
(1)单用户数据库系统:是一种早期的最简单的数据库系统。在单用户系统中,整个数据库系统,包括应用程序、DBMS、数据,都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。
(2)主从式结构的数据库系统:是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。
(3)分布式结构的数据库系统:指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。数据存放、管理、维护困难。
(4)客户/服务器结构的数据库系统:将DBMS和应用功能分开,网络中某些结点上的计算机专门用于执行DBMS功能,称为数据库服务器,其他结点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机。分为集中和分布两种。
1.4、数据库管理系统
1、DBMS的功能主要包括:
(1)数据定义,数据定义包括定义各种模式、映射、约束条件。
(2)数据操纵,数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。
(3)数据库运行管理,包括对数据库进行并发控制、安全性检查、完整性约束条件检查、数据库内部维护等等。
(4)数据组织、存储和管理,DBMS负责分门别类地组织、存储和管理各种数据,确定文件结构。
(5)数据库的建立和维护,建立数据库包括数据库初始数据的输入和数据转换等,数据库维护包括数据库的转储、恢复、重构、监视等。
(6)数据通信接口,DBMS提供与其他软件系统进行通信的功能。
2、DBMS通常由4部分组成:
(1)数据定义语言及其翻译处理程序,DDL供用户定义数据库的模式、存储模式、外模式、各级模式之间的映射、有关的约束条件等。
(2)数据操纵语言及其编译程序,DML实现对数据库的检索、插入、修改、删除等基本操作。
(3)数据库运行控制程序,DBMS提供一些系统运行控制程序负责数据库运行过程中的控制与管理。
(4)实用程序,DBMS提供一些实用程序,包括数据初始装入程序、数据转储程序等。
3、实现DBMS的方法:
(1)N方案:DBMS模块被用户进程按子程序调用,DBMS与应用程序融合在一起,N个用户的系统中只有N个进程。
(2)2N方案:每个用户进程均有一个影子进程为之服务,系统中还有若干后台进程。由于系统中进程总数接近于用户数的2倍,所以称为2N方案。
(3)M+N方案:是2N方案的一种改进,在N个用户进程的系统中,有M个DBMS进程为之服务(My,其中x是码的真子集,y是非主属性。2NF存在的问题包括:插入异常、删除异常、数据冗余度大、修改复杂。
3、3NF:如果关系模式R中不存在候选码X、属性组Y以及非主属性Z使得X决定Y,Y决定Z和Y不决定X成立,则R满足3NF。3NF存在的问题包括:插入异常、删除异常、数据冗余度大、修改复杂。
4、BCNF:在关系模式R中,如果每一个决定属性集都包含候选码,则R为BCNF。BCNF是修正的3NF。BCNF关系模式具有如下性质:
(1)所有非主属性都完全函数依赖于每个候选码。
(2)所有主属性都完全函数依赖于每个不包含它的候选码。
(3)没有任何属性完全函数依赖于非码的任何一组属性。
5、多值依赖:设R(U)是一个属性集U上的关系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z无关。多值依赖具有下列性质:对称性、传递性、函数依赖是多值依赖的特殊情况、多值依赖的有效性与属性集的范围有关等等。
6、4NF:关系模式R满足1NF,如果对于R的每个非平凡多值依赖X->->Y,X都含有候选码,则R满足4NF。4NF就是限制关系模式的属性之间不允许有非平凡函数依赖的多值依赖。
4.3、关系模式的规范化
1、关系模式的规范化:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。
2、关系模式规范化的步骤:
(1)对1NF关系进行投影,消除原关系中非主属性对码的部分函数依赖,得到一组2NF关系。
(2)对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,得到一组3NF关系。
(3)对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖,得到一组BCNF关系。
(4)对BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,得到一组4NF关系。
(5)对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,得到一组5NF关系。
3、无损连接性:关系模式R被分解为若干个关系模式R1、R2、R3等等,若由分解所得的关系模式自然连接的结果与R相等,则称关系模式R的这个分解是具有无损连接性的。只有具有无损连接性的分解才能够保证不丢失信息。
4、保持函数依赖:对R,若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖F1所逻辑蕴涵,则称关系模式R的这个分解是保持函数依赖的。
第5章 数据库保护
5.1、安全性
1、数据库的安全性:指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据库安全性控制的一般方法:
(1)用户标识和鉴定,由系统提供一定的方式让用户标识自己的名字或身份。系统内部记录所有合法用户的标识,每次用户要求进入系统时,由系统将用户提供的身份标识与系统内部记录的合法用户标识进行核对,通过鉴定后提供机器使用权。
(2)存取控制,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。对于通过鉴定获得上机权的用户,系统根据他的存取权限定义他的各种操作请求进行控制,确保他只执行合法操作。
(3)定义视图,在关系系统中,为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计,使用一个专用文件或数据库,系统自动将用户对数据库的所有操作记录在上面,利用审计追踪的信息,就能重现导致数据库现有状况的一系列事件,以找出非法存取数据的人。
(5)数据加密,对于高度敏感的数据,可以利用数据加密技术,以密码形式存储和传输数据。
5.2、完整性
1、完整性:指数据的正确性和相容性。完整性是防止合法用户使用数据库时向数据库中加入不合语义的数据。
2、完整性约束条件:完整性约束条件是完整性控制机制的核心。完整性约束条件作用的对象可以有列级、元组级和关系级三种粒度。完整性约束条件涉及的这三类对象,其状态可以是静态的,也可以是动态的。完整性约束条件可以分为六类:
(1)静态列级约束,就是对一个列的取值域的说明。
(2)静态元组约束,就是规定组成一个元组的各个列之间的约束关系。
(3)静态关系约束,常见静态关系约束有实体完整性、参照完整性、用户定义完整性、统计约束。
(4)动态列级约束,是修改列定义或列值时应满足的约束条件。
(5)动态元组约束,是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。
(6)动态关系约束,就是加在关系变化前后状态上的限制条件。
3、DBMS的完整性控制机制的三个方面的功能:
(1)定义功能,即提供定义完整性约束条件的机制。
(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。
(3)如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。检查是否违背完整性约束的时机通常是一条语句执行完后立即检查,这类约束为立即执行的约束。在某些情况下,完整性检查需要延迟到整个事务执行结束后再进行,这类约束称为延迟执行的约束。
4、实现DBMS参照完整性时需要考虑:
(1)外码是否可以接受空值,外码是否能够取空值是依赖于应用环境的语义的。
(2)删除被参照关系的元组时的考虑,有时需要删除被参照关系的某个元组,而参照关系又有若干元组的外码值与被删除的被参照关系的主码值相对应。这时可能采取的操作包括级联删除、受限删除、置空值删除。
(3)修改被参照关系中主码的考虑,有时要修改被参照关系中某些元组的主码值,而参照关系中有些元组的外码值正好等于被参照关系要修改的主码值。这时可能采取的操作包括:级联修改、受限修改、置空值修改。
5、触发器:一类靠事件驱动的特殊过程,一旦由某个用户定义,任何用户对该数据库的增删改操作均由服务器自动激活相应的触发子,在核心层进行集中的完整性控制。定义数据库触发器的语句是CREATE TRIGGER。
5.3、并发控制
1、回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,回滚到事务开始时的状态。
2、事务:是数据库的逻辑工作单位,它是用户定义的一组操作序列。事务具有4个属性:原子性、一致性、隔离性和持续性。原子性是指一个事务是一个不可分割的工作单位,事务中的操作要么都做要么都不做。一致性是指事务必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性是指一个事务的执行不能被其他事务干扰。持续性是指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
2、并发操作带来的数据不一致性:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读、读脏数据。
(1)丢失修改,指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。
(2)不可重复读,指事务1读取数据后,事务2执行更新(修改、删除、插入)操作,使事务1无法再现前一次读取结果,分别导致事务1发现数据(改变、消失、新增)。
(3)读“脏”数据,是指事务1修改某一数据,并将其写回磁盘,事务2读取同一数据后,事务1由于某种原因被撤销,这时事务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的不一致,不是正确的数据,又称为脏数据。
产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。
3、可串行化:几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种并行调度策略为可串行化的调度。可串行是并行事务正确性的唯一准则。
4、封锁:事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。基本的封锁类型有排它锁(X锁)和共享锁(S锁)。排它锁又称为写锁。若事务T对数据对象加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。共享锁又称为读锁。若事务T对数据对象A加上S锁,则其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
5、封锁的粒度:封锁对象的大小。封锁粒度与系统的并发度和并发控制的开销密切相关。封锁的粒度越大,系统中能够被封锁的对象就越少,并发度也就越小,但同时系统开销也越小;相反,封锁的粒度越小,并发度越高,但系统开销也就越大。
6、封锁协议:在运用X锁和S锁这两种基本封锁,对一定粒度的数据对象加锁时,还需要约定一些规则,例如何时申请X锁或S锁、持锁时间、何时释放等,我们称这些规则为封锁协议。
7、三级封锁协议:
(1)一级封锁协议,事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束和非正常结束。一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。
(2)二级封锁协议,在一级封锁协议的基础上,事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除了防止修改丢失,还可以进一步防止读“脏”数据。
(3)三级封锁协议,在一级封锁协议的基础上,加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议防止丢失修改、读“脏”数据、不可重复读。
8、两段锁协议:它是为了保证并行调度可串行性而提供的封锁协议。两段锁协议规定,在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,而且在释放一个封锁之后,事务不再获得任何其他封锁。所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也称为收缩阶段。
9、死锁的预防:防止死锁的发生,其实就是要破坏死锁产生的条件,预防死锁通常有两种办法。
(1)一次封锁法
一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁发虽然能有效地防止死锁的发生,但也存在问题。第一,一次就将以后要用到的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。第二,数据库中数据是不断变化的,原来不要求封锁的数据,在执行过程中可能会变成封锁对象,所以很难事先确定每个事务所要封锁的数据对象,只能采取扩大封锁范围,将事务在执行过程中可能要封锁的数据对象全部加锁,这就进一步降低了并发度。
(2)顺序封锁法
顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法同样可以有效地防止死锁,但也同样存在问题。第一,数据库系统中可封锁的数
展开阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。