免费智能真题库 > 历年试卷 > 系统分析师 > 2014年上半年 系统分析师 上午试卷 综合知识
  第44题      
  知识点:   规范化理论   函数依赖   数据库   异常
  关键词:   供应商   函数依赖   数据库   函数   数据        章/节:   数据库系统       

 
销售公司数据库中的关系零件为P(Pno,Pname,Sname,City,Qty),Pno表示零件号,Pname表示零件名称,Sname表示供应商,City表示所在地,Qty表示库存量。其函数依赖集F={Pno→Pname,(Pno,Sname)→Qty,Sname→City}。关系P为(44),存在冗余度大、修改操作不一致、插入异常和删除异常的问题。若将P分解为(45),则可以解决这一问题。
 
 
  A.  1NF
 
  B.  2NF
 
  C.  3NF
 
  D.  4NF
 
 
 

 
  第44题    2012年上半年  
   58%
某公司销售数据库的商品、仓库关系模式及函数依赖集Fl、F2如下:
商品(商品号,商品名称,生产商,单价),Fl={商品号&rarr..
  第42题    2016年上半年  
   57%
假设关系R(A1A2A3)上的一个分解为ρ={(A
  第43题    2012年上半年  
   42%
某公司销售数据库的商品、仓库关系模式及函数依赖集Fl、F2如下:
商品(商品号,商品名称,生产商,单价),Fl={商品号&rarr..
   知识点讲解    
   · 规范化理论    · 函数依赖    · 数据库    · 异常
 
       规范化理论
        设有一个关系模式R(SNAME、CNAME、TNAME TADDRESS),其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列存储异常的问题。
        (1)数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。
        (2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值;否则就会出现地址值不一致的现象。
        (3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库;否则就要在学生姓名处插入空值。
        (4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。
        因此,关系模式R虽然只有四个属性,但却是性能很差的模式。如果把R分解成下列两个关系模式:R1(SNAME, CNAME)和R2(CNAME, TNAME, TADDRESS),则能消除上述的存储异常现象。
        为什么会产生这些异常呢?与关系模式属性值之间的联系直接有关。在模式R中,学生与课程有直接联系,教师与课程有直接联系,而教师与学生无直接联系,这就产生了模式R的存储异常。因此,模式设计强调“每个联系单独表达”是一条重要的设计原则,把R分解成R1R2是符合这条原则的。
               函数依赖
               设RU)是属性U上的一个关系模式,XYU的子集,rR的任一关系,如果对于r中的任意两个元组uv,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为XY
               从函数依赖的定义可以看出,如果有XU在关系模式RU)上成立,并且不存在X的任一真子集X′使X′→U成立,那么称XR的一个候选键。也就是X值唯一决定关系中的元组。由此可见,函数依赖是键概念的推广,键是一种特殊的函数依赖。
               在RU)中,如果XY,并且对于X的任何一个真子集X′,都有X′→Y不成立,则称YX完全函数依赖。若XY,但Y不完全函数依赖于X,则称YX部分函数依赖。
               在RU)中,如果XYY不是X的真子集),且YX不成立,YZ,则称ZX传递函数依赖。
               设U是关系模式R的属性集,FR上成立的只涉及U中属性的FD集,则有以下三条推理规则:
               (1)自反性:若Y?X?U,则XYR上成立;
               (2)增广性:若XYR上成立,且Z?U,则XZYZR上成立;
               (3)传递性:若XYYZR上成立,则XZR上成立。
               这里XZYZ等写法表示XZYZ。上述三条推理规则是函数依赖的一个正确的和完备的推理系统。根据上述三条规则还可以推出其他三条常用的推理规则:
               (1)并规则:若XYXZR上成立,则XYZR上成立;
               (2)分解规则:若XYR上成立,且Z?Y,则XZR上成立;
               (3)伪传递规则:若XYWYZR上成立,则WXZR上成立。
               在关系模式RUF)中为F所逻辑蕴含的函数依赖全体叫做F的闭包,记作F+
               设F为属性集U上的一组函数依赖,XU的子集,那么相对于F属性集X的闭包用X+表示,它是一个从F集使用推理规则推出的所有满足XA的属性A的集合:
               X+={属性A|XAF+中}
               如果G+=F+,就说函数依赖集F覆盖GFG的覆盖,或GF的覆盖),或FG等价。
               如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,也称为最小依赖集或最小覆盖。
               (1)F中任一函数依赖的右部仅含有一个属性;
               (2)F中不存在这样的函数依赖XA,使得FF-{XA}等价;
               (3)F中不存在这样的函数依赖XAX有真子集Z使得F-{XA}∨{ZA}与F等价。
               范式
               (1)第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。关系数据库研究的关系都是规范化的关系。
               (2)第二范式(2NF):若关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
               (3)第三范式(3NF):如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R是3NF。
               (4)BC范式(BCNF):若关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。
               上述四种范式之间有如下联系:1NF?2NF?3NF?BCNF。
               关系模式分解
               如果某关系模式存在存储异常问题,则可通过分解该关系模式来解决问题。把一个关系模式分解成几个子关系模式,需要考虑的是该分解是否保持函数依赖,是否是无损联接。
               无损联接分解的形式定义如下:设R是一个关系模式,FR上的一个函数依赖(FD)集。R分解成数据库模式δ={R1,…,RK}。如果对R中每一个满足F的关系r都有下式成立:
               
               那么称分解δ相对于F是无损联接分解,否则称为损失联接分解。
               下面是一个很有用的无损联接分解判定定理。
               设ρ={R1R2)是R的一个分解,FR上的FD集,那么分解ρ相对于F是无损分解的充分必要条件是:(R1R2)→(R1-R2)或(R1R2)→(R2-R1)。
               这两个条件只要有任意一个条件成立就可以了。
               设数据库模式δ={R1,…,RK}是关系模式R的一个分解,FR上的FD集,δ中每个模式Ri上的FD集是Fi。如果{F1F2,…,Fk}与F是等价的(即相互逻辑蕴涵),那么我们称分解δ保持FD。如果分解不能保持FD,那么δ的实例上的值就可能有违反FD的现象。
 
       函数依赖
        设RU)是属性U上的一个关系模式,XYU的子集,rR的任一关系,如果对于r中的任意两个元组uv,只要有u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为XY
        从函数依赖的定义可以看出,如果有XU在关系模式RU)上成立,并且不存在X的任一真子集X′使X′→U成立,那么称XR的一个候选键。也就是X值唯一决定关系中的元组。由此可见,函数依赖是键概念的推广,键是一种特殊的函数依赖。
        在RU)中,如果XY,并且对于X的任何一个真子集X′,都有X′→Y不成立,则称YX完全函数依赖。若XY,但Y不完全函数依赖于X,则称YX部分函数依赖。
        在RU)中,如果XYY不是X的真子集),且YX不成立,YZ,则称ZX传递函数依赖。
        设U是关系模式R的属性集,FR上成立的只涉及U中属性的FD集,则有以下三条推理规则:
        (1)自反性:若Y?X?U,则XYR上成立;
        (2)增广性:若XYR上成立,且Z?U,则XZYZR上成立;
        (3)传递性:若XYYZR上成立,则XZR上成立。
        这里XZYZ等写法表示XZYZ。上述三条推理规则是函数依赖的一个正确的和完备的推理系统。根据上述三条规则还可以推出其他三条常用的推理规则:
        (1)并规则:若XYXZR上成立,则XYZR上成立;
        (2)分解规则:若XYR上成立,且Z?Y,则XZR上成立;
        (3)伪传递规则:若XYWYZR上成立,则WXZR上成立。
        在关系模式RUF)中为F所逻辑蕴含的函数依赖全体叫做F的闭包,记作F+
        设F为属性集U上的一组函数依赖,XU的子集,那么相对于F属性集X的闭包用X+表示,它是一个从F集使用推理规则推出的所有满足XA的属性A的集合:
        X+={属性A|XAF+中}
        如果G+=F+,就说函数依赖集F覆盖GFG的覆盖,或GF的覆盖),或FG等价。
        如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,也称为最小依赖集或最小覆盖。
        (1)F中任一函数依赖的右部仅含有一个属性;
        (2)F中不存在这样的函数依赖XA,使得FF-{XA}等价;
        (3)F中不存在这样的函数依赖XAX有真子集Z使得F-{XA}∨{ZA}与F等价。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       异常
        异常是一种形式的异常控制流,它一部分是由硬件实现的,一部分是由操作系统实现的。因为它们有一部分是由硬件实现的,所以具体细节将随系统的不同而有所不同。然而,对于每个系统而言,基本的思想都是相同的。
        异常(exception)就是控制流中的突变,用来响应处理器状态中的某些变化。异常可以分为四类:中断(interrupt)、陷阱(trap)、故障(fault)和中止(abort)。下表对这些类别的属性做了小结。
        
        异常的类别
        (1)陷阱。陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
        用户程序经常需要向内核请求服务,例如读一个文件、创建一个新的进程、加载一个新的程序或者中止当前进程。为了允许对这些内核服务的受控的访问,处理器提供了一条特殊的syscall指令,当用户程序想要请求服务n时,可以执行这条指令。执行syscall指令会导致一个到异常处理程序的陷阱,这个处理程序对参数解码,并调用适当的内核程序。
        (2)故障。故障由错误情况引起,它可能被故障处理程序修正。当一个故障发生时,处理器将控制转移给故障处理程序。如果处理程序能够修正这个错误情况,它就将控制返回到故障指令,从而重新执行它。否则,处理程序返回到内核中的abort例程,abort例程会中止引起故障的应用程序。
        (3)中止。中止是不可恢复的致命错误造成的结果,典型的是一些硬件错误,例如DRAM或者SRAM位被损坏时发生的奇偶错误。中止处理程序从不将控制返回给应用程序。处理程序将控制返回给一个abort例程,该例程会中止这个应用程序。
   题号导航      2014年上半年 系统分析师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第44题    在手机中做本题