Ⅰ 怎样将xml文件存入access数据库中
文件/获取外部数据/导入...
在导入对话框最下面的文件类型选(*.xls)
然后是导入数据表向导,按步骤来就可以了,excel的格式最好能直接对上access,不然导进去表就乱了
按照access的使用方法既可读取调用
希望能帮助你。
Ⅱ 支持xml字段类型的数据库有哪些
sql2005数据库引擎引入了新的 xml 数据类型,这种数据类型支持在数据库中存储 XML 文档和片段。XML 实例可以存储在用 xml 类型创建的列、存储过程参数或变量中。
Ⅲ 干货分享|优炫数据库支持多业务场景(二)
上期分享中,我们介绍优炫数据库支持的数据存储方式。
戳: 干货分享 优炫数据库支持多业务场景
本期,我们来讲讲优炫数据库支持的多种数据类型。
基本数据类型存储与管理
优炫数据库拥有完备的数据类型,内置数据类型包括 数字类型、货币类型、字符类型、日期/时间类型、布尔类型、枚举类型、网络地址类型、位串类型、文本搜索类型等, 支持使用 serial 类型创建表自增列。
通常为了加快指定过滤条件下从表中查询数据的速度,可以为表的某个字段或某几个字段建立索引。数据库对基本数据提供多种索引类型:B-tree、Hash、GIN(倒排序索引)和 BRIN(数据库块范围索引)。每一种索引类型使用了一种不同的算法来适应不同类型的查询。 默认情况下, CREATE INDEX命令创建适合于大部分情况的B-tree索引。
XML/JSON数据类型存储与管理
优炫数据库内置半结构化XML、JSON、JSONB数据类型。
xml数据类型可以被用来存储XML数据,它比直接在一个text域中存储XML数据的优势在于,它会检查输入值的结构是不是良好,并且有支持函数用于在其上执行类型安全的操作。xml类型可以存储结构良好(如XML标准所定义)的“文档”,以及“内容”片段,它们由XML标准所定义,这意味着内容片段中可以有多于一个的顶层元素或字符节点。通过表达式来评估一个特定的xml值是一个完整文档或者仅仅是一个文档片段。
JSON类型强制检查数据有效性,使用专门的操作符和内置函数操作数据,保留空格,重复键和顺序等。JSONB是解析输入后保存的二进制数据,删除了数据中的空格、调整了顺序、优化了存储、保留最后一个重复键值,可被索引。和 JSON 一样,JSONB支持嵌入式的文档和数组。JSONB 由若干个键值对存储为单个实体,这种实体称为文档。 JSONB具有以下几个特性:轻量级(Lightweight),可遍历性(Traversable),高效性(Efficient)。 由于所需存储更小,JSONB通常是首选格式。两者区别在于:JSON类型写快读慢,JSONB类型写慢读快,支持SQL/JSON路径语言。此外,数据库支持对这两类数据的全文检索。
GIS空间类型存储与管理
优炫数据库支持GIS的地理信息应用,支持PostGIS、ArcGIS、超图,支持OpenGIS联盟(开放地理信息系统,OGC)抽象数据类型的SQL3规范,提供对地理矢量数据、3D模型、线性参考数据的组织、存储、空间索引和管理。
Geometry(几何对象类型)是优炫数据库的一个基本存储类型, 空间数据都会以Geometry的形式存储在数据库里,本质是个二进制对象。使用OGC推荐的WKT(Well-Known Text)和WKB(Well-Known Binary)格式进行描述,大幅增加了易用性,WKT与WKB基本数据类型(矢量数据)包括:
l 点 (POINT):例如POINT(0 0);
l 线 (LINESTRING):例如LINESTRING(0 0,1 1,1 2)
l 面 (POLYGON多边形):例如POLYGON((0 0,4 0,4 4,0 4,0 0)) 简单多边形,例如POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) 多边形有一个内部的"孔洞(hole)";
l 多点 (MULTIPOINT):例如MULTIPOINT((0 0),(1 2));
l 多线 (MULTILINESTRING):例如MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4));
l 多面 (MULTIPOLYGON):例如MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)));
l 几何集合 (GEOMETRYCOLLECTION):例如GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))。
栅格空间数据类型raster用于表示jpeg,tiff,png,DEM模型这样文件格式的数据。每一个栅格至少有1个波段,每个波段又有一系列像素值,栅格数据是转换成地理坐标的。可以从数据库外部导入已有栅格数据,也可在数据库内创建栅格数据。下面是一个在数据库内部创建栅格数据的示例:
拓扑类型和函数用于管理拓扑结构,比如面、边界和点。
创建一个带有栅格记录的栅格列的表可以用下面的SQL完成:
如果创建的栅格不依赖于其他栅格,那么可以使用函数:
ST_MakeEmptyRaster,接着使用ST_AddBand添加栅格数据。也可以使用geometry对象来创建栅格你需要使用函数ST_AsRaster。可能还需要和其他函数比如函数ST_Union 或函数 ST_MapAlgebraFct 或者其他地图代数系列函数联合使用。甚至还有一些根据一些已经存在的栅格表创建新的栅格表的可选函数。例如可以使用函数ST_Transform 根据一个已有的栅格表在其他投影系中创建一个新的栅格表。然后通过下SQL命令创建一个空间索引:
通过空间索引R-Tree实现空间数据查询和操作,R-Tree将数据分解为矩形(rectangle)、子矩形(sub-rectangle)和子-子矩形(sub-sub rectangle)等。它是一种可自动处理可变数据的密度和对象大小的自调优(self-tuning)索引结构。
图数据存储与管理
图数据以图关系这种数据结构存储,把图数据的顶点和边信息存储到关系型数据类型中,这些信息包括:
l 顶点(Vertices):一个实体一个顶点,一个实体可以有多个属性。
l 边(Edges):两个实体之间的连接线。
l 属性:实体和边都可以有多个属性。形象举个例子,一个实体对应关系表中一行记录,一个实体的属性代表关系表中这行记录的所有字段和值构成的键值对。
在优炫数据库中图数据通过关系型数据进行存储,这些数据与图模型中的数据相对应。例如通过下SQL语句建立存储图数据的表:
然后新增加数据,后续就可以根据这些数据进行图相关的计算和分析了。
时序数据存储与管理
时序数据存储和管理,通过把时序数据存储到关系型数据类型中。时序数据是指时间序列数据。时间序列数据是同一统一指标按时间顺序记录的数据列。在同一数据列中的各个数据必须是同口径的,要求具有可比性。时序数据可以是时期数,也可以时点数。时间序列分析的目的是通过找出样本内时间序列的统计特性和发展规律性,构建时间序列模型,进行样本外预测。
文档/图片/视频类型存储与管理
优炫数据库可存储任意未知具体内容的图片、声音、视频等非结构化数据,支持 GB 级大对象数据类型与流式数据访问。可借助于数据库图形化管理工具、应用程序、第三方工具等查看这些非结构化数据。根据业务需要也可借助数据库插件读取或识别这些非结构化数据的内容用于数据分析。
优炫数据库支持多种二进制数据类型,包括:Bytea、OID、Blob、raw、Varbinary、Longvarbinary。
自定义数据类型存储与管理
优炫数据库可自定义数据类型、索引、函数等数据库对象。 新增加的数据类型可以是新数据类型,也可以是已知几个数据类型的复合数据类型。
模分析型数据库用户可在数据库中使用CREATE TYPE或CREATE DOMAIN命令增加新的数据类型;可通过自定义函数或存储过程对数据进行各种处理。
CREATE TYPE在当前数据库中注册一种新的数据类型,定义数据类型的用户将成为它的拥有者。五种形式的CREATE TYPE,它们分别创建组合类型、枚举类型、 范围类型、基础类型或者 shell 类型。shell 类型仅仅是一种用于后面要定义的类型的占位符,通过发出一个不带除类型名之外其他参数的CREATE TYPE命令可以创建这种类型。在创建范围类型和基础类型时,需要 shell 类型作为一种向前引用。
CREATE DOMAIN创建一个新的域。 域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如,几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。
Ⅳ 数据库的类型
数据库大致可以这么分类:
1关系数据库
1.1大型商业数据库:支持数据存储量大,访问效率高,适合大型企业应用,收费较高,具体包括:
oracle
db2(ibm)
sybase(这个是比较早的,公司现在不做数据库了)
sql
server,版本包括2000,2005,2008,
2012等
1.2
中小型应用数据库:
sql
server
2000
acess
visual
foxpro
1.3
中小型开源数据库:
mysql(这个开源数据库在一些大型应用中会以集群的方式使用)
postgresql
sqlite
1.4嵌入式数据库:
sqlite也可以算在这里
1.5
列存储模式数据库:主要用于研究和数据仓库应用
monetdb
2
面向对象数据库
berkeley
db(现在已经被oracle买下了)
oracle也提供了面向对象的功能
3
xml数据库,这类数据库一般是附属于关系数据库功能的,只有研究型的是处理纯xml文档的
db2
,附加xml处理版本
oracle,里面包含xml查询功能
sqlserver,包含xml数据查询功能
4
nosql数据库,目前大型互联网公司和微博等网站广泛使用的数据存储系统,典型的有:
hbase
cassandar
mongodb
还有很多,这里不逐一列列举了
Ⅳ 关系数据库中如何存储xml数据
XML文档的一个普通存在的问题是如何持久保存(Persist) XML文档。在一个关系数据库中存储XML文档是一个非常常用的方法,因为当前关系数据库的使用非常广泛。
将XML文档插入到数据库中不是简单的方法,这其中需要很多其它额外的考虑。现在我提供了一些技巧,你可以使用这些技巧在关系数据库中存储XML文档。
1、文档表:
一个最简单和容易的方法是,在一个具有单一文本域的数据库中建立一个表,由此你可以在表中存储XML数据。由于这些特定数据库和特定XML文档,这一文本域可以是一个二进制大型对象(BLOB,binary large object)。有些数据库需要存储的是大量的BLOB数据而不是文本。
这一方法的优点是,将数据存入表中变得相当简单,而且重新获得也同样很容易。这种文档表的管理也很方便。
这种方法的缺点在于你将可能无法进行一些有用的文本搜索,并且在放置特定文档时也会碰到困难,因为没有任何方法来识别表中的文档;
2、主键表:
下一个比较复杂的方法是使用一个主键表(keyed table)。这种方法与文档表非常相似,但此时你的表中包含两个域:一个唯一的主键和XML文档。使用这种方法,你既可以具有存储和获得整个XML文档的简洁性,也可以使用一些管理这些唯一主键的复杂操作;
建立主键的一种通用方法是使用XML文档中的MD5求和检验。请记住如果你想在表中包括多份XML文档,这一方法远不足够。在这种情况下,你可以添加额外的key fields标识键列。
与文档表一样,主键表很容易执行,它可以在表中查找特定的文档。然而,与文档表一样,你仍然不能执行任何文本查询;
3、有限离散表:
这一方法更加复杂,但它给你带来更多的灵活性。使用有限离散表,你可以建立用于存储有限分散的XML信息的表,这是什么意思?请看以下的例子:
假设你具有一个顺序文档。在文档的根部(Root)有一个Order元素,这一元素包括CustomerInfo, ItemInfo, 以及hippingInfo元素。在数据库中,你可以建立一个OrderDoc表,表中包含一个ID域,一个CustomerInfoId域,一个ItemInfoId域,一个ShippingInfoId域。然而,你还可以建立一个CustomerInfoId表,一个ItemInfoId表,一个ShippingInfoId表。这些表都包含很多信息相关的各自的ID域,这些信息包括用户,选项,邮寄信息。在这一表中,还包含着其它额外的等级。比如,CustomerInfo表包含AddressInfo域,即从AddressInfo表中引用的入口。
这种方法的优点是,允许你更紧密地建立XML数据的模型。这种方法使得你进行数据的一些成熟的查询。它也使得数据的使用性更强,因为你不再需要XML分析器来读取数据。
不足之处是这种方法需要更多的精力来开发和维护。这意味着每一文档都需要解析成分离的部分,然后存储在数据库中。如果这一过程没有得以很好管理,有可能会丢失一些数据。而且,这也意味着,当从一个数据库中获得一个XML文档时,你不得不连接这些分散的部分。
Ⅵ XML与关系数据库的关系
数据库技术及其应用系统经历了从层次数据库、网状数据库到关系数据库以及面向对象数据库的发展,在传统的商业和事务处理领域内逐步成熟,取代了原有的基于文件系统的数据处理方式,成为计算机信息系统中的重要基础和支柱。但随着Internet的飞速发展,Web的出现改变了人们习惯的处理方式,也给数据库技术提出了必须面对的重要问题:即如何有效地存储和管理Web上的数据(文档),使其既能被高效地操作和维护,又能在Internet平台上方便地表示和交换。
XML技术自出现以来发展非常迅速,在许多领域内得到广泛的支持而有着广阔的应用前景。例如电子数据交换、电子商务等更是将XML作为一种基础性、支柱性的技术来看待。
1、数据库简史
数据库系统是随着计算机技术的不断发展,在特定的历史时期、特定的需求环境下出现的。在1946年的第一台计算机到20世纪60年代这漫长的20年里,计算机操作系统主要局限于文件的操作,对数据的管理也主要是通过文件系统来实现。进行计算所需要的各种数据存放在各自的文件里,使用这些数据时将文件打开,读取文件中的数据到内存中,当计算完毕后,将计算结果仍旧写入到文件中去,它的不足主要集中在无法对数据进行有效的统一管理。针对文件系统的重要缺点,人们逐步发展了以统一管理数据和共享数据为主要特征的系统,即数据库系统。1964年,美国通用电气公司开发成功了世界上的第一个数据库系统IDS(IntegratedDataStore)。IDS奠定了网状数据库的基础,并得到了广泛的发行和应用,成为数据库系统发展史上的一座丰碑。1969年,美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagement System),同样在数据库系统发展史上占有重要的地位。
70年代初,E.F.Codd在总结前面的层次、网状数据库优缺点的基础上,提出了关系数据模型的概念及关系代数和关系演算。在70年代,关系数据库系统无论从理论上还是实践上都取得了丰硕的成果。在理论上确立了完整的关系模型理论、数据依赖理论和关系数据库的设计理论;在实践上,世界上出现了很多着名的关系数据库系统,比较着名的如SystemR、INGRES、Oracle等。
与文件系统相比,数据库系统有几个方面的特点:向用户提供高级的接口;向用户提供非过程化的数据库语言(即SQL语言);查询的处理和优化;并发控制;数据的完整性约束。
进入80年代之后,计算机硬件技术的飞速提高促使计算机应用不断深入,产生了许多新的应用领域,例如计算机辅助设计、计算机辅助制造、计算机辅助教学、办公自动化、智能信息处理、决策支持等。这些新的领域对数据库系统提出了新的要求。但由于应用的多元化,不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系,因而出现了百家争鸣的局面,产生了演绎数据库、面向对象数据库、分布式数据库、工程数据库、时态数据库、模糊数据库等新型数据库的研究和应用。
2、XML简介
XML推荐标准1.0版发布于1998年2月,之后迅速在全球掀起了XML应用的浪潮。XML是一种描述型的标记语言,与HTML同为SGML(标准通用标记语言,ISO-8879国际标准)的一种应用。由于XML在可扩展性、可移植性和结构性等方面的突出优点,它的应用范围突破了HTML所达到的范围。
一篇XML文档由标记和内容组成。XML中有六种标记:元素(elements)、属性(attributes)、实体引用(entityreferences)、注释(comments)、处理指令(processinginstructions)和CDATA段(CDATAsections)。XML与HTML最显着的不同是XML文档中引入了“文档类型声明”(Document Type Declarations)。DTD使文档可以与分析器交流关于它的内容的元信息。DTD的出现,赋予了XML文档可扩展性、结构性和可验证性,使XML具备了类似于数据库的一些性质,可以利用XML来组织和管理信息;又可以与HTML一样在浏览器中方便地表示,在Internet上高效地传递和交换。考虑到与HTML的兼容,DTD并不是XML文档必需的成份。具有DTD的XML文档称作“Valid”,否则就是“Well-formed”。
目前,处理XML文档的方式主要有SAX与DOM两种。SAX(SimpleAPIforXML)是一种基于流的、以事件处理方式工作的接口。SAX 2.0在2000年5月发布,增强了许多功能,包括对名字空间的支持。DOM(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低、速度快,但对文档的操作是只读的;DOM的处理能力强大,但要求大量的系统资源,尤其是对于大的文档。而后还出现了Xpath和Xpointer用以完成XML的搜索和转换;XSL、XSLT和SOAP用以完成XML的远程对象访问,XML Query Languages的出现使XML查询语言可用于任何XML文档。
3、XML与数据库
XML文件是数据的集合,它是自描述的、可交换的,能够以树型或图形结构描述数据。XML提供了许多数据库所具备的工具:存储(XML文档)、模式(DTD,XMLschema,RE1AXNG等)、查询语言(XQuery,XPath,XQL,XML-QL,QUILT等)、编程接口(SAX,DOM,JDOM)等。但XML并不能完全替代数据库技术。XML缺少作为实用的数据库所应具备的特性:高效的存储、索引和数据修改机制;严格的数据安全控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等。因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但却不适用于用户量大、数据集成度高以及性能要求高的作业环境。
随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战。数据库技术的应用是建立在数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围;数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用;数据库属于高端应用,需要昂贵的价格和运行环境。而随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。XML的好处是数据的可交换性(portable),同时在数据应用方面还具有如下优点:(1)XML文件为纯文本文件,不受操作系统、软件平台的限制;(2)XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理;(3)XML不仅可以描述结构化数据,还可有效描述半结构化,甚至非结构化数据。
4、XML文件的存储
XML文件的存储方式有三大类:(1)将文件存储于文件系统(StoringDocumentsinthe File System);(2)将文件存储于BLOB(Storing Documents in BLOBs),利用数据库的事务管理、安全、多用户访问等优点。此外许多关系数据库提供的检索工具可以进行全文检索、近似检索、同义词检索和模糊检索。其中某些工具将会支持XML,这样就可消除将XML文件作为纯文本检索所带来的问题。(3)将文件存储于原生XML数据库(Native XML Databases,NXD)。NXD是专用于存储XML文件的数据库,支持事务管理、安全、多用户访问、编程API和查询语言等。与其它数据库的唯一区别在于其内部模型是基于XML的。其中,最重要的存储方式当属原生XML数据库。
4.1原生XML数据库
原生XML数据库(NativeXMLDatabases)为XML文档定义了一个(逻辑)模型,并根据该模型存取文件。这个模型至少应包括元素、属性、PCDATA和文件顺序。其例子有XPath数据模型、XMLIn-foset以及DOM所用的模型和SAX 1.0的事件。它以XML文件作为其基本存储单位,对底层的物理存储模型没有特殊要求。例如,它可以建在关系型、层次型或面向对象的数据库之上,或者使用专用的存储格式,比如索引或压缩文件。
NXD最适于存储以文档为中心的文件。这是由于NXD保留了文件、顺序、处理指令、注释、CDA-TA块以及实体引用等,而支持XML的数据库XED(XML-enableddatabase)无法做到。XED是在原有数据库基础上扩展了XML支持模块,完成XML数据和数据库之间的格式转换和传输。从存储粒度上,可以把整个XML文档作为RDBMS表中一行,或把XML文档进行解析后,存储到相应的表格中。为了支持W3C的一些XML操作标准,Xpath、XED提供一些新的原语(如Oracle9iR2增加了一些数据包来操作XML数据等),并优化了XML处理模块.
Ⅶ XML技术与数据库的发展趋势分析
数据库技术及其应用系统经历了从层次数据库 网状数据库到关系数据库以及面向对象数据库的发展 在传统的商业和事务处理领域内逐步成熟 取代了原有的基于文件系统的数据处理方式 成为计算机信息系统中的重要基础和支柱 但随着Internet的飞速发展 Web的出现改变源激了人们习惯的处理方式 也给数据库技术提出了必须面对的重要问题 即如何有效地存储和管理Web上的数据(文档) 使其既能被高效地操作和维护 又能在Internet平台上方便地表示和交换
XML技术自出现以来发展非常迅速 在许多领域内得到广泛的支持而有着广阔的应用前景 例如电子数据交换 电子商务等更是将XML作为一种基础性 支柱性的技术来看待
数据库简史
数据库系统是随着计算机技术的不断发展 在特定的历史时期 特定的需求环境下出现的 在 年的第一台计算机到 世纪 年代这漫长的 年里 计算机操作系统主要局限于文件的操作 对数据的管理也主要是通过文件系统来实现 进行计算所需要的各种数据存放在各自的文件里 使用这些数据时将文件打开 读取文件中的数据到内存中 当计算完毕后 将计算结果仍旧写入到文件中去 它的不足主要集中在无法对数据进行有效的统一管理 针对文件系统的重要缺点 人们逐步发展了以统一管理数据和共享数据为主要特征的系统 即数据库系统 年 美国通用电气公司开发成功了世界上的第一个数据库系统IDS(IntegratedDataStore) IDS奠定了网状数据库的基础 并得到了广泛的发行和应用 成为数据库系统发展史上的一座丰碑 年 美国国际商用机器公司(IBM)也推出世界上第一个层次数据库系统IMS(InformationManagement System) 同样在数据库系统发展史上占有重要的地位
年代初 E F Codd在总结前面的层次 网状数据库优缺点的基础上 提出了关系数据模型的概念及关系代数和关系演算 在 年代 关系数据库系统无论从理论上还是实践上都取得了丰硕的成果 在理论上确立了完整的关系模型理论 数据依赖理论和关系数据库的设计理论 在实践上 世界上出现了很多着名的关系数据库系统 比较着名的如SystemR INGRES Oracle等
与文件系统相比 数据库系统有几个方面的特点 向用户提供高级的接口 向用户提供非过程化的数据库语言(即SQL语言) 查询的处理和优化 并发控制 数据的完整性约束
进入 年代之后 计算机硬件技术的飞速提高促使计算机应用不断深入 产生了许多新的应用领域 例如计算机辅助设计 计算机辅助制造 计算机辅助教学 办公自动化 智能信息处理 决策支持等 这些新的领域对数据库系统提出了新的要求 但由于应用的多元化 不能设计出一个统一的数据模型来表示这些新型的数据及其相互关系 因而出现了百家争鸣的局面 产生了演绎数据库 面向对象数据库 分布式数据库 工程数据库 时态数据库 模糊数据库等新型数据库的研究和应用
XML简介
XML推荐标准 版发布于 年 月 之后迅速在全球掀起了XML应用的浪潮 XML是一种描述型的标记语言 与HTML同为SGML(标准通用标记语言 ISO 国际标准)的一种应用 由于XML在可扩展性 可移植性和结构性等方面的突出优点 它的应用范围突破了HTML所达到的范围
一篇XML文档由标记和内容组成 XML中有六种标记 元素(elements) 属性(attributes) 实体引用(entityreferences) 注释(ments) 处理指令(processinginstructions)和CDATA段(CDATAsections) XML与HTML最显着的不同是XML文档中引入了 文档类型声明 (Document Type Declarations) DTD使文档可以与分析器交流关于它的内容的元信息 DTD的出现 赋予了XML文档可扩展性 结构性和可验证性 使XML具备了类似于数据库的一些性质 可以利用XML来组织和管理信息 又可以与HTML一样在拍裂闹浏览器中方便地表示 在Internet上高效地传递和交换 考虑到与HTML的兼容 DTD并不是XML文档必需袭罩的成份 具有DTD的XML文档称作 Valid 否则就是 Well formed
目前 处理XML文档的方式主要有SAX与DOM两种 SAX(SimpleAPIforXML)是一种基于流的 以事件处理方式工作的接口 SAX 在 年 月发布 增强了许多功能 包括对名字空间的支持 DOM(Document Object Model)则是在对XML文档进行分析后 在内存中建立起一个完整的树结构 然后在此基础上进行各种操作 简单地比较来看 SAX对系统资源要求低 速度快 但对文档的操作是只读的 DOM的处理能力强大 但要求大量的系统资源 尤其是对于大的文档 而后还出现了Xpath和Xpointer用以完成XML的搜索和转换 XSL XSLT和SOAP用以完成XML的远程对象访问 XML Query Languages的出现使XML查询语言可用于任何XML文档
XML与数据库
XML文件是数据的集合 它是自描述的 可交换的 能够以树型或图形结构描述数据 XML提供了许多数据库所具备的工具 存储(XML文档) 模式(DTD XMLschema RE AXNG等) 查询语言(XQuery XPath XQL XML QL QUILT等) 编程接口(SAX DOM JDOM)等 但XML并不能完全替代数据库技术 XML缺少作为实用的数据库所应具备的特性 高效的存储 索引和数据修改机制 严格的数据安全控制 完整的事务和数据一致性控制 多用户访问机制 触发器 完善的并发控制等 因此 尽管在数据量小 用户少和性能要求不太高的环境下 可以将XML文档用作数据库 但却不适用于用户量大 数据集成度高以及性能要求高的作业环境
随着Web技术的不断发展 信息共享和数据交换的范围不断扩大 传统的关系数据库也面临着挑战 数据库技术的应用是建立在数据库管理系统基础上的 各数据库管理系统之间的异构性及其所依赖操作系统的异构性 严重限制了信息共享和数据交换范围 数据库技术的语义描述能力差 大多通过技术文档表示 很难实现数据语义的持久性和传递性 而数据交换和信息共享都是基于语义进行的 在异构应用数据交换时 不利于计算机基于语义自动进行正确数据的检索与应用 数据库属于高端应用 需要昂贵的价格和运行环境 而随着网络和Internet的发展 数据交换的能力已成为新的应用系统的一个重要的要求 XML的好处是数据的可交换性(portable) 同时在数据应用方面还具有如下优点 ( )XML文件为纯文本文件 不受操作系统 软件平台的限制 ( )XML具有基于Schema自描述语义的功能 容易描述数据的语义 这种描述能为计算机理解和自动处理 ( )XML不仅可以描述结构化数据 还可有效描述半结构化 甚至非结构化数据
XML文件的存储
XML文件的存储方式有三大类 ( )将文件存储于文件系统(StoringDocumentsinthe File System) ( )将文件存储于BLOB(Storing Documents in BLOBs) 利用数据库的事务管理 安全 多用户访问等优点 此外许多关系数据库提供的检索工具可以进行全文检索 近似检索 同义词检索和模糊检索 其中某些工具将会支持XML 这样就可消除将XML文件作为纯文本检索所带来的问题 ( )将文件存储于原生XML数据库(Native XML Databases NXD) NXD是专用于存储XML文件的数据库 支持事务管理 安全 多用户访问 编程API和查询语言等 与其它数据库的唯一区别在于其内部模型是基于XML的 其中 最重要的存储方式当属原生XML数据库
原生XML数据库
原生XML数据库(NativeXMLDatabases)为XML文档定义了一个(逻辑)模型 并根据该模型存取文件 这个模型至少应包括元素 属性 PCDATA和文件顺序 其例子有XPath数据模型 XMLIn foset以及DOM所用的模型和SAX 的事件 它以XML文件作为其基本存储单位 对底层的物理存储模型没有特殊要求 例如 它可以建在关系型 层次型或面向对象的数据库之上 或者使用专用的存储格式 比如索引或压缩文件
NXD最适于存储以文档为中心的文件 这是由于NXD保留了文件 顺序 处理指令 注释 CDA TA块以及实体引用等 而支持XML的数据库XED(XML enableddatabase)无法做到 XED是在原有数据库基础上扩展了XML支持模块 完成XML数据和数据库之间的格式转换和传输 从存储粒度上 可以把整个XML文档作为RDBMS表中一行 或把XML文档进行解析后 存储到相应的表格中 为了支持W C的一些XML操作标准 Xpath XED提供一些新的原语(如Oracle iR 增加了一些数据包来操作XML数据等) 并优化了XML处理模块
NXD一般采用层次数据存储模型 保持XML文档的树形结构 省掉了XML文档和传统数据库的数据转换过程 NXD还适用于存储 天然格式 为XML的文件 NXD还可以存储半结构化数据 在某种特定情形下提高存取速度以及存储没有DTD的文件(良构的文件)
原生XML数据库的结构
原生XML数据库的结构可分为两大类 基于文本的和基于模型的
基于文本的NXD(Text BasedNativeXMLDatabases)将XML作为文本存储 它可以是文件系统中的文件 关系数据库中的BLOB或特定的文件格式 基于文本的NXD与层次结构的数据库很相似 当存取预先定义好层次的数据时 它比关系数据库更胜一筹 和层次结构的数据库一样 当以其它形式比如转置层次存取数据时 NXD也会遇到麻烦 这个问题的严重程度尚未可知 很多关系数据库都使用逻辑指针 使相同复杂度的查询以相同的速度完成
基于模型的NXD(Model BasedNativeXMLDatabases)是根据文件构造一个内部模型并存储这个模型 有些数据库将该模型存储于关系型和面向对象的数据库中 例如在关系型数据库中存储DOM时 就会有元素 属性 PCDATA 实体 实体引用等表格 其他数据库使用了专为这种模型优化了的存储格式 使用专用存储格式的基于模型的NXD如果以文件的存储顺序读取文件 其性能与基于文本的NXD相似
原生XML数据库的特性
原生XML数据库的特性(FeaturesofNativeXML Databases)有 ( )文件集(Document Collections) 支持集合(Collection)的概念 其作用相当于关系数据库中的表和文件系统中的文件夹 ( )查询语言(Query Languages) 最常用的有XPath(对多个文件的查询作了扩充)和XQL 以及专有的查询语言 ( )更新和删除(Updates and Deletes) NXD对文件的更新和删除方式从简单的替换或删除现有文件 到修改当前活动的DOM树 以及用于指定如何修改文件片断的语言 ( )事务 锁定和并发(Transactions Locking and Concurrency) 支持事务处理 锁定通常是对整个文档的 所以多用户并发性相对较低 问题的大小取决于应用程序以及 文件 的构成 ( )原生数据库提供应用程序接口API(Application Programming Interfaces APIs) ( )NXD的一个重要特性是它可以为XML文档提供 往返车票(round trip) 可以将XML文件存放在NXD中 而且再取回 同样的 文件 对于以文档为中心的应用程序来说非常重要 因为CDATA部分 实体用法 注释和处理指令是这些文档不可缺少的组成部分 特别是对于法律和医学文件 按规定这些文档必须要保持原样 ( )外部数据(Remote Data) 某些NXD可包含有外部数据 它来自存储在数据库中的文档 通常这些数据通过OD BC OLE DB或JDBC从关系数据中取出 模型可以是基于表格的或对象 关系型映射 ( )支持元素和属性的索引
结论
XML技术的出现 使数据处理从文件方式到数据库系统再到文件方式的循环 但新的文件方式已经与最初的文件系统有了本质的区别 格式化文档 XML和关系数据库在数据应用和数据管理方面各有优势
lishixin/Article/program/net/201311/12776
Ⅷ 什么是xml数据库
开始讨论XML和数据库之前,我们先回答许多人都遇到过的问题:“XML是数据库吗?”
如果仅按数据库这个术语的本质来看,XML文件就是数据库,它是数据的集合。在许多方面看起来它和其他文件没什么区别 -- 无论如何,每个文件都含有某种类型的数据。作为一种“数据库”格式,XML有一些优势:例如,它是自描述的(所用的标记描述了数据的结构和类型,尽管缺乏语义),可交换的(portable)(Unicode),能够以树型或图形结构描述数据。同样它也有缺点,例如,它显得有些繁琐,由于要对它进行解析和文本转换,所以数据访问速度较慢。
一个更有用的问题就是在较为宽松的意义上,XML及其周边技术是否可以算作“数据库” -- 数据库管理系统(DBMS)。答案是“在某种程度上是(sort of)”。从正面来说,XML提供了许多数据库所具备的东西:存储(XML文档), 模式(DTD, XML schema,RElAX NG 等等), 查询语言(XQuery, XPath, XQL, XML-QL, QUILT等等),编程接口(SAX, DOM,JDOM)等等。从反面来说,它缺少一些作为实用的数据库所应具备的特性:高效的存储,索引,安全,事务和数据一致性,多用户访问,触发器,在查询多个文件等等。
因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但是却不适用于用户量大、数据集成度高以及性能要求高的作业环境。
XML适合于用作所谓“数据库”的一个好例子就是 .ini文件 -- 它包含应用程序的配置信息。与其写一个处理以逗号分隔(comma-delimited)的文件的解析器,开发一种小型的XML语言并写一个解释它的 SAX程序要容易的多。此外,XML允许使用嵌套的实体,而逗号分隔的文件(comma-delimited files)很难做到这点。然而,说它就是数据库还很勉强,因为它是线性读写的,而且仅用在程序开始和结束时。
比较适合于XML数据库的一些复杂的数据集就是个人通讯录(名字,电话号码,地址等),或用于描述浏览器书签以及用Napster偷来的MP3。然而,由于dBase和Access之类的数据库物美价廉,即使在这种情况下似乎也没有多少理由把XML文件作为数据库使用。XML的唯一真正好处就是数据的可交换性(portable),由于有越来越多的工具可以用来对数据库进行XML序列化(serializing),这一点好处似乎也要打些折扣。