DB2 Viper 快速入门

  • 来源: 赛迪网 作者: 若水   2008-05-06/15:57
  • 您可能已经听到了关于 DB2 的新 Viper 版本的一些议论 —— IBM 的第一个同时支持表格式(基于 SQL 的)和层次式(基于 XML 的)数据结构的数据库管理系统。如果您对 DB2 为 XML 提供新的 “原生支持”(Native Support)感到好奇,并且想快速地入门,那么这篇文章就是为您准备的。 ?nANe84  
    4{o`[l|}I=  
    为了帮助您快速掌握 DB2 自身的 XML 特性,请完成几个普通的任务,比如: 4Ln4 Xx$  
    L?Wus[  
    创建用于管理 XML 数据的数据库对象,包括一个测试数据库、一些示例表和视图。 <d"`EwR  
    使用 INSERT 和 IMPORT 语句将 XML 数据填充到数据库中。 (sp:>-)AcS  
    验证您的 XML 数据。使用 DB2 开发和注册您的 XML 模式,并在导入数据时使用 XMLVALIDATE 选项。 O+OU+!lE  
    后续文章将包括其他主题,比如使用 SQL 查询、更新和删除 DB2 XML 数据,使用 XQuery 查询 DB2 XML 数据,开发存取 DB2 XML 数据的 Java 应用程序和 Web 组件。 %Sj/ R>[5  
    9L.+p[z  
    创建数据库对象 PjT\yI  
    P#"V `|m V  
    让我们先来创建一个单独的 DB2 Unicode 数据库。在 DB2 Viper 中,只有 Unicode 数据库才能同时存储 XML 文档和 SQL 数据的更多传统格式,比如整数、日期/时间、变长字符串,等等。随后,您将在这个数据库中创建对象来管理 XML 和其他类型的数据。 dRe z  
    eY(@_ qT,[  
    创建测试数据库 +.&d)ehTO  
    }m2@o  
    为了创建一个新的 DB2 Unicode “测试” 数据库,打开 DB2 命令窗口,发出语句来指定 Unicode 编码集合和支持的区域,如 清单 1: (}L6J}.E{  
    z'?bt51),  
    c !;/~-1  
    <O_@{$Zb8X  
    清单 1. 创建用于存储 XML 数据的数据库 :&j;.YK,V  
                    x +)0n6  
    create database test using codeset UTF-8 territory us ?L_7 B[<  
    r~BN `+  
    Zk)w`\W4W  
    X s4CUij  
    一旦创建了 Unicode 数据库,您就不需要发出任何专门的命令或采取任何进一步措施来使 DB2 能够以它自身分层的格式存储 XML 数据,因为您的 DB2 系统已经准备好了。 1jX1(u<  
    w! sJ671?  
    创建示例表 xS(r%fj  
    a.jRd>7PYN  
    为了存储 XML 数据,请创建包含一个或多个 XML 列的表。这些表充当文档集合的逻辑容器;在幕后,DB2 实际上使用了不同的存储方案来存储 XML 和非 XML 数据。然而,使用表作为管理各种受支持的数据格式的逻辑对象,简化了管理和应用程序开发问题,特别是当需要在一个单独的查询中集成不同的数据格式时。 */SINJ  
    _(qiJPp  
    您可以对 DB2 表进行定义,使其只包含 XML 列、只包含传统 SQL 类型的列或者同时包含两者。本文对后一种情况进行了建模。清单 2 中的例子连接到 “测试” 数据库,并创建了两个表。第一个是 “items” 表,追踪关于货物的销售情况和顾客对货物的评价信息。第二个表追踪的是关于 “客户” 的信息,包括关于联系信息的数据。注意 “comments” 和 “contactinfo” 是基于新的 DB2 XML 数据类型,而所有其他的列都是基于传统 SQL 数据类型的。 hOG~ :P~3  
    Efd$u5A  
    Ux*n@/K/Bt  
    UwMWpb+o  
    清单 2. 创建用于 XML 数据的表 _!g6)VH2@  
                    JUtRMA}t  
    connect to test; MFM3y  
    create table items ( :E8H8U%4  
      id          int primary key not null, [ '3Z1^L:  
      brandname  varchar(30), PHgxhlw&  
      itemname    varchar(30), += -9  
      sku        int, ||6.[@M*Y  
      srp        decimal(7,2), |R1s}-5e #p#分页标题#e# 
      comments    xml #k:$  
    ); tRsO2  
    create table clients( N\ )O]d  
      id          int primary key not null, j(\2@Dg\  
      name        varchar(50), ufuEkr  
      status      varchar(10), A&u`e  
      contactinfo xml \\B3 O  
    ); 7 D/ `U39  
    , g R'j  
    uTY`%'M0w  
    PP4`,~N(  
    如果您仔细地查看这些表定义例子,您将注意到 “comments” 和 “contactinfo” 列都没有进行 XML 文档内部结构的定义。这是 DB2 的一个重要特性。用户不需要为了存储数据而预定义一个 XML 数据结构(或者,更准确地说是一个 XML 模式)。事实上,DB2 可以在一个单独的列中存储任何格式良好的 XML 文档,这意味着不同模式的 XML 文档 —— 或没有和任何注册的模式关联的文档 —— 都可以存储在相同的 DB2 列中。当我们讨论如何在 DB2 中存储数据时,本文将深入讨论这个特性。 ?_D oW  
    > fBNgZ  
    创建视图 6ICCsVqp  
    p3#rss  
    您可以随意地在包含 XML 数据的表上创建视图,就像您可以在只包含传统 SQL 数据类型的表上创建视图一样。清单 3 中的例子创建具有 “Gold” 状态的客户的一个视图: C/ xs"+pX  
    M" qQ  
    l#}$.R8  
    e)6fP\l4#  
    清单 3. 创建一个包含 XML 数据的视图 eHI- >0w  
                    24|/d  
    create view goldview as 6yjcn"Q:0  
    select id, name, contactinfo Tl?.=,k  
    from clients where status='Gold'; 8l ~/4  
    &8T-:"  
    /M[}o't!]i  
    9ivfjKs$-G  
    关于索引的一点说明 Y $blfWli  
    :6(D{-o  
    最后,没有必要在 XML 列上创建专门的索引来提高数据的查询速度。因为这是一篇介绍性文章,而且示例数据很少,所以本文不会涵盖到那个主题。然而,在生产环境中,定义一个适当的索引对实现最佳的性能来说很关键。查看本文结尾部分的 “参考资料”,以助于了解 DB2 的新索引技术。 a 3":L=BG  
    Eg5Dvow  
    存储 XML 数据 w5Y Mksc  
    z@x k$lO  
    创建好表之后,现在您就可以用数据填充它们了。您可以通过直接发出 SQL INSERT 语句来完成这项工作,或者通过调用 DB2 IMPORT 工具在后台发出 INSERT 语句。 b//?!4*J<  
     N!UU4"  
    使用 INSERT 语句 g:!*}0%lu]  
    2l<{g{  
    使用 INSERT,您可以直接向 DB2 中填充原始的 XML 数据。如果您已经编写了一个应用程序并在变量中存储了 XML 数据,那么这可能是最容易的方法。但是如果您只是刚开始使用 DB2 Viper,并且不想编写应用程序,那么您可以交互地发出 INSERT 语句(我发现使用 DB2 Command Editor 是很方便的,虽然您也可以使用命令行处理器,如果您更喜欢那么做的话)。 p[gWAQH  
    v5=h6mV`  
    要使用 DB2 Command Editor,请启动 DB2 Control Center。从顶端的下拉菜单 “Tools” 中选择 Command Editor,将出现一个单独的窗口,如 图 1 所示。 ,$GA=HF  

    F16)&qf@$  
    3ywEYE3.P  
    ?OI/Ui'  
    图 1. DB2 Command Editor )7 XaS}j  #p#分页标题#e#
    1l*e }4\  
    xj( f?P1  
    在上面的窗格中输入下列语句: mnjV?2`  
    ]kc"FE  
    F+nf:VZ5  
    h\c*I8|  
    清单 4. 交互地插入 XML 数据 +wrDF ^T  
                    jb!]:9H8  
    connect to test; ::9Nx`  
    insert into clients values (77, 'John Smith', 'Gold', 3j0 4'n  
      xmlparse(document '<addr>111 Main St., Dallas, TX, 00112</addr>' l$ZkE3b  
      preserve whitespace)  GkN5y*0'L  
    ) :OrUWK'  
    &~+]DF1\  
    Z,k7sf  
    -_*H+0<Xf  
    单击左侧的绿色箭头来执行该命令。 !'>n;m )V  
    =oQI@|,X  
    注意,联机提供 XML 数据(如 清单 4 所示)需要您调用 XMLPARSE 函数,以把文档从字符值转换成 XML 类型值。本例中的输入文档相当简单 。如果文档很大或者很复杂,把 XML 数据键入到像清单 4 所示的 INSERT 语句中是不切实际的。在大多数情况下,您使用主机变量或者参数标记编写一个应用程序来插入数据。您将发现本文带有一个简要的 Java 代码编写例子。然而,由于这是一个介绍性的教程,所以我们不会详细地讨论应用程序开发主题。相反,我们将讨论使用数据填充 DB2 XML 列的另一种选择 —— 使用 IMPORT 工具。 ZGQBEgD(bM  
    2N&Xf0,f  
    使用 DB2 IMPORT c/AH`};, *  
    @bLH^@X  
    如果您准备在文件中包含 XML 数据,DB2 IMPORT 工具为您提供了一个使用数据填充 DB2 表的简单方式。您不需要编写应用程序,只需要创建一个定界的 ASCII 文件,其中包含您想要装载到表中的数据。参数为存储在文件中的 XML 数据指定了适当的文件名称。 h|FK7H  
    lAzGltqy  
    您可以使用选择的文本编辑器创建一个定界的 ASCII 文件。(按照惯例,这些文件通常都是 .del 类型的)。文件中的每一行都代表了导入到表中的一行数据。如果行中包含 XML Data Specifier (XDS),IMPORT 将读取包含在引用的 XML 文件中的数据,并把数据导入到 DB2 中。例如,图 2 中的第一行包含了 Ella Kimpton 的信息,包括她的 ID、姓名和顾客状态。她的联系信息也包括在 Client3227.xml 文件中。 `:S)p  
    Y?S#zIm  

    WUY WSp  
    %UZE$4 =F  
    图 2. 输入到 DB2 IMPORT 的示例定界 ASCII 文件 >3?I<`?mNx  
    N Sh<2d>(B  
    !blfv  
    Client3227.xml 文件的内容如 图 3 所示。就像您看到的,文件包含了 Ella Kimpton 的地址、电话号码、传真号码和电子邮件等 XML 元素。 g #K.e(\  
     +qll{  

    V` z$N  
    \*?"bd  
    图 3. 示例客户 XML 文件 SQf7qAW8  
    !vK\3- D  
    Afs6</E\?  
    如果您并不是对所有希望插入的行都有 XML 文件,那么您可能对导入数据感到好奇。这是很容易做到的,忽略输入文件的 XDS 信息即可。例如,图 4 中的 items.del 文件忽略 Item 3641(“Dress to Impress” 套装)的 XML 文件名。结果这一行的 XML 列不包含任何数据。 %s_* J[|  
    Rxsso=3 #p#分页标题#e# 

    :b>aK={pL  
    flCqdzYr,  
    图 4. 示例定界 ASCII 文件中的一行没有 XML Data Specifier ~8So`o9q  
    ^J38PQGYX  
    X &+b:;  
    有了 XML 文件和定界的 ASCII 文件,您现在就可以使用 DB2 IMPORT 了。清单 4 中的下面这个语句将 C:/XMLFILES 目录中的 clients.del文件中指定的内容导入到 “clients” 表中。 7WroFA4 K  
    6hJea?  
    oK0] .&At  
    _!D{  
    清单 4. 将数据导入到 “clients” 表中 L J0_o^Z  
                    pG|>Cd  
    import from clients.del of del xml from C:/XMLFILES insert into user1.clients; 3Uz9b35$  
    Jm. F"BN  
    ;uV8o< XZ  
    HHw}!u  
    如 图 2 所示的 clients.del 包含了六行数据,包括对六个 XML 文件的引用。成功地执行 IMPORT 命令后的结果输出如 图 5 所示。 F~<%hQm/  
    @yu u~(x%  

    ep/{SR  
    gTtw1^4)  
    图 5. DB2 IMPORT 的示例输出 !N9R|$$=2  
    2 T4`,FP  
    QC"n66bR  
    独立软件供应商,例如 Exegenix,提供了将 Word、PDF和其他文档格式转换成 XML 的工具,以便于导入到 DB2 中。(参见 参考资料,获得关于 Exegenix 的更多信息。) b8;l54j{>  
    _go>g(GTO  
    o`zl0 M  
    验证 XML 数据 ur.cJI4`  
    A$:l^7 !  
    INSERT 和 IMPORT 示例只是讨论向表中写入格式良好的 XML 数据。它们并不对数据进行验证 —— 也就是说,它们不验证数据是否符合特定的 XML 模式,并因此坚持使用确定的结构。控制 DB2 那么做是可能的,然而,还是让我们研究另外一种方式来完成这项任务: T]tTVh^  
    S_ yEs  
    步骤 1:创建 XML 模式 dt)I KC  
    _K1*h^Fs   
    为了验证 XML 数据,您需要定义一个 XML 模式,来指定可接受的 XML 元素、它们的顺序和数据类型,等等。 XML 模式是一个 W3C 行业标准并且是用 XML 编写的。尽管解释 XML 模式的特性超出了本文的范畴,但是 Web 上有各种教程可供参考(参见 “参考资料”)。 swV6X;  
    $P7ZzZ  
    有许多方式可以开发 XML 模式,从使用您喜爱的文本编辑器到手动创建模式,再到使用工具图形化地设计或生成模式。独立软件供应商,例如 MDXSYS Limited,提供了这样的 XML 工具,IBM 也通过它的 Java™ 集成开发环境提供了 XML 模式生成支持。 @xE7w;3Wx  
    HgMN}r$  
    例如,使用 IBM WebSphere® Studio,您可以将 Client3227.xml 文件(如 图 3 所示)导入到 Web 项目中。使用鼠标右击,并选择 Generate -> XML Schema。这将为特定的输入文件生成一个有效的 XML 模式,如 图 6 所示。然后您就可以修改该文件(如果需要)并将其注册到 DB2。 (OM/<yMe^  
    X<w* 2C.  

    #p#分页标题#e#{Un5y(W  
    '>)*szp]  
    图 6. 使用 WebSphere Studio 从一个 XML 文件生成 XML 模式 q3=+kz  
    aCf &_9  
    ZW{Q66  
    让我们假定您需要使 XML 模式相当灵活,从而使您可以收集不同顾客不同类型的联系信息。例如,某些顾客可能向您提供多个电话号码或电子邮件地址,而其他顾客则没有提供这么多。 ;Kr#}y$dn  
    21(- * gf  
    图 7 所示的 XML 模式源自 WebSphere Studio 生成的模式,提供了这种灵活性。它包括关于给定元素所允许的最小和最大出现次数(“minOccurs” 和 “maxOccurs”)的附加规范。在本例中,不要求顾客向您提供任何您想要收集的联系信息。然而,如果顾客选择给您电子邮件信息,该模式将启用一致性文档来包含最多 5 个电子邮件地址(即 5 个 “email” 元素值)。 A>_=Y>u!S  

    jJr|FH(9P  
    O{_oTX=  
    ,bPZz[ L  
    图 7. 用于客户联系信息的示例 XML 模式 m"AEj4 H  
    $h|9#R^HJ  
    cwwY*Ldo3=  
    就像您已经注意到的那样,XML 模式也包含类型信息。尽管 图 7 所示的模式只指定所有的基本元素都被视为字符串,但是大部分生产 XML 模式也使用其他数据类型,比如整数、小数、日期,等等。如果您针对一个作为 INSERT 或 IMPORT 操作一部分的给定模式来验证 XML 文档,那么 DB2 将自动向您的 XML 文档添加类型注释。 'mIup] F.  
    lirgTe  
    步骤 2: 注册 XML 模式 h lIB</~  
    17o*ly_$  
    创建了一个适当的 XML 模式之后,您就需要向 DB2 注册该模式。IBM 提供多种方式来完成这项任务。您可以从 DB2 Control Center 运行图形化的向导来指导您完成该过程,调用系统提供的存储过程,或直接发出 DB2 命令。在此让我们使用第二种方法,因为它能够帮助您更容易地理解在您那一端 DB2 实质上进行的操作。 ;+TPE/-  
    )=mI2 !p  
    如果您的模式非常大,您可能需要在尝试注册它之前增加应用程序堆的大小。例如,发出下列语句: O9[G3x89  
    aJSFEuj#  
    5L4< ;p  
    R;AR  
    清单 4. 增加应用程序堆大小 kp.AT>)  
                    gaMR;Dtc2M  
    connect to test; Ze1V _  
    update db cfg using applheapsz 10000; BClmeN  
    p:2 W]+)  
    ]mc 7'  
    ;Wh 3-  
    接下来,注册您的 XML 模式。如果您的 XML 模式没有引用其他 XML 模式,您可能需要用单个命令来注册并完成该过程。否则您还将需要发出单个命令来注册您最初的 XML 模式,添加其他需要的模式并完成注册过程。当模式文件变的非常大时,通常把它的内容分成多个文件来提高可维护性、可读性和重用性。这类似于把一个复杂的应用程序或组件分解为多个模块。关于这个主题的细节,请参考 W3C “XML Schema primer”(参见 “参考资料”)。 g:Ls*Bnz  
    Pa3i~L,U  
    本文使用了一个简单、独立的 XML 模式。您可以使用下面这个命令将其向 DB2 注册: ~$nS\  
    7B>4k4Tv  
    b'rKg`d  
    b%{Y</|  
    清单 5. 注册 XML 模式 B$ bjQBG%{  
                    Qj#{vj8{  
    register xmlschema 'http://mysample.org' from 'C:/XMLFiles/ClientInfo.xsd' as U^bhMDo>  
    user1.mysample complete; s7:*yxW%/U  
    -I81d_"  
    t*+5< b;  
    hAt ^YWa #p#分页标题#e# 
    在本例中,ClientInfo.xsd 是 XML 模式文件的名称,它位于 C:/XMLFiles 目录中。该 XML 模式将被注册到 SQL 模式 “user1” 和 XML 模式 “mysample” 下的 DB2 的内部存储库中。本例中的 http://mysample.org 参数只是一个占位符,它指定 XML 实例文档所引用的统一资源标识符 (URI);许多 XML 文档使用名称空间,这是用 URI 指定的。最后,“complete” 子句将指示 DB2 完成 XML 注册过程,以便模式可以用于验证 XML 数据。 ;;7 je  
    ;D<~*O  
    值得注意的是,模式注册过程没有指定模式将应用到表的哪个(些)列。换句话说,模式不等于 SQL 列约束。一个给定的模式可以验证不同表中的各种 XML 列。然而,验证不是自动的。DB2 允许任何格式良好的 XML 文档存储在 XML 列中。如果您想在存储之前验证一个已注册的模式数据,那么您需要指示 DB2 完成这项任务。 sxC&wexNQV  
    .\jQXk>T  
    步骤 3:导入具有验证的 XML 数据 DU>Aqk{8[  
    m!vK3Li<  
    当创建了一个 XML 模式,并将它完全注册到 DB2 中之后,您现在就可以在将 XML 数据插入或导入表中的时候,让 DB2 对这些数据进行验证。现在我们头脑中有了模式验证,再来回顾一下先前的 IMPORT 场景。 M8hFWQSk  
    0<@?  
    如果您已经填充了 “clients” 表,您会发现可以非常方便地删除它的内容,或者删除和重新创建表。这只在当您计划像以前一样向表中添加相同的数据时才需要。回想一下被定义为在客户 ID 列上具有一个主键的 “clients”,尝试导入重复的行将失败。 [{*YBx~25^  
    @Gr*B=d  
    为了在将 XML 数据导入到 “client” 表时能够对其进行验证,请使用 DB2 IMPORT 的 XMLVALIDATE 子句。清单 6 中的下面这个语句将指示 DB2 使用您先前注册的 XML 模式 (user1.mysample) 作为默认的 XDS (XML Data Specifier),在将它们插入到 “client” 之前验证 clients.del 文件中指定的 XML 文件。 TuF0Us*  
    IF TYYj0\)  
    xeXfQ4)w  
    ifA5f3'  
    清单 6. 导入具有验证的 XML 数据 AU#?sZ'ms'  
                    cA7^(]@4?  
    import from clients.del of del xml from C:/XMLFILES xmlvalidate using xds default  } 86*ng:P1  
    user1.mysample insert into user1.clients; /ZRkSn~k%  
    3AE,5!t$  
    FuVIhEi*  
    v"x%[_O%  
    如果 DB2 确定一个 XML 文档不符合指定的模式,那么与该文档相关的整个行都将会被拒绝。图 8 阐释了从 IMPORT 操作的示例输出,在该操作中的六行有一行因为它的 XML 文档不符合指定的模式而被拒绝。 ^Yb5 +jd@  
    Z{b2  

    \fgs19@i  
    tjt^ 9  
    图 8. 来自 DB2 IMPORT 的示例输出,其中一行被拒绝 {C7. PJ,  
    !QdT.j93+  
    cH'*<iuK  
    值得注意的是,XMLVALIDATE 也可以与 INSERT 语句一起使用,以指示 DB2 在插入之前验证 XML 数据。该语法与 IMPORT 例子所示的相似,即在调用 XMLVALIDATE 子句时指定一个已注册(和已完成)的 XML 模式。(参见 “一个简单的 Java 例子”,获取关于这方面的更多信息。) :$e/+N/Err  
    C{`1_W n  
    QeooW4O  
    #-j8 kL\4  
    Up L>!#:  
    ms0<;7x  
    JR|,O/;V  
    回页首 `k~umT G  
    X uJk 7g;  
    c]3y<i,  
    p6+9UGV*2  
    =yn<9MFe[  
    结束语 .:r] n  
    7}{Aw<0( #p#分页标题#e# 
    DB2 Viper 提供了一个重要的新能力来支持 XML,包括一个新的 XML 数据类型和底层的引擎级组件,能够以有效的方式自动存储和处理 XML 数据。为了帮助您快速掌握这些特性,这篇文章描述了如何创建一个用于存储 XML 文档的测试数据库和示例表。还回顾了如何用 XML 数据填充数据库。最后总结了 DB2 针对用户提供的模式来验证数据的能力,并提供了示例来向您展示如何入门。 !35z=v3ji  
    q!([bIp+  
    现在您已经学习了如何使用 DB2 的新的 “原生” XML 能力存储 XML 数据。至于如何查询那些数据,您将在后续文章中看到,后续文章将向您介绍 DB2 的新的 XQuery 支持,以及它对 SQL 的扩展(有时候叫做 “SQL/XML”)。 ~~XsAA~"  
    }:y,=X%-  
    致谢 d(8v&hI4  
    OBpGqIhf  
    感谢 Rav Ahuja、Matthias Nicola 和 Gary Robinson 对文本提出的宝贵意见。 qD e .gT  
    wFnzo!  
    IkG",dAE6  
    AxF7`: e*  
    HJ^&tz{  
    e(e EnYEA  
    }w_f:f  
    _kc.GX  
    回页首 QT)AUP o/  
    4Ihh~d  
    y`m&t%  
    L}+8[kd#kk  
    {1'+NhE  
    下载 *CPF!|  
    (;N#~4xry  
    描述 名字 大小 下载方法 D* Lg Qy  
    Sample code samples.zip 4KB  FTP|HTTP u 0e?U\Rh  
    X]CziYQ  
    关于下载方法的信息  Get Adobe® Reader® V,C!=2  
    r&SQos@sT  
    VXK<OPox  
    giNL7"mZ~  
    参考资料 7jmA Q7wx  
    Upc/Uuy"  
    学习 V13:\&g  
    ]FH@: ZPl  
    您可以参阅本文在 developerWorks 全球站点上的 英文原文。 DVQi5kL  
    jl5wj  
    -bG~ .FD  
    DB2 Viper Web 站点: 更多地了解 DB2 对 XML 的支持。 sn6An}   
    `6M%cWj{6`  
    1D1:Cca  
    “DB2 Viper 新特性”(developerWorks,2006 年 2 月):获取关于 DB2 测试版中新的 XML 技术的概览。 .=zm:_EPp;  
    hnK%>,iPB  
    b5}3z$M  
    Exegenix 提供了工具,可以帮助您将 Word、 PDF 和其他文档格式转换成 XML,用于导入到 DB2 中。 S\|1(`5D]  
    I;L-?TPU  
    Bc#uMYlx}  
    XML 模式: ~FaB R=v  
    Web 上可以得到的各种教程 解释了 XML 模式的特性。 RXoVA\J)  
    oF{e-9+?  
    z|c?v c  
    W3C XML Schema primer 提供了一个关于 XML Schema 工具的轻松易读的描述,主要是帮助快速地理解如何使用 XML Schema 语言创建模式。 D,0h L%5  
    ktXIa?a(  
    UFD{w9Ou  
    “Firing up the Hybrid Engine”(DB2 Magazine,2005 年第 3 季度):阅读关于 IBM 的混合式数据库管理系统的更多资料。 a+LGUG]'Y  
    V,Lz6WW2  
    o/ Dk"  
    System RX: One Part Relational, One Part XML(SIGMOD conference,2005 年):了解关于构建一个复合关系型和 XML DBMS 的架构和设计方面的信息。 a2r{Ki  
    IO|=~  
    b~j<l\  
    “Native XML Support in DB2 Universal Database”(VLDB conference,2005 年):阅读关于 DB2 XML 支持的更多资料。 U[yU?]ZbX  
     ,*%22M #p#分页标题#e# 
    *%5/mx9>  
    “Managing XML for Maximum return”(IBM, 2005 年 11 月):这本白皮书研究了 DB2 对 XML 支持的业务收益。 \; ?   
    _v.x^*9  
    mP,oWM  
    “结合使用 DB2 原生 XML 与 PHP”(developerWorks,2005 年 11 月):使用传统关系型数据库技术对比和对照 DB2 的新 XML 支持。 ]B?}2V^  
    9q"t-L*X:  
    Deqj2Jv  
    随时关注 developerWorks 技术活动和 webcasts。 BFk)|(Q,l  
    m?jw+Ul'  
    xDTy7$KZD  
    developerWorks Information Management 专区:了解关于 DB2 的更多信息。寻找技术文档、how-to 文章、教程、下载、产品信息,等等。 =l.E+JX_Q  
    ]<mwL. G  
    获得产品和技术 p.BD4t$  
    b  _TNgY  
    使用 IBM 试用软件 构建您的下一个开发项目,该软件可以从 developerWorks 直接下载。 KN%N<!sz  
    |'p dg!  
    }b4= ~ r  
    xc=["#  
    讨论 Y4}.];.;p  
    <kW4gjQD  
    通过参与 developerWorks blogs 加入 developerWorks 社区。 $gEQy2# Z  
    6-Tf_Z,x  
    m(Z6q0pE+  
    ~B1F5fW  
    +*4UPh} |  
    zrN7vB4  
    关于作者 q^ng$MB2)i  
    ~/AE$!g  
    L@_~5S  
    !cA}cNS@}j  
      C. M. Saracco 在 IBM 硅谷实验室的 DB2 XML 组织内工作。她主要的研究领域是数据库管理、XML、Web 应用程序开发和相关内容。

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多