XML基础教程(第二版)(微课版)第9章_第1页
XML基础教程(第二版)(微课版)第9章_第2页
XML基础教程(第二版)(微课版)第9章_第3页
XML基础教程(第二版)(微课版)第9章_第4页
XML基础教程(第二版)(微课版)第9章_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1页第9章XML与数据库本章概述本章的学习目标主要内容第2页本章概述在信息社会中,数据库无处不在,但是随着网络的快速发展,XML成为Web应用中数据表示和数据交换的事实标准。本章重点介绍XML与关系数据及关系数据库的集成。描述了XML的数据交换及存取机制,以SQLServer2005为例,对XML与关系数据库系统互换数据所采用的技术进行较深入的讨论。还介绍了SQLServer2005对XML的支持。通过本章的学习,读者将会了解到XML在数据交换方面的作用及其与数据库技术集成的实现方法。第3页本章的学习目标了解XML与关系数据库集成带来的好处掌握XML的数据交换机制掌握XML的数据存取机制掌握在.NET平台下使用ADO.NET进行XML与关系数据库之间的数据交换了解SQLServer2005对XML的支持第4页主要内容9.1XML与数据库技术的发展9.2XML的数据交换与存储机制9.3XML与数据库的数据交换技术9.4SQLServer2005对XML的支持9.5本章小结第5页9.1XML与数据库技术的发展关系数据库管理系统(DBMS)集中管理大量有用的数据。不同数据库之间很难方便地进行数据交互;Web技术的飞速发展迫切需要高度的信息共享和方便的数据交换,传统的数据库技术很难满足其要求。XML的自描述性、结构化、开放性及数据的平台无关性等特性使其作为异构平台之间数据交换和存储的有效手段已被广泛采纳。XML与关系数据库的紧密集成成为必然趋势。第6页数据库技术的发展上世纪60年代末出现了以层次和网状数据库为代表的第一代数据库系统70年代出现了以关系数据库为代表的第二代数据库系统目前已发展到以面向对象模型为主要特征的第三代数据库系统由于第三代技术还不够成熟,关系数据库系统仍然无可替代地占据着市场的主流地位。第7页XML与数据库技术的结合关系数据库与XML都以结构化的方式提供了存储数据的方法关系数据库的优点安全性能好大数据量的存取检索效率高能进行并发处理支持事物处理及完整性控制等XML相较于传统的关系数据库的优势XML文档中的数据在Web页面上显示时比关系数据库中的数据在页面上的显示节省工作量没有数据兼容性问题第8页XML在数据库中的应用模式通常XML在数据库中的应用模型采用三层架构来实现代理程序运行于中间层访问DBMS中的数据输出XML文档XML利用CSS或XSL技术,XML可以实现基于Web浏览器的多样式可视化显示代理程序可以进行双向的基于事件的数据更新第9页主要内容9.1XML与数据库技术的发展9.2XML的数据交换与存储机制9.3XML与数据库的数据交换技术9.4SQLServer2005对XML的支持9.5本章小结第10页9.2XML的数据交换与存储机制设计XML的初衷是弥补HTML的不足提供一种在Web上表示及存储结构化信息的标准格式,后来由于其与平台无关的数据表示形式而开始被大量用于网络世界中进行数据的转换和描述XML对于在完全不同的数据库系统之间或各种B2B应用之间交换信息相当有用。数据交换已成为XML技术得以快速发展的主要驱动力之一第11页XML的数据交换机制XML分为三层结构数据表现层CSS、DOM和SAX丰富了数据的表现形式及解析方式数据组织层DTD、SCHEMA及语法规则等约束了数据的组织结构数据交换层处于XML最底层第12页XML的数据交换机制本质上,XML定义了在应用间传递数据的结构,这种结构用文本描述,而非二进制形式。形式简单、任何通用的文本编辑器都可读取利用这种机制,程序员可以制订底层数据交换的规范,在此基础上开发整个系统的各个模块,各模块之间传输的是符合既定规则的数据XML还允许为特定的应用制定特殊的数据格式,并且非常适合于在服务器与服务器之间传递结构化的数据。第13页XML的数据交换类型数据发布“同一数据,多次出版”XML的出现及其平台独立性的特点使得跨媒体、多介质的数据发布显得更容易涉及到服务器-浏览器形式的数据交换数据集成涉及服务器-服务器之间的数据交换企业内部的各应用之间需要XML进行数据集成不同企业间也需要XML实现数据交换交易自动化第14页XML的数据存取机制XML数据源XML纯文本文档最基本也最简单,数据存储于文件中,其最大的优点在于可以直接方便地读取,例如加以样式信息在浏览器中显示,或者通过DOM接口编程同其他应用相连。关系型数据库是对第一种来源的扩展,通过数据库系统管理数据,利用服务器端应用(如ASP、JSP、Servlet等)进行动态存取。这种方式最适合于当前最为流行的基于三层结构的应用开发。其他各种应用数据第15页XML的数据存取机制第16页XML的数据存取机制XML文档的数据存取通过DOM读取XML文档中的节点是最基本也是最底层的XML存取技术,DOM提供了一组API来存取XML数据。通过数据源对象(DSO)进行XML数据绑定可以方便地将XML节点同HTML标记捆绑,从XML文档中读写数据。样式单CSS和XSL技术通过给XML数据赋予一定的样式信息使其能在浏览器中以丰富多彩的形式显示出来。第17页XML数据交换技术的工程应用设计与特定领域有关的标记语言异质系统间的通信开发灵活的Web应用软件在Web上发布数据第18页主要内容9.1XML与数据库技术的发展9.2XML的数据交换与存储机制9.3XML与数据库的数据交换技术9.4SQLServer2005对XML的支持9.5本章小结第19页9.3XML与数据库的数据交换技术很多技术都支持XML与数据库的连接。

不同的编程语言或脚本语言需要不同的SQLAPI和XML语法分析器的组合。假设要编写访问数据库的XML应用程序早期的C++程序员需要利用ODBC或OLEDB以及C++XML语法分析器;Java程序员需要JDBC和JavaXML语法分析器;若使用VB和VBScript开发XML应用,则需要微软的ADO和XML语法分析器。.NETFramework3.5SP1面世以后,在.NET开发平台上连接XML与数据库变得更自然、更方便。ADO.NET是微软公司提供的对MicrosoftSQLServer数据库或XML文件以及通过OLEDB、ODBC连接的各种数据源进行一致性访问的技术,它全面支持XML数据呈现。第20页ADO.NET简介第21页ADO.NET简介用于数据库交互的5个主要对象ConnectionCommandDataReaderDataSetDataAdapter每个对象的重要属性及主要方法应掌握第22页.NET中的XML特性XML及其一些相关技术(包括XPath、XSL和XMLSchema)是ADO.NET的基础DataSet对象有非常多的XML操作特性以XML流的形式传输,方便在异构系统间传递数据;以XML的形式表示并存储,可以通过DataSet对象读取XML数据文件或数据流,从而将树型层次结构的XML数据转换为关系型数据结构的形式DataSet有7个用于处理XML的方法和DataSet配合使用的通常是.NET提供的XmlDocument类对象XmlDocument类可以解析XML文档,将其载入内存的文档树中(类似于DOM),以便在程序中操纵这些结构化的数据XmlDocument对象的常用属性和方法第23页从数据库到XML文档使用DataSet对象的XML特性把数据从数据库传入XML文档设置数据库连接字符串传入连接字符串建立Connection对象并打开数据库连接使用DataAdapter对象从数据源中检索数据,并填充DataSet对象调用DataSet类的WriteXml方法把stuDS中存储的数据写入指定的XML文件中并例9-1关闭打开的数据库连接第24页从数据库到XML文档配合使用DataSet对象和XmlDocument对象设置连接字符串。传入连接字符串建立Connection对象并打开数据库连接。使用DataAdapter对象从数据源中检索数据,并填充DataSet对象。构造一个DataTable对象存放数据库中的数据表创建XML文档对象并添加文档声明创建并添加XML文档的根元素把前面检索出的信息加入到XML文档中把得到的XML文档保存为指定文件,关闭数据库连接例9-2第25页从XML文档到数据库用XmlDocument对象访问XML文档,并运用ADO.NET控件把读取的信息写入到关系数据库中设置连接字符串。传入连接字符串建立Connection对象并打开数据库连接。使用DataAdapter对象从数据源中检索数据,并填充DataSet对象创建XmlDocument对象并载入XML文档用XmlElement对象提取XML文档的根元素取根元素的子元素在DataSet对象的数据表中添加一个新行,接收子元素更新DataAdapter对象关闭打开的数据库连接第26页从XML文档到数据库用XmlDocument对象访问XML文档,把得到的信息组织成有效的SQL语句,并运用Command对象通过在关系数据库中执行SQL语句把信息写入到表中设置连接字符串。传入连接字符串建立Connection对象并打开数据库连接。创建XmlDocument对象并载入XML文档用XmlElement对象提取XML文档的根元素取根元素的子元素根据子元素构造进行数据表插入的SQL语句创建SqlCommand对象以执行上述SQL更新语句关闭打开的数据库连接第27页主要内容9.1XML与数据库技术的发展9.2XML的数据交换与存储机制9.3XML与数据库的数据交换技术9.4SQLServer2005对XML的支持9.5本章小结第28页9.4SQLServer2005对XML的支持SQLServer2000对XML提供的支持:在SQLServer中通过HTTP公开数据。将关系数据作为XML公开将XML文档拆分到行集合通过使用XDR(XML数据精简)方案,将XML方案映射到数据库方案,从而创建XML视图使用XPath在XML视图上创建查询第29页SQLServer2005对XML的支持SQLServer2005对XML的增强功能:新增专门的XML数据类型支持XQuery查询,可以把2-D的关系数据组织成层次型XML数据提供XMLDML(数据管理语言),可通过INSERT、UPDATE和DELETE对XML数据片断进行更新提供了面向XML数据的层次性索引——XML索引通过增强分布式查询OPENROWSET的功能,提高同构甚至异构系统之间批量处理XML数据的效率对于SQLServer2000引入的FORXML子句和函数OPENXML提供了更好的支持第30页XML数据类型XML数据类型是SQLServer2005中内置的数据类型可以与其它内置类型(如int、varchar等)同样对待,但是不受关系约束的限制允许用户把XML文档或片段直接保存在表的字段中,还可以创建XML类型的列或变量,并在其中存储XML实例XML数据以大型二进制对象(BLOB)进行存储,可保存最多2GB、最高128层的XML代码。通过将XMLScheme集合与XML类型的列、变量或参数相关联,还可检验XML数据的完整性或类型化XML实例。如果在应用中需要经常查询表中的XML列,还可以对XML列创建XML索引第31页创建包含XML数据列的数据表USEteachingCREATETABLEbooks(bidintPRIMARYkey,bnamenvarchar(30)NOTNULL,descriptionxml)第32页将XML结构的字符串插入到XML数据列中INSERTINTObooksVALUES(1,'XML教程','<booktype="computer"><price>20.00</price></book>')第33页XML类型的方法SQLServer2005中的XML类型有5个用于查询和更新的方法,它们均使用XQuery对XML数据进行定位。XQuery是用于XML数据的查询语言,等同于SQL对数据库的作用XQuery构建于XPath表达式上,是W3C标准query方法value方法exist方法nodes方法modify方法SELECTdescription.exist('/book/type'),description.exist('/book/price'),description.exist('/book')frombooksINSERTINTObooksVALUES(2,'XML技术教程','<booktype="computer"><price>25.00</price></book>')INSERTINTObooksVALUES(3,'数据库应用教程','<booktype="computer"><price>35.00</price></book>')UPDATEbooksSETdescription.modify('insert<publishdate=2012>清华大学出版社</publish>after(/book/price)[1]')WHEREbid=1第34页发布XML数据通过在SELECT语句中加入FORXML子句,SQLServer2005可以支持在服务器端以XML文档的形式返回SQL查询结果。在FORXML子句中,须指定以下XML模式之一RAWAUTOEXPLICITPATH第35页发布XML数据:RAW模式将查询结果集中的每一行转换为名为row的XML元素,行中的每一列都映射为row元素的一个属性row元素中的属性名与对应的列名一致。如:selectsid,sname,sex,specialityfromstudentsforxmlRAW也可以在FORXML子句中指定ELEMENTS选项使得每一列都映射为row元素的一个子元素如:selectsid,sname,specialityfromstudentswheresex=1forxmlRAW,ELEMENTS第36页发布XML数据:AUTO模式将查询结果以嵌套的XML元素返回,SELECT子句中的检索列将映射为属性。若仅查询一个表,则结果与RAW模式相同;若FROM子句中有多个表,则将每个表映射到一个XML元素,SELECT子句中的第一个检索列所在的表形成XML文档中的顶级元素,第二个表形成顶级元素内的子元素,依次类推如:SELECTsname,cname,usually,finalFROMstudents,score,courseWHEREstudents.sid=score.studentnoandscore.courseno=course.coursenoFORXMLAUTO第37页发布XML数据:EXPLICIT模式提供了对XML文档中标记名称及元素的层次结构与嵌套关系的完全控制,由此可最大限度地定义由查询结果生成的XML文档的格式。在这种模式下,检索列可被个别地映射到各种元素或属性。使用EXPLICIT模式的语法很苛刻,必须写相当复杂的SQL查询来指定描述目标XML文档的表结构。很多时候使用PATH模式来替代EXPLICIT第38页发布XML数据:PATH模式提供了一种比较简单的方法进行元素和属性的混合引入附加嵌套来表示复杂属性。作为新增功能,FORXMLPATH子句可以实现FORXMLEXPLICIT的功能但实现起来要简单得多。在PATH模式中,列名或列的别名被作为XPath表达式对待,它们指定了如何将值映射到XML。每个XPath表达式都是一个相对的XPath,它提供了项类型(如属性、元素或标量值)及行元素生成的节点的名称和层次结构。如:SELECTsname,cname,usually,finalFROMstudents,score,courseWHEREstudents.sid=score.studentnoandscore.courseno=course.coursenoFORXMLPATH第39页在表中插入XML数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论