还剩3页未读,继续阅读
文本内容:
1数据库管理系统的主要功能有哪些?答数据库定义功能;数据存取功能;数据库运行管理;数据库的建立和维护功能2定义并解释概念模型中以下术语实体,实体型,实体集,属性,码,实体联系图(ER图)答实体客观存在并可以相互区分的事物叫实体实体型具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型实体集同型实体的集合称为实体集属性实体所具有的某一特性,一个实体可由若干个属性来刻画码惟一标识实体的属性集称为码实体联系图(ER图)提供了表示实体型、属性和联系的方法实体型用矩形表示,矩形框内写明实体名;·属性用椭圆形表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:11:n或m:n)3述关系模型概念,定义解释以下术语关系,属性,域,元组,主码,分量,关系模式答关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成关系一个关系对应通常说的一张表;属性表中的一列即为一个属性;域属性的取值范围;元组表中的一行即为一个元组;主码表中的某个属性组,它可以惟一确定一个元组;分量元组中的一个属性值;关系模式对关系的描述,一般表示为关系名(属性1,属性2,…,属性n4试述关系数据库的特点答关系数据模型具有下列优点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‘SPJ3求供应工程J1零件为红色的供应商号码SNOπSnoσPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ)4没有使用天津供应商生产的红色零件的工程号JNOπJnoSPJ-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5求至少用了供应商S1所供应的全部零件的工程号JNOπJno,PnoSPJ÷πPno(σSno=‘S1‘(SPJ))6什么是基本表?什么是视图?两者的区别和联系是什么?答基本表是本身独立存在的表,在sQL中一个关系就对应一个表视图是从一个或几个基本表导出的表视图本身不独立存储在数据库中,是一个虚表即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图8所有的视图是否都可以更新?为什么?答:不是视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的.9试述实现数据库安全性控制的常用方法和技术答实现数据库安性控制的常用方法和技术有l用户标识和鉴别该方法由系统提供一定的方式让用户标识自己的名字或身份每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权2存取控制通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据例如CZ级中的自主存取控制DACBl级中的强制存取控制(MAC)3视图机制为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护10什么是数据库中的自主存取控制方法和强制存取控制方法?答自主存取控制方法定义各个用户对不同数据对象的存取权限当用户对数据库访问时首先检查用户的存取权限防止不合法用户对数据库的存取强制存取控制方法每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象11DBMS的完整性控制机制应具有哪些功能?答:DBMS的完整性控制机制应具有三个方面的功能l定义功能,即提供定义完整性约束条件的机制;2检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;3违约反应如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性12RDBMS在实现参照完整性时需要考虑哪些方面?答RDBMs在实现参照完整性时需要考虑以下几个方面l外码是否可以接受空值2删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种l级联删除(CASCADES;2受限删除(RESTRICTED;3置空值删除(NULLIFIES)3)在参照关系中插入元组时的问题,这时系统可能采取的作法有l受限插入;2递归插入4修改关系中主码的问题一般是不能用UPDATE语句修改关系主码的如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改然后要区分是参照关系还是被参照关系13关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性14理解并给出下列术语的定义函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All一key)、1NF、ZNF、3NF、BcNF、多值依赖、4NF答定义1设RU是属性集U上的关系模式X,Y是属性集U的子集若对于RU的任意一个可能的关系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,则记作XY定义2在RU中,如果XY,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖定义3若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式1NF定义4若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF(即1NF消除了非主属性对码的部分函数依赖则成为2NF)定义5:关系模式RU,F中若不存在这样的码X、属性组Y及非主属性ZZ不是Y的子集使得XY,YX,YZ成立,则称RU,F∈3NF定义6:关系模式RU,F∈1NF若XY且Y不是X的子集时X必含有码,则RU,F∈BCNF定义7:关系模式RU,F∈1NF,如果对于R的每个非平凡多值依赖XYY不是X的子集,Z=U-X-Y不为空,X都含有码,则称RU,F∈4NF15试述数据库设计过程答这里只概要列出数据库设计过程的六个阶段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存放则可以定义一个事务TT包括两个操作;Ql=Ql一QQ2=Q2+Q如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q20数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?答数据库系统中可能发生各种各样的故障,大致可以分以下几类1事务内部的故障;2系统故障;3介质故障;4计算机病毒事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据21什么是日志文件?为什么要设立日志文件?答1日志文件是用来记录事务对数据库的更新操作的文件2设立日志文件的目的是进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复22登记日志文件时为什么必须先写日志文件,后写数据库?答把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作有可能在这两个操作之间发生故障,即这两个写操作只完成了一个如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,不会影响数据库的正确性所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改23针对不同的故障,试给出恢复的策略和方法(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?答事务故障的恢复事务故障的恢复是由DBMSDBMs执行恢复步骤是自动完成的,对用户是透明的1反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作;2对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;3继续反向扫描日志文件,做同样处理;4如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了系统故障的恢复系统故障可能会造成数据库处于不一致状态一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务系统恢复步骤是1正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(uNDO队列)2对撤销列中的各个事务进行UNDO处理进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”BeforeImage)写入数据库3对重做队列中的各个事务进REDO处理进行REDO处理的方法是正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作即将日志记录中“更新后的值”AfteImage)写入数据库介质故障的恢复介质故障最严重一种故障恢复方法是重装数据库,然后重做已完成的事务具体过程是1DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本)使数据库恢复到转储时的一致性状态;2DBA装入转储结束时刻的日志文件副本;3DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务24并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答并发操作带来的数据不一致性包括三类丢失修改、不可重复读和读“脏’夕数据l)丢失修改(lostupdate两个事务Tl和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)Tl提交的结果,导致Tl的修改被丢失2)不可重复读(Non一RepeatableRead不可重复读是指事务Tl读取数据后,事务几执行更新操作,使Tl无法再现前一次读取结果3读“脏”数据(DirtyRead读“脏’夕数据是指事务Tl修改某一数据,并将其写回磁盘,事务几读取同一数据后,Tl由于某种原因被撤销,这时Tl已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据避免不一致性的方法和技术就是并发控制最常用的技术是封锁技术也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制25什么是封锁?基本的封锁类型有几种?试述它们的含义答封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象封锁是实现并发控制的一个非常重要的技术基本的封锁类型有两种排它锁(ExclusiveLocks,简称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并发控制子系统检测到死锁后,就要设法解除通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去当然,对撤销的事务所执行的数据修改操作必须加以恢复。