2008第二届杰出数据库工程师评选初赛试题

日期: 2009-01-12 来源:TechTarget中国 英文

初赛试题略有难度,建议选手先访问竞赛官方网站学习资料栏目、DB2信息中心、developerWorks中国,了解与XML、DB2相关的知识概念和基本操作后再进行答题。

推荐教程下载:  DB2 9基础教程   DB2 9 pureXML教程
 
1.相比传统的关系数据库,xml在数据表达方面的重要区别是(多选)

A.层次表达 B.语义描述 C.数据schema的灵活定义 D.复杂关系的表达

2. 现在基于xml的行业标准有哪些 (多选)

A. FIXML B. HL7 C. XBRL D. ebXML

3. xml模型和传统的关系模型相比,其优势主要在于(多选)

A. 数据模型得到简化,更加易于管理 B. 复杂的业务对象组织直观易用,便于开发
C. 数据结构易于理解,易于扩展 D. 减少了DBA很多的维护工作量

4. 在DB2 pureXML,XML是作为(单选)

A. 一种新的数据类型 B. 一种新的数据表 C. LOB数据类型 D. 文本数据类型

5. 在DB2 pureXML中,XML存储的粒度是(单选)

A. 以节点级粒度存储 XML B. 以文档级粒度存储 C. 以段落级存储 D. 任意粒度

6. 下面哪个说法不正确 (多选)

A. DB2 9中不但支持以XQuery,SQL/XML语言存取XML数据,同时也支持对XML数据的全文检索功能
B. DB2 9不再支持在LOB字段中存储xml文档
C. DB2 9采用pureXML技术支持XML,不再支持XML数据的分解式
D. DB2 9支持在XML列上建立基于特定XPath路径的索引

7. 我们打算建立一个包含xml列的数据表,下面的语句中哪些是正确的(多选)

A. create table table1(c1 char(5), doc XML)
B. CREATE TABLE table1 (c1 char(5), c2 int,c3 char(7), c4 XML) IN tablespace2 INDEX IN tablespace3 LONG IN tablespace4
C. create table table1(c1 char(5), doc Blob) IN tablespace2 INDEX IN tablespace3 LONG IN tablespace4
D. create table table1(c1 xml, doc xml) constraint pk1 primary key(c1)

8. 对于这个xml文件,如果需要访问员工的电话号码,得到如下的结果集:<phone>xxxxxxxx</phone>下面那个Xpath表达式是正确的?(多选)

xml文件代码:
<dept bldg=“101”>
<employee id=“901”>
<name>John Doe</name>
<phone>408 555 1212</phone>
<office>344</office>
</employee>
<employee id=“902”>
<name>Peter Pan</name>
<phone>408 555 9918</phone>
<office>216</office>
</employee>
</dept>
A. /dept/employee/phone B. /dept//phone C. /dept//@phone D. /dept//phone/text()

9. 和DTD相比,XML schema的主要优势有? (多选)

A. 可以定义更加丰富的数据类型 B. 一个schema可以由多个schema构成 C. xml schema可以有namespace D. 没有太多的优势,只是版本更新

10. 现有的大多数关系数据库存储xml数据通常有两种方式,CLOB方式和拆分方式,CLOB方式的主要问题是?(多选)

A.数据存储需要占用大量的空间 B.在访问xml数据时需要重新解析XML,造成性能十分低下 C.访问方式十分复杂 D.用户无法自主无法为数据建立索引

11. DB2 purexml的突出特点是?(多选)

A.数据解析后存储,访问时无需再次解析
B.高效的xml索引,支持通过XPATH,XQUERY快速访问任何xml节点
C.可以注册xml schema用于数据校验
D.和传统数据库存储方式相比,大大节省了存储空间

12. 如果希望在数据表dept的xml列doc获得员工姓名为perter Pan的电话号码,下面的查询语句哪个是正确的(多选)

xml代码:
<dept bldg=“101”>
<employee id=“901”>
<name>John Doe</name>
<phone>408 555 1212</phone>
<office>344</office>
</employee>
<employee id=“902”>
<name>Peter Pan</name>
<phone>408 555 9918</phone>
<office>216</office>
</employee>
</dept>
A. XQUERY
          for $i in db2-fn:xmlcolumn(‘DEPT.DOC’)/dept
          return $i/employee/phone
B.XQUERY
         for $i in db2-fn:xmlcolumn(‘DEPT.DOC’)/dept/employee where $i/name=’Peter Pan’
         return $i/phone
C.XQUERY
          for $i in db2-fn:xmlcolumn(‘DEPT.DOC’)//employee where $i/name=’Peter Pan’
         return $i//phone
D.select dept.doc from dept where xmlexists(‘$i/[name = “Peter Pan”]’ passing dept.doc as “i”);

13. Db2 V9中,支持对于xml文档单节点的更新,而不需要对整个文档进行更新,大大方便了xml文档更新,针对下面的文档,请问哪个语句是正确的?(多选)

xml代码:
<customerinfo>
<name>John Smith</name>
<addr country=“Canada”>
<street>Fourth</street>
<city>Calgary</city>
<prov-state>Alberta</prov-state>
<pcode-zip>M1T 2A9</pcode-zip>
</addr>
<phone type=”work”>963-289-4136</phone>
</customerinfo>
A.
update xmlcustomer
set info = xmlquery( ‘transform
copy $new := $i
modify do replace value of $new/customerinfo/addr/pcode-zip with 90111
return $new’
passing info as “i”)
where cid = 1000;
B.
select xmlquery( ‘transform
copy $new := $i
modify do replace value of $new/customerinfo/addr/pcode-zip with 90111
return $new’
passing info as “i”)
from xmlcustomer
where cid = 1000;
C.
update xml customer
set $i//pcode-zip=’90111′
passing info as “i”
where cid=1000

14. xml文档在插入数据库时,具有多种方法,请问以下语句哪个是正确的用法(多选)

A.insert into xmlcustomer(id,doc) values(105,XMLPARSE (DOCUMENT ‘<doc>…</doc>’ PRESERVE WHITESPACE))
B.insert into xmlcustomer(doc) values(xmlvalidate(XMLPARSE (DOCUMENT ‘<doc>…</doc>’ according to xmlschema id “xmlcustomer.schema1”)))
C.insert into xmlcustomer(id,doc) values(101,'<doc>…</doc>’)
D.insert into xmlcustomer(id,doc) values(‘<doc>…</doc>’)

15. 通过使用xmltable的功能,可以把xml文档重新组织为关系型表达,现在有个表dept,xml列doc,下面的语句哪个用法是正确的?(单选)

<dept bldg=“101”>
<employee id=“901”>
<name>John Doe</name>
<phone>408 555 1212</phone>
<office>344</office>
</employee>
<employee id=“902”>
<name>Peter Pan</name>
<phone>408 555 9918</phone>
<office>216</office>
</employee>
</dept>
A.
SELECT * from
XMLTABLE(‘db2-fn:xmlcolumn(“dept.doc”)/dept/employee’
COLUMNS
“empid” INTEGER PATH ‘@id’,
“Name” VARCHAR(30) PATH ‘name’,
“phone” CHAR(20) PATH ‘phone’,
“office” integer PATH ‘office’
)
B.
SELECT * from
XMLTABLE(‘db2-fn:xmlcolumn(“dept.doc”)’
COLUMNS
“empid” INTEGER ‘@id’,
“Name” VARCHAR(30) ‘name’,
“phone” CHAR(20) ‘phone’,
“office” integer ‘office’
)
C.
SELECT X.* from
XMLTABLE (‘db2-fn:xmlcolumn(“dept.doc”)/dept/employee’
COLUMNS
“empid” INTEGER PATH ‘@id’,
“Name” VARCHAR(30) PATH ‘name’,
“phone” CHAR(20) PATH ‘phone’,
“office” integer PATH ‘office’
) AS X
D.
SELECT X.* from
XMLTABLE(‘db2-fn:xmlcolumn(“dept.doc”)’
COLUMNS
“empid” INTEGER PATH‘@id’,
“Name” VARCHAR(30) PATH‘name’,
“phone” CHAR(20) PATH‘phone’,
“office” integer PATH‘office’
) as X

16. 关于DB2 v9 xml列的说法,下面哪个是不正确的?(单选)

A.数据可以通过SQl访问 B.数据可以通过XQUERY访问
C.XML列必须要变更(alter)以适应层级关系的存储 D.访问xml文档的任何一部分都是直接访问,无需读出整个文档

17. 我们创建一个数据表并插入数据后,下面的XQuery查询会返回多少行记录?(单选)
代码:
CREATE TABLE customer (cid BIGINT NOT NULL PRIMARY KEY, info XML)

INSERT INTO customer (cid, info) VALUES (1000,
‘<customerinfo http://posample.org”>http://posample.org” Cid=”1000″>
<name>Kathy Smith</name>
<addr country=”United States”>
<street>5 Rosewood</street>
<city>Ontario</city>
<prov-state>California</prov-state>
<pcode-zip>91764</pcode-zip>
</addr>
<phone type=”work”>501-555-1358</phone>
</customerinfo>’)

INSERT INTO customer (cid, info) VALUES (1002,
‘<customerinfo http://posample.org”>http://posample.org” Cid=”1002″>
<name>Jim Noodle</name>
<addr country=”Canada”>
<street>25 EastCreek</street>
<city>Markham</city>
<prov-state>Ontario</prov-state>
<pcode-zip>N9C 3T6</pcode-zip>
</addr>
<phone type=”work”>905-555-7258</phone>
</customerinfo>’)

INSERT INTO customer (cid, info) VALUES (1003,
‘<customerinfo http://posample.org”>http://posample.org” Cid=”1003″>
<name>Robert Shoemaker</name>
<addr country=”Canada”>
<street>1596 Baseline</street>
<city>Aurora</city>
<prov-state>Ontario</prov-state>
<pcode-zip>N8X 7F8</pcode-zip>
</addr>
<phone type=”work”>905-555-2937</phone>
</customerinfo>’)

XQUERY declare default element namespace “http://posample.org“;
for $d in db2-fn:xmlcolumn(‘CUSTOMER.INFO’)/customerinfo
where $d/addr/prov-state=”Ontario”
return <out>{$d/name}</out>

A.0 B.1 C.2 D.3

18. 关于DB2 9中的xml索引,下面哪个说法不正确?(单选)

A.XML 索引不能包含关系数据列
B.Unique XML indexes 可以在多个数据列上创建
C.当为一个xml文档建立索引的时候,DB2可以生成多个索引键值
D.在xml列上建立的索引可以有效加速对于其中存储的xml文档的查询

19. 下面哪个说法正确?(多选)

A.DB2 PUREXML要求表中的每个XML字段必须有schema校验
B.DB2 PUREXML 表中的XML字段只能用一个Schema校验
C.DB2 PUREXML 表中的XML字段可以用多个Schema校验
D.当Schema版本升级的时候,原有的XML 数据存储不受影响

20. 下面创建xml索引的语句哪些是正确的?(多选)

xml代码:
<dept bldg=“101”>
<employee id=“901”>
<name>John Doe</name>
<phone>408 555 1212</phone>
<office>344</office>
</employee>
<employee id=“902”>
<name>Peter Pan</name>
<phone>408 555 9918</phone>
<office>216</office>
</employee>
</dept>

A.
create index officeIndex on t1(XMLDoc)
generate key using xmlpattern ‘/dept/employee/office’ as sql double;
B.
create index officeIndex on t1(XMLDoc)
generate key using xmlpattern ‘/dept//office’ as sql varchar(10);
C.
create index idIndex on t1(XMLDoc)
generate key using xmlpattern ‘/dept/employee/@id’ as sql double;
D.
create index idIndex on t1(XMLDoc)
generate key using xmlpattern ‘/dept/employee/id’ as sql varchar(10);

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐