您的当前位置:首页正文

自-数据库管理系统的主要功能

2022-04-05 来源:步旅网
1数据库管理系统的主要功能有哪些?

答:数据库定义功能;数据存取功能;数据库运行管理;数据库的建立和维护功能。

2定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图(E R 图) 答:实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集。属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。码:惟一标识实体的属性集称为码。实体联系图(E R 图):提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名; ·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1 : 1 , 1 : n 或 m : n )。

3述关系模型概念,定义解释以下术语: 关系,属性,域,元组 ,主码,分量,关系模式 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。关系:一个关系对应通常说的一张表;属性:表中的一列即为一个属性;域:属性的取值范围;元组:表中的一行即为一个元组;主码:表中的某个属性组,它可以惟一确定一个元组;分量:元组中的一个属性值;关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , … ,属性 n ) 4试述关系数据库的特点。

答:关系数据模型具有下列优点:l关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。2关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。3 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。缺点是:由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

5设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

答:1求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))

2求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ)) 3求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ))4没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)5求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ)) 6什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是本身独立存在的表,在 sQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。 8 所有的视图是否都可以更新?为什么? 答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的.

9试述实现数据库安全性控制的常用方法和技术。

答 :实现数据库安性控制的常用方法和技术有l用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。2存取控制:通过用户权限定义和合法权检查确保只有合法权限的

用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC)。3视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 10什么是数据库中的自主存取控制方法和强制存取控制方法?

答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。 11 DBMS 的完整性控制机制应具有哪些功能?

答:DBMS 的完整性控制机制应具有三个方面的功能:l 定义功能,即提供定义完整性约束条件的机制;2 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;3违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

12 RDBMS 在实现参照完整性时需要考虑哪些方面? 答:RDBMs 在实现参照完整性时需要考虑以下几个方面:l外码是否可以接受空值。 2删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: l 级联删除(CASCADES ) ; 2 受限删除( RESTRICTED ) ; 3 置空值删除( NULLIFIES )。( 3)在参照关系中插入元组时的问题,这时系统可能采取的作法有: l 受限插入; 2 递归插入。 4 修改关系中主码的问题。一般是不能用 UPDATE 语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。 13关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。

14理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF。

答:定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。(即只要X上的属性值相等,Y上的值一定相等。)术语和记号:XY,但Y不是X的子集,则称XY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。XY,但Y是X的子集,则称XY是平凡的函数依赖。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作X Y。定义2:在R(U)中,如果 XY,并且对于X的任何一个真子集X’,都有X’ Y,则称Y对X完全函数依赖, 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。

定义5:关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集使得XY,Y X,Y Z成立,则称R<U,F>∈3NF。定义6:关系模式R<U,F>∈1NF 。若XY且Y不是X的子集时,X必含有码,则R∈BCNF。定义7:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含

有码,则称R答:这里只概要列出数据库设计过程的六个阶段:l 需求分析;2 概念结构设计;3逻辑结构设计;4数据库物理设计;5 数据库实施;6数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。 16试述数据库设计过程各个阶段上的设计描述。

答:各阶段的设计要点如下:l 需求分析:准确了解与分析用户需求(包括数据与处理)。2概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。3 逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。 4 数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。5 数据库实施:设计人员运用 DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 6数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。 17试述数据库概念结构设计的重要性和设计步骤。

答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一 DBMS实现这些需求。设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第 2 步是集成局部视图,得到全局的概念结构。 18试述查询优化的一般准则。

答:下面的优化策略一般能提高查询效率:l选择运算应尽可能先做;2 把投影运算和选择运算同时进行;3 把投影同其前或其后的双目运算结合起来执行;4 把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;5找出公共子表达式6 选取合适的连接算法。 19为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。例如某工厂的库存管理系统中,要把数量为Q 的某种零件从仓库1 移到仓库2 存放。则可以定义一个事务T , T 包括两个操作;Ql = Ql 一Q , Q2= Q2 + Q。 如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q 。

20数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?

答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:1事务内部的故障;2 系统故障;3介质故障;4 计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。 21什么是日志文件?为什么要设立日志文件?

答: 1日志文件是用来记录事务对数据库的更新操作的文件。2设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 22登记日志文件时为什么必须先写日志文件,后写数据库? 答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,不会影响数据库的正确性。

所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

23针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)

答:事务故障的恢复:事务故障的恢复是由DBMS DBMs执行恢复步骤是:自动完成的,对用户是透明的。1反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作; 2对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;3 继 续反向扫描日志文件,做同样处理;4如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。系统恢复步骤是:1正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完成的事务队列(uNDO队列)。2对 撤销列中的各个事务进行UNDO处理进行UNDO 处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”Before Image)写入数据库。3对重做队列中的各个事务进REDO处理。进行REDO 处理的方法是:正向扫描日志文件,对每个REDO 事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”Afte , Image)写入数据库。介质故障的恢复:介质故障最严重一种故障。恢复方法是重装数据库,然后重做已完成的事务。具体过程是:( 1 ) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本), 使数据库恢复到转储时的一致性状态; 2 DBA装入转储结束时刻的日志文件副本;( 3 ) DBA 启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。

24并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。( l)丢失修改(lost update ) 两个事务 Tl 和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了) Tl 提交的结果,导致 Tl 的修改被丢失。( 2)不可重复读(Non一Repeatable Read ) 不可重复读是指事务 Tl 读取数据后,事务几执行更新操作,使 Tl 无法再现前一次读取结果。( 3 读“脏”数据( Dirty Read ) 读“脏’夕数据是指事务 Tl修改某一数据,并将其写回磁盘,事务几读取同一数据后, Tl 由于某种原因被撤销,这时Tl 已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 25什么是封锁?基本的封锁类型有几种?试述它们的含义。

答:封锁就是事务 T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。基本的封锁类型有两种:排它锁( Exclusive Locks ,简称 x 锁)和共享锁 ( ShareLocks,简称 S 锁)。排它锁又称为写锁。若事务 T 对数据对象 A 加上 X 锁,则只允许 T读取和修改 A ,其他任何事务都不能再对 A 加任何类型的锁,直到 T 释放 A上的锁。这就保证了其他事务在 T 释放 A 上的锁之前不能再读取和修改 A 。共享锁又称为读锁。若事务 T 对数据对象 A 加上 S 锁,则事务 T 可以读 A但不能修改 A,其他事务只能再对A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。这就保证了其他事务可以读 A ,但在 T 释放 A 上的 S 锁之前不能对 A 做任何修改。 什么是死锁?预防死锁的若干方法

答如果事务 Tl 封锁了数据 Rl ,几封锁了数据凡,然后 Tl 又请求封锁几,因几已封锁了几,于是 Tl 等待几释放几上的锁。接着几又申请封锁 Rl ,因 Tl 已封锁了 Rl,几也只能

等待Tl 释放 Rl 上的锁。这样就出现了Tl在等待几,而几又在等待 T }的局面,T}和几两个事务永远不能结束,形成死锁通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。

26请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?

答:数据库系统一般采用允许死锁发生, DBMS 检测到死锁后加以解除的方法。 DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。 DBMS 并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。

因篇幅问题不能全部显示,请点此查看更多更全内容