免费智能真题库 > 历年试卷 > 软件设计师 > 2014年下半年 软件设计师 上午试卷 综合知识
  第54题      
  知识点:   SQL数据查询   关系代数
  章/节:   计算机软件知识       

 

下列查询B= “信息”且E= “北京”的A、B、E的关系代数表达式中,查询效率最高的是 (55)。
 
 
  A.  B=软件工程 OR R.C=S.C AND R.D=S.D
 
  B.  B='软件工程'OR R.C=S.C AND R.D=S.D
 
  C.  B='软件工程'OR R.C=S.C OR R.D=S.D
 
  D.  B='软件工程'AND R.C=S.C AND R.D=S.D
 
 
 

 
  第54题    2013年下半年  
   23%
若有关系R(A,B,C,D,E)和S(B,C,F,G),则R与S自然联结运算后的属性列有(51)个,与表达式π1,3,6,73<6..
  第55题    2012年上半年  
   20%
某销售公司数据库的零件关系P (零件号,零件名称,供应商,供应商所在地,库存量),函数依赖集F={零件号一>零件名称,(零件..
  第55题    2011年下半年  
   23%
 
  第54题    2012年上半年  
   42%
某销售公司数据库的零件关系P (零件号,零件名称,供应商,供应商所在地,库存量),函数依赖集F={零件号一>零件名称,(零件..
  第56题    2013年下半年  
   9%
计算机系统的软硬件故障可能会造成数据库中的数据被破坏。为了防止这一问题,通常需要(56),以便发生故障时恢复数据库。
  第33题    2021年上半年  
   40%
某销售公司员工关系E(工号、姓名、部门名、电话、住址),商品关系C(商品号、商品名、库存数)和销售关系EC(工号、商品号、销售数、..
   知识点讲解    
   · SQL数据查询    · 关系代数
 
       SQL数据查询
               SELECT基本结构
               语句格式:
               
               SQL查询中的子句顺序:SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY。SELECT、FROM是必需的,HAVING子句只能与GROUP BY搭配使用。
               (1)SELECT子句对应的是关系代数中的投影运算,用来列出查询结果中的属性。其输出可以是列名、表达式、集函数(AVG、COUNT、MAX、MIN、SUM),DISTINCT选项可以保证查询的结果集中不存在重复元组。
               (2)FROM子句对应的是关系代数中的笛卡儿积,它列出的是表达式求值过程中须扫描的关系,即在FROM子句中出现多个基本表或视图时,系统首先执行笛卡儿积操作。
               (3)WHERE子句对应的是关系代数中的选择谓词。WHERE子句的条件表达式中可以使用的运算符如下表所示。
               
               WHERE子句的条件表达式中可以使用的运算符
               简单查询
               SQL最简单的查询是找出关系中满足特定条件的元组,这些查询与关系代数中的选择操作类似。简单查询只需要使用3个保留字,即SELECT、FROM和WHERE。
               连接查询
               若查询涉及两个以上的表,则称为连接查询。
               子查询与聚集函数
               1)子查询
               子查询也称为嵌套查询,是指一个SELECT-FROM-WHERE查询可以嵌入另一个查询块之中。在SQL中允许多重嵌套。
               2)聚集函数
               聚集函数是以一个值的集合为输入,返回单个值的函数。SQL提供了5个预定义集合函数,即平均值AVG、最小值MIN、最大值MAX、求和SUM及计数COUNT。
               使用ANY和ALL谓词必须同时使用比较运算符,其含义及等价的转换关系如下表所示。
               
               ANY、ALL谓词含义及等价的转换关系
               
               分组查询
               1)GROUP BY子句
               在WHERE子句后面加上GROUP BY子句可以对元组进行分组,保留字GROUP BY后面跟着一个分组属性列表。最简单的情况是,FROM子句后面只有一个关系,根据分组属性对其元组进行分组。SELECT子句中使用的聚集操作符仅用在每个分组上。
               2)HAVING子句
               假如元组在分组前按照某种方式加上限制,使得不需要的分组为空,则在GROUP BY子句后面跟一个HAVING子句即可。
               当元组含有空值时,应注意以下两点。
               .空值在任何聚集操作中都被忽略。它对求和、求平均值和计数都没有影响,也不能是某列的最大值或最小值。
               .NULL值可以在分组属性中看作一个一般的值。
               更名运算
               SQL提供可为关系和属性重新命名的机制,这是通过使用具有以下形式的AS子句来实现的。
               
               AS子句既可出现在SELECT子句中,也可以出现在FROM子句中。
               字符串操作
               对于字符串进行的最通常的操作是使用LIKE操作符的模式匹配。使用两个特殊的字符来描述模式,即"%"匹配任意字符串、"-"匹配任意一个字符。
               视图查询
               查询视图表时,系统先从数据字典中取出该视图的定义,然后将定义中的查询语句和对该视图的查询语句结合起来,形成一个修正的查询语句。
 
       关系代数
               关系数据库的基本概念
                      属性和域
                      在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。每个属性的取值范围的集合,称为该属性的域。
                      一般在关系数据库模型中,对域还加了一个限制,所有的域都应是原子数据的集合。关系数据模型的这种限制称为第一范式(1NF)条件。如果关系数据模型突破了1NF的限制,则称为非1NF的。
                      笛卡儿积与关系
                      【定义9-1】设D1D2,…,Dn为任意集合,定义D1D2,…,Dn的笛卡儿积为
                      D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}
                      其中,每一个元素(d1d2,…,dn)叫做一个n元组,元组的每一个值di叫做元组的一个分量,若Di(i=l,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M
                      
                      笛卡儿积可以用二维表来表示。
                      【定义9-2】D1×D2×…×Dn的子集叫做在域D1D2,…,Dn上的关系,记为
                      R(D1,D2,…,Dn)
                      称关系Rn元关系。
                      由定义7-2可以得出,一个关系也可以用二维表来表示。关系中属性的个数称为元数,元组的个数称为基数。
                      关系的相关名词
                      下面介绍关系的相关名词。
                      (1)目或度。常用R表示关系的名字,n表示关系的目或度。
                      (2)候选码。若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码。
                      (3)主码。若一个关系有多个候选码,则选定其中一个为主码。
                      (4)主属性。包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。
                      (5)外码。如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。
                      (6)全码。关系模式的所有属性组是这个关系模式的候选码,称为全码。
                      关系的3种类型
                      下面介绍关系的3种类型。
                      (1)基本关系(通常又称为基本表、基表)。这是实际存在的表,它是实际存储数据的逻辑表示。
                      (2)查询表。查询结果对应的表。
                      (3)视图表。这是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。
                      关系数据库模式
                      在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称之为关系数据库。
                      【定义9-3】关系的描述称为关系模式。可以形式化地表示为
                      R(U,D,dom,F)
                      式中:R为关系名;U为组成该关系的属性名集合;D为属性的域;dom为属性向域的映像集合;F为属性间数据的依赖关系集合。
                      通常将关系模式简记为
                      R(U)或R(A1,A2,…,An)
                      式中:R为关系名;A1A2,…,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性上加下划线表示该属性为主码属性。
                      完整性约束
                      完整性规则提供了一种手段来保证当授权用户对数据库作修改时不会破坏数据的一致性,因此,完整性规则防止的是对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。完整性共分为3类,即实体完整性、参照完整性(也称引用完整性)和用户自定义完整性。
                      (1)实体完整性。规定基本关系R的主属性A不能取空值。
                      (2)参照完整性。现实世界中的实体之间往往存在某种联系,在关系模型中实体与实体之间的联系是用关系来描述的,这样自然就存在着关系与关系间的引用。参照完整性规定,若F是基本关系R的外码,它与基本关系S的主码相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
                      (3)用户自定义完整性。就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。
                      关系运算
                      关系操作的特点是操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。关系数据语言分为3类,即关系代数语言、关系演算语言和具有关系代数和关系演算双重特点的语言(如SQL)。关系演算语言包括元组关系演算语言和域关系演算语言。
                      关系代数语言、元组关系演算和域关系演算是抽象查询语言,它与具体的DBMS中实现的实际语言并不一样,但是可以用它作为评估实际系统中的查询语言能力的标准。
                      关系运算符有4类,即集合运算符、专门的关系运算符、比较算术符和逻辑运算符。关系运算符如下表所示。
                      
                      关系运算符
               5种基本的关系代数运算
               5种基本的关系代数运算包括并、差、笛卡儿积、投影、选择,其他运算可以通过基本的关系运算导出。
                      并
                      关系RS具有相同的关系模式,即RS的元数相同(结构相同)。关系R和关系S的并(Union)由属于R或属于S的元组构成的集合组成,记作
                      RS={t|tRtS}
                      式中,t为元组变量。
                      差
                      关系RS具有相同的关系模式。关系RS的差(Difference)由属于R但不属于S的元组构成的集合组成,记作
                      R-S={t|tRt?S}
                      广义笛卡儿积
                      两个元数分别为n目和m目的关系RS的广义笛卡儿积(Extended Cartesian Product)是一个n+m列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若Rk1个元组,Sk2个元组,则关系RS的广义笛卡儿积有k1×k2个元组。记作
                      R×S={t|t=﹤tn,tm﹥∧tnRtmS}
                      投影
                      投影(Projection)运算是从关系的垂直方向进行运算,在关系R中选择出若干属性列A组成新的关系。记作
                      πA(R)={t[A]|tR}
                      选择
                      选择(Selection)运算是从关系的水平方向进行运算,是从关系R中选择满足给定条件的诸元素,记作
                      σF(R)={t|tRF(t)=true}
                      式中,F中的运算对象是属性名(或列的序号)或常数,运算符是算术比较符和逻辑运算符。
               扩展的关系代数运算
               扩展的关系代数运算可以从基本的关系运算中导出,主要包括以下几种。
                      交
                      关系RS具有相同的关系模式。关系RS的交由属于R同时又属于S的元组构成的集合组成。关系RS的交记作
                      RS={t|tRtS}
                      显然,RS=R-(R-S)或者RS=S-(S-R)。
                      连接
                      连接(Join)分为连接、等值连接和自然连接3种。连接运算是从两个关系的笛卡儿积中选取满足条件的元组。
                      (1)θ连接。从关系R和S的笛卡儿积中选取属性间满足一定条件的元组。记作
                      
                      (2)等值连接。当θ为"="时称为等值连接。可以表示为
                      
                      (3)自然连接。是一种比较特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中把重复属性列去掉。
                      除
                      除(Division)运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),XYZ为属性组。R÷S应当满足元组在X上的分量值x的象集Yx包含关系S在属性组Y上投影的集合。其形式定义为
                      R÷S={tn[X]|tnRπy(S)?Yx}
                      式中,YxxR中的象集,x=tn[X],且R÷S的结果集的属性组为X
                      广义投影
                      广义投影(Generalized Projection)运算允许在投影列表中使用算术运算,实现了对投影运算的扩充。
                      若有关系R,条件F1F2,…,Fn中的每一个都是涉及R中常量和属性的算术表达式,那么广义投影运算的形式定义为
                      πF1,F2,…,Fn(R)
                      外连接
                      外连接(Outer Join)运算是连接运算的扩展,可以处理缺失的信息。外连接运算有3种,即左外连接、右外连接和全外连接。
                      (1)左外连接。取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值NULL来填充所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。
                      (2)右外连接。取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值NULL来填充所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。
                      (3)全外连接。完成左外连接和右外连接的操作。即填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。
   题号导航      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 /
 
第54题    在手机中做本题