2023年-软考数据库系统工程师复习资料.docx





《2023年-软考数据库系统工程师复习资料.docx》由会员分享,可在线阅读,更多相关《2023年-软考数据库系统工程师复习资料.docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软考数据库系统工程师复习资料一、数据模型1 .数据模型的三要素(1)数据结构 数据结构是所研究的对象类型(ObjectType)的集合。这些对象和对象类型是数据库的组成成 分。一般可分为两类:一类是与数据类型、内容和其它性质有关的对象;一类是与数据之间的联系有关的对象。 前者如网状模型中的数据项和记录,关系模型中的域、属性和关系等。后者如网状模型中的关系模型(set type)。 在数据库领域中,通常按照数据结构的类型来命名数据模型,进而对数据库管理系统进行分类。如层次结构、 网状结构和关系结构的数据模型分别称作为层次模型、网状模型和关系模型。相应地,数据库分别称作为层次 数据库、网状数据库和
2、关系数据库。(2)数据操作 数据操作是指对各种对象类型的实例(或值)所允许执行的操作的集合,包括操作及有关的操 作规则。在数据库中,主要的操作有检索和更新(包括插入、删除、修改)两大类。数据模型定义了这些操作 的定义、语法(即使用这些操作时所用的语言)。数据结构是对系统静态特性的描述,而数据操作是对系统动 态特性的描述。两者既有联系,又有区别。(3)数据的约束条件 数据的约束条件是完整性规则的集合。完整性规则是指在给定的数据模型中,数据及其 联系所具有的制约条件和依存条件,用以限制符合数据模型的数据库的状态以及状态的变化,确保数据的正确 性、有效性和一致性。2 .概念模型数据模型是数据库系统的
3、核心和基础。每个DBMS软件都是基于某种数据模型的。为了把现实世界中的具体 事物或事物之间的联系表示成DBMS所支持的数据模型,人们首先必须将现实世界的事物及其之间的联系进 行抽象,转换为信息世界的概念模型;然后将信息世界的概念模型转换为机器世界的数据模型。也就是说,首 先把现实世界中的客观对象抽象成一种信息结构。这种信息结构并不依赖于具体的计算机系统和DBMS。然后, 再把概念模型转换为某一计算机系统上某一 DBMS所支持的数据模型。因此,概念模型是从现实世界到机器 世界的一个中间层次。现实世界的事物反映到人的大脑之中,然后人们开始认识这些事物,经过选择、命名、 分类和组织等抽象工作之后形成
4、概念模型,并进入到信息世界。?用户(user)关心的是现实世界中的事物、事物的属性及其相互关系。例如,用户可能关心他的顾客及其属 性,如顾客地址、银行帐号等等。用户也关心自己的定货帐目,如谁订的货、订的什么和订多少等等。?系统分析员(analyst)同样也关心现实世界,但是系统分析员需要分析用户的信息需求。作为需求分析的结 果,分析员必须以文档的形式对需求进行结构化的描述;这个文档就是信息模型。?实体(Entity)实体是构成数据库的基本元素。实体是指一个存在的东西以区别这个东西所具有的属性和这 个东西与其它东西的联系。实体可以是人,也可以是物;可以是实际对象,也可以是概念;可以是事物本身,也
5、 可以是指事物之间的联系。?属性(Attribute) 一个实体可以由若干个属性来刻画。属性是相对实体而言的,是实体所具有的特性。?关键字(Key)能唯一地标识实体的属性的集合称为关键字(或码)。?域(Domain)属性的取值范围称作域。?实体型(Entity Type) 一类实体所具有的共同特征或属性的集合称为实体型。一般用实体名及其属性来抽象 地刻画一类实体的实体型。?实体集(Entity Set)同型实体的集合叫实体集。例如,学生就是一个实体集。实体集的名即是实体型。对于 学生和(学号,姓名,年龄,系,年级)均是实体型,而学生是对实体型(学号,姓名,年龄,系,年级)所 起的名称,两者是指
6、同一客观对象。但本科生和研究生可以为相同实体型,而实体集不同。?联系(Relationship)现实世界的事物之间是有联系的。一般存在两类联系:一是实体内部的组成实体的属性 之间的联系,二是实体之间的联系。在考虑实体内部的联系时,是把属性看作为实体。一般来说,两个实体之 间的联系可分为三种:(1) 一对一(1 : 1)联系若对于实体集A中的每一个实体,实体集B中至多有唯一的一个实体与之联系, 反之亦然,则称实体集A与实体集B具有一对一联系,记作1:1。(2) 一对多(1 :n)联系若对于实体集A中的每个实体,实体集B中有n个实体(n0)与之联系;反之, 对于实体集B中的每一个实体,实体集A中至
7、多只有一个实体与之联系,则称实体集A与实体集B有一对多 联系,记为1 :n。相应地有多对一 (n : 1)联系多对一联系,从本质上说,是一对多联系的逆转。其定义同 到一个不存在的部门。也就是说,被参照的关系DEPT中一定存在一个元组,该元组的关键字的值等于EMP 中某元组的外部关键字的值。实体完整性和参照完整性是针对任何关系数据库系统的所有数据库的一般性原 则。用户定义的完整性针对某一具体的数据库的约束条件。条件是由现实世界中的应用环境决定的。它涉及到 某一具体的应用中的数据所必须满足的语义要求。关型模型的DBMS应提供定义和检验这类完整性条件的机 制,以使用统一的方法来自动地处理它们而不要求
8、应用程序员来承担这一功能。5 .关系数据库语言概述关系数据库语言分三类:数据描述语言DDL,数据操纵语言DML和数据控制语言DCL。其中,DDL负责数据 库的描述,提供一种数据描述机制,用来描述数据库的特征或数据的逻辑结构。DML负责数据库的操作,提 供一种处理数据库操作的机制。DCL负责控制数据库的完整性和安全性,提供一种检验完整性和保证安全的 机制。DML是用户经常使用的语言,包括了 DBMS的主要功能。DML包括数据查询和数据的增、册h改等 功能。其中查询的表达方式是DML的主要部分。关系数据库的DML按照查询方式可以分为两大类:(1)用对关系的集合代数运算来表示查询的方式,称为关系代数
9、(RelationalAlgebra)。(2)用谓词演算来表达查询的方式,称为关系演算(Relational Calculus)。关系演算又可按谓词变元的基本对 象是元组变量(tuple variable)还是域变量(domain variable)分为元组关系演算和域关系演算两种。关系代数 和两种关系演算均是抽象的查询语言,这些抽象的查询语言和实际的DBMS软件产品中实现的具体的查询语 言并不完全一样。但它们是DBMS中查询语言的理论基础。关系代数、元组关系演算和域关系演算这三种语 言在表达能力上是彼此相互等价的,它们均可以作为评价实际DBMS软件产品中查询语言能力的标准。实际 DBMS软件
10、产品的查询语言,除了提供关系代数(或一种关系演算)之外,还提供了许多附加的功能,如库函 数、算术运算等功能。SQL是介于关系代数,和关系演算之间的一种语言。SQL不仅具有丰富的查询功能, 而且还具有数据库定义和数据库控制功能。SQL是集DDL、DML、DCL为一体的标准的关系数据库语言。SQL 充分体现了关系数据库语言的优点。6 .关系代数关系代数中的运算可以分为两类:(1)传统的集合运算,如并、交、差、笛卡尔乘积等。这类运算是从关系的“水平方向(即按行)”来进行的。(2)专门的关系运算,如选择、投影、连接、除。这类运算不仅涉及到行而且也涉及到列。7 .关系演算关系演算是以数理逻辑中的谓词演算
11、为基础的。用谓词演算作为关系数据库的语言并提出关系演算的是 E.F.Coddo Codd首先定义了关系演算语言ALPHA。但ALPHA并没有在计算机上实现。但关系数据库管理系 统INGRES所用的QUEL语言是参考ALPHA研制的,与ALPHA十分类似。六、关系数据库的规范化理论函数依赖定义1设R (U)是属性集U上的关系模式。X, Y是U的子集。若对于R (U)的任意一个可能的关系r, r 中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称底函数确定Y,或、函数依赖于 X、记作XY。函数依赖和别的数据依赖一样是语义范畴的概念。只能根据语义来确定一个函数依赖。例如姓名一年龄这个
12、函 数依赖只有在没有同名人的条件下成立。如果允许有相同名字,则年龄就不再函数依赖于姓名了。设计者也可 以对现实世界作强制的规定。例如规定不允许同名人出现,因而使姓名一年龄函数依赖成立。这样当插入某个 元组时这个元组上的属性值必须满足规定的函数依赖,若发现有同名人存在,则拒绝插入该元组。注意,函数 依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件 七、数据库的安全与保护L安全性数据库的安全性是指保护数据库以防止不合法的或非正常的使用所造成的数据泄露、更改或破坏。安全性问题 不是数据库系统所独有的,计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,
13、而且为许多用 户直接共享,是十分重要的信息资源。从而使安全性问题变得更为突出。系统安全保护措施是否有效是数据库 系统的主要性能指标之一。对于数据库的安全保密方式可以有系统处理的和物理的两个方面。所谓物理的是指, 对于强力逼迫透露口令、在通信线路上窃听、以至盗窃物理存储设备等行为。对此所采取的措施是将数据编为 密码,加强警卫以识别用户身份和保护存储设备等措施。在一般计算机系统中,安全措施是一级一级层层设置的。(1)用户标识和鉴定首先,系统提供一定的方式让用户标识自己的名字或身份。系统进行核实,通过鉴定后 才提供机器使用权。常用的方法有:用一个用户名或者用户标识号来标明用户身份。系统鉴别此用户是否
14、是合 法用户。若是,则可以进入下一步的核实;若不是,则不能使用计算机。用户名的登录只由系统管理员进行, 一般用户不能实施用户名登录。口令(Password),为了进一步核实用户,系统常常要求用户输入口令。(2)存取控制对于获得上机权的用户还要根据预先定义好的用户权限进行存取控制,保证用户只能存取他有 权存取的数据。所谓用户权限是指不同的用户对于不同的数据对象允许执行的操作权限。它由两部分组成,一 是数据对象,二是操作类型。数据对象有二类。一类是数据本身,如关系数据库中的表、字段,非关系数据库 中的记录、字段(亦称为数据项)。另一类是外模式、模式、内模式。在关系系统中DBA可以把建立、修改基 本
15、表的权力授予用户,用户获得此权力后可以建立基本表、索引、视图。这说明关系系统中存取控制的数据对 象不仅有数据而且有模式、外模式、内模式等数据字典中的内容。对于存取权限的定义称为授权(Authorization)。 这些定义经过编译后存储在数据字典中。每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据 用户权限进行合法权限检查(Authorization Check)。若用户的操作请求超出了定义的权限,系统拒绝执行此操 作。授权编译程序和合法权限检查机制一起组成了安全性子系统。衡量授权子系统精巧程度的另一个尽度是否 提供与数据值有关的授权。有的系统还允许存取谓词中引用系统变量,如一天
16、中的时刻,终端设备号。这样用 户只能在某台终端、某段时间内存取有关数据,这就是与时间和地点有关的存取权限。另外,在操作系统中对 文件、目标等的存取还有一些安全保护措施。其中加密是一种防止数据内容被别人引用或了解的切实可行的办 法。加密有程序加密和硬件加密卡两种形式。2 .完整性数据库的完整性是指数据的正确性和相容性。DBMS必须提供一种功能来保证数据库中数据的完整性。这种功 能亦称为完整性检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件。这种条件在数据库中 称为完整性约束条件。数据的约束条件是语义的体现,这些完整性约束条件将作为模式的一部分存放数据字典 中。数据的完整性和安全性是
17、两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信 息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。而后者是保 护数据库防止恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别从系统实现的方法来看, 往往是一种机制常常既可用于安全性保护亦可用于完整性保证。完整性约束条件可以分类如下:(1)值的约束 和结构的约束前者指对数据的值的限制,后者指对数据之间联系的限制。关于对数据值的约束这类约束条件 是指对数据取值类型、范围、精度等的规定。关于数据之间联系的约束 数据库中同一关系的不同属性之间可 以有一定的联系
18、,从而也应满足一定的约束条件。同时,由于数据库中数据是结构化的,不同的关系之间也可 以有联系,因而不同关系的属性之间也可满足一定的约束条件。(2)静态约束和动态约束所谓静态约束是指对数据库每一确定状态的数据所应满足的约束条件。以上所讲的 约束都属静态约束。动态约束是指数据库从一种状态转变为另一种状态时新、旧值之间所应满足的约束条件。(3)立即执行约束和延迟执行约束立即执行约束是指在执行用户事务时,对事务中某一更新语句执行完后马 上对此数据所应满足的约束条件进行完整性检查。延迟执行是指在整个事务执行结束后方对此约束条件进行完 整性检查,结果正确方能提交。完整性的实现应包括两个方面,一是系统要提供
19、定义完整性约束条件的功能, 二是提供检查完整性约束条件的方法。对于数据值的那类完整性约束条件通常在模式中定义。例如在模式中定 义属性名、类型、长度、码属性名并标明其值是唯一的、非空的等等。另外的那些约束条件就要用专门的方式 加以定义。3 .并发控制数据库是一个共享资源,可以由多个用户使用。这些用户程序可以一个一个地串行执行,也可以并行执行。在 单CPU计算机上,为了充分利用数据库资源,应该允许多个用户程序并行的存取数据。这样就会产生多个用 户程度并发地存取同一数据的情况。若对并发操作不加控制就会存取和存储不正确的数据,破坏数据库的完整 性(这里也称为一致性)。在多CPU计算机或多计算机网络环境
20、下,并发控制尤为重要。(1)事务的概念事务(Transaction)是并发控制的基本单位。所谓事务是一个操作序列。这些操作作为一个 序列形成一个整体要么都做,要么都不做,是一个不可分割的工作单位。事务通常以BEGIN TRANSACTION 开始,以COMMIT或ROLLBACK操作结束。COMMIT即提交,提交事务中所有的操作,事务正常结束。 ROLLBACK即撤消已作的所有操作,滚回到事务开始时的状态。这里的操作指对数据库的更新操作。滚回即 相当于所有操作均未执行。事务和程序是两个概念。一般地讲,一个程序可包括多个事务,由于事务是并发控 制的基本单位,所以下面的讨论均以事务为对象。(2)数
21、据一致性级别的概念。所谓并发控制就是要用正确的方式调度并发操作,避免造成数据的不一致性, 使一个用户事务的执行不受其它事务的干扰。4 .封锁封锁(Locking)就是事务T可以向系统发出请求,对某个数据对象(最常用的是记录)加锁。于是事务T对 这个数据对象就有一定的控制。例如,其它事务不能更新此数据直到T释放(unlock)它的锁为止。确切的控 制由封锁的类型决定。基本的封锁类型有两种:排它锁(Exclu sive locks简记为X锁)和共享锁(Share locks 简记为S锁)。若事务T对数据R加上X锁,则只允许T读取和修改R;其它一切事务对R的任何(包括封锁) 请求都不成功,直至T释放
22、R上的X锁为止。这就保证了其它事务不能再读取和修改R,直到T释放X锁。 若事务T对数据R加上S锁,则其它事务对R的X锁请求不能成功,而对R的共享请求可以得到。这就保证 了其它事务以读取R但不能修改R,直至T释放S锁为止。5 .可串行性定义当且仅当某组事务的一定交叉调度产生的结果和这些事务的某一串行调度的结果相同,则这个交叉调度 是可串行化的。可串行性(Serializability)是并行事务正确性的准则。这个准则规定,一给定的交叉调度,当 且仅当它是可串行化的,才认为是正确的。6 .两段锁协议两段锁协议规定所有的事务应遵守下列规则:(1)在对任何数据进行读、写操作之前,事务首先要获得对该数据
23、的封锁,而且:(2)在释放一个封锁之后,事务不再获得任何其它锁。所谓“两段”锁的含义是:事务分为两个阶段。第一阶段 是获得封锁,也称为扩展阶段。第二阶段是释放封锁,也称为收缩阶段。定理 若所有事务均遵守两段锁协议, 则这些事务的所有交叉调度都是可串行化的(证明略)。为了确保事务并行执行的正确性,许多系统采用两段 锁协议。同时系统设有死锁检测机制,发现死锁后按一定的算法解除死锁。7 .恢复尽管系统中采取了各种保护措施来保证数据库的安全性和完整性不被破坏,保证并行事务的正确执行,但是计 算机系统中硬件的故障、软件的错误、操作员的失误以及故意的破坏仍是不可避免的。这些故障轻则造成运行 事务非正常地中
24、断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。因此数 据库管理系统必须具有把数扰库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能, 这就是数据库的恢复。恢复子系统是数据库管理系统的一个重要组成部分,而且还相当庞大,常常占整个系统 代码的10%以上(如IMS, DB2)o故障恢复是否考虑周到和行之有效,是数据库系统性能的一个重要指标。 大型的数据库应用对故障恢复的要求更加强烈。有时甚至采用双工制。(1)故障的种类数据库系统中可能发生各种各样的故障,大致可以分以下几类:事务内部的故障;系统范围 内的故障;介质故障;计算机病毒。(2)转储和恢复转储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据库 系统 工程师 复习资料

限制150内