第2章xml与数据库-中山大学信息科学与技术学院本科教育网站内容摘要:
abases) 数据库。 8 第三章 XML 文档 与 数据库的映射 关系数据库的理论依据是关系模型,通过表来表示数据库中的数据,而 XML 文档由 DTD 或 XMLSchema 来定义。 为了在数据库和 XML 文档之间传递数据,必须在文档结构和数据库结构之间建立映射。 即建立文档结构模型与数据库数据模型之间映射关系 , 将 XML 映射到数据库有两种常见的方法:基于表的映射和对象 关系(或基于对象的)映射 [17]。 这两种方法都 是双向的,因此可用于存储和检索 XML 文档。 模板驱动 基于模板驱动的映射没有预先定义文档结构和数据库结构之间的映射关系 [11] ,需要在一个模板中嵌入带参数的命令,并用数据传输诸如中间件等实体软件进行处理,基于模板驱动的映射是一种浅层映射,以 XML 内嵌的 SQL 执行的数据结果集为依据,不涉及数据库赖以存在的关系模式或对象模式板映射。 比如下面的模板: 表单 31 模板 < ?xml version=?> < FlightInfo> < Intro> The following flights have available seats:< /Intro> < SelectStmt> SELECT Airline, FltNumber, Depart, Arrive FROM Flights< /SelectStmt> < Conclude> We hope one of these meets your needs< /Conclude> < /FlightInfo> 注意其中嵌入了一个 SELECT 语句。 当用数据传输中间件进行处理的时候,每一个 SELECT 语句都会被它的结果所代替,用 XML 格式化形式 表现为 : 表单 32 处理后的结果 < ?xml version=?> < FlightInfo> < Intro> The following flights have available seats:< /Intro> < Flights> < Row> < Airline> ACME< /Airline> < FltNumber> 123< /FltNumber> 9 < Depart> Dec 12, 1998 13:43< /Depart> < Arrive> Dec 13, 1998 01:21< /Arrive> < /Row> ... < /Flights> < Conclude> We hope one of these meets your needs< /Conclude> < /FlightInfo> 基于模板驱动的映射可以是相当灵活的,比如,一些产品允许你把结果集放到 XML 文档的任何位置,同时可以对 SELECT 语句设置参数,并且可以使用 for 循环语句和 if 条件语句等。 值得注意的是,当前基于模板驱动的映射只能应用于在关系数据库和 XML 文档之间传递数据。 模型驱动 模型驱动 的数据转换需要通过一些预定义的模型来进行映射。 利用 XML 文档结构对应的数据模型显示或隐式地将其映射成数据库的结构,反之亦然。 尽管它的灵活不如模板驱动方式,由于它是基于具体的数据模型来进行映射的,从而具有简单易用的特点。 模型驱动的映射方式又分为两种 :基于表格的映射和对象 关系映射。 基于表格的映射 它把 XML文档表示为一个单一的表格或者是表格的集合 , 与数据库中的表对应 ,下面是两种情况下的文档结构: 表单 33 表映射(单表) Table Row1 Column_a … /Column_a Column_b … /Column_b Column_c … /Column_c /Row1 Row2 Column_a … /Column_a 10 Column_b … /Column_b … /Row2 … /Table 表单 34 表映射 ( 多表) Tables Table_1 Row1 Column_a … /Column_a Column_b … /Column_b Column_c … /Column_c /Row1 Row2 Column_a … /Column_a Column_b … /Column_b … /Row2 … /Table_1 Table_2 Row1 Column_a … /Column_a 11 Column_b … /Column_b Column_c … /Column_c /Row1 Row2 Column_a … /Column_a Column_b … /Column_b … /Row2 … /Table_2 /Tables 基于表格的映射比较简单, 因为结构与关系数据库的表及结果集匹配,根据这种映射编写代码很容易。 代码执行快、伸缩性好,对某些应用很合适,比如每次一个表在数据库之间传递数据。 但是,基于表的映射也有一些不足之处。 它只能用于非常小的 XML 文档子集。 对存取关系型数据比较适用 , 但不适于格式不符的 XML 文件。 对象 关系映射 对象 关系映射, 将 XML 文件中的数据视为特定的对象树的模型。 在这个模型中,元素及其类型、元素内容或混合内容( 复合元素类型 )通常被视为类。 只具有 PCDATA内容的元素 (简单元素类型 )、属性以及 PCDATA 都被当作简单属性。 然后通过传统的对象 关系映射技术将该模型映射到关系型数据库。 也就是说,类被映射到表格,简单属性被映射到字段,而值为对象属性被映射为成对的主键 /外键。 表单 35 XML 格式的单个销售订单 SalesOrder Number=123 CustName新城工业 /CustName 12 OrderDate20200808/OrderDate Item ItemNumber=1 Description pb大华汽车 /bbr/ 功能完备,外型时尚, 高性价比,终身保修 ./p /Description Price/Price Quantity8/Quantity /Item Item ItemNumber=2 Description pb填塞料 bbr / 铝制 , 一年保修 ./p /Description Price/Price Quantity400/Quantity /Item /SalesOrder 销售订单文档可以被看成一个对象树,其中包括五个类: SalesOrder, Customer, Item, 和 Description。 该文档映射为 表单 36 所示的对象。 表单 36 销售订单文档看成一个对象树 object SalesOrder { number = 123。 13 customer = 新城工业。 Orderdate = 20200808。 items = {ptrs to Item objects}。 } / \ / \ / \ object Item { object Item { Itemnumber = 1。 Itemnumber = 2。 Description = …。 Description = …。 price =。 price =。 quantity = 8。 quantity = 400。 } } 这种映射方法将 XML 文档建模为针对文档数据的一棵对象树 ,然后将这些对象映射到数据库。 它 主要在面向对象和层次数据库中使用,通过传统的关系 对象模型也可以映射到关系数据库中。 14 第四章 XML 文档与 关系数据库的转换 在前言中,本文阐述了 XML 文档与关系数据库的转换 的目的和原因,在这章将具体地介绍 XML 文档与关系数据库的 之间的相互 转换。 XML 文档到关系数据库的转换 将关系数据库中的数据转换为 XML 文档 , 重要的一个问题是,数据库的表中的数据,与转换后的 XML 文档中的数据能否一致,一致应该有三个含义:关系模式 、 数据类型、数据值 [15],也一是数据的结构与内容。 这 涉及 到 许多问题 , XML 文档中涉及的是元素 、 子元素、属性、处理指令、实体、实体引用等概念 , 一个数据库涉及的 是表、记录、字段 、关键字、 主 外键 、 视图、索引等概念。 XML 文档到关系 数据库转换基本规则 XML 文档到关系数据库的 转换 ,主要是元素和属性到表和列的转换 ,规则如下: ( 1) 对每个含有子元素或混合内容的元素生成一个表和一个主键 字段 ; ( 2) 对每个 有混合内容的元素生成一个单独表,该元素保存的 PCDATA 数据, 通过父表主键连接; ( 3) 为每一个元素的单值属性和只出现一次的子元素创建一个字段,字段类型与 XML 数据模式中声明的类型一致。 如果该子元素或者该属性在 XML 中允许为空,则 相应的在数据库中,该字段允许为空,否则反之; ( 4) 为每一个元素的多值的属性或者能在文档中多次出现的子元素创建独立的表,该表与父表通过父表的关键字关联 ; ( 5) 对每个有子元素或含混合内容的子元素,通过父表的主键连接父表到子元素的表。 XML 文档到关系数据库转换 规则 举例 ( 1) 对每个含有子元素或混合内容的元素生成一个表和一个主键字段 ,如 图41 为一 DTD。 〈。 ELEMENT order( orderNum, Date。 , Item*)〉 〈。 ELEMENT orderNum( PCDATA) 〉 15 〈。 ATTLIST order CustNum IDREFS IMPLIED 〉 〈。 ELEMENT Date( PCDATA)〉 〈。 ELEMENT Item( ItemNum, Quantity, PCDATA*)〉 〈。 ELEMENT ItemNum( PCDATA)〉 〈。 ELEMENT Quantity( PCDATA)〉 其中 order 和 Item 含有子元素,将其转换为两表 Table1 order 含有字段 order_pk(r1)1 Table2 Item 含有字段 Item_pk (r1) 图 41 规则一举例 ( 2) 对每个 有混合内容的元素生成一个单独表,该元素保存的 PCDATA 数据, 通过父表主键连接; 如图 42 〈。 ELEMENT order( orderNum, Date。 , Item*)〉 〈。 ELEMENT orderNum( PCDATA) 〉 〈。 ATTLIST order CustNum IDREFS IMPLIED 〉 〈。 ELEMENT Date( PCDATA)〉 〈。 ELEMENT Item( ItemNum, Quantity, PCDATA*)〉 〈。 ELEMENT ItemNum( PCDATA)〉 〈。 EL。第2章xml与数据库-中山大学信息科学与技术学院本科教育网站
相关推荐
, c , d , e} 代表了趋势状况 , ( a , b , c , d , e) 分别代表暴跌、小幅跌、持平、微扬和上扬。 则交易行情记录集 Si 可以按照下列原则映射到交易行情走势集 Ai : 设 Kj = ( Rj +1 Rj) / Rj ,若 Kj ≤ T1 ,则 Aj = a。 若 Kj ∈ ( T1 , T2) ,则 Aj = b。 若 Kj ∈ ( T2 , T3) ,则 Aj
它借助于电子计算机的存贮事件,检索条款,分析手段迅速、可靠,为合同管理人员提供决策支持。 随着建筑技术迅速发展、经济能力的不断扩大, 工程项目的规模越来越庞大,涉及的方面 更广泛 ,合同条款也日益复杂,组成合同文件的部分也越来越多 , 遇到合同履行中的问题时若想 迅捷地处理纠纷就 需要借助于电子计算机。 工程招标投标阶段的合同管理 我国招标投标法规定凡是属于招标范围之内的工程,必须进行招标
燃烧性能及分级 建筑材料及制品的燃烧性能等级 燃烧性能等级 名称 A 不燃材料(制品) B1 难燃材料(制品) B2 可燃材料( 制品) B3 易燃材料(制品) 建筑材料燃烧性能等级判据的主要参数及概念 (多选) ①材料。 指单一物质均匀分布的混合物,如金属、石材、木材、混凝土、矿纤、聚合物。 ②燃烧滴落物 /微粒。 在燃烧试验过程中,从试样上分离的物质或微粒。 ③临界热辐射通量。 火
为 AVISPA 工具集提供一个集成的 GUI界面,使其简单易用。 AVISPA( Automated Validation of Inter Security Protocols and Applications)是由欧洲委员会( European Commission)资助并由欧共体的意大利、法国、瑞士和德国等国的大学或研究机构联合进行的一个项目。 项目启动于 2020 年1 月 1
端面、方形端面 立式铣床 X51 端铣刀 游标卡尺 4 粗车、半精车φ 75 外圆 CA6140 外圆车刀 游标卡尺 5 车 倒角 CA6140 端面车刀 6 钻 扩 铰φ 25 孔 四面组 合钻床 麻花钻、扩孔钻、铰刀 卡尺、塞规 7 钻φ 4 孔 四面组 合钻床 麻花钻 卡尺、塞规 8 钻 铰 精铰φ 10 孔 四面组 合钻床 麻花钻、铰刀 卡尺、塞规 9 钻φ 9 孔 四面组 合钻床
,这时输出端 OUT进入初始态。 (2)当初始值写入计数器以后,要经过一个时钟周期,减法计数器才开始工 作,时钟脉冲的下降沿使计数器进行减 1 计数。 计数器的最大初始值是 0,用二进制计数时 0 相当于 216,用 BCD 码时, 0 相当于 104。 计算机学院 2020 级硬件课程设计 10 (3)对于一般情况下,在时钟脉冲 CLK 的上升沿时,采样门控信号。 对门控信号