CN106560802A - 一种关系数据库与web数据的映射方法 - Google Patents
一种关系数据库与web数据的映射方法 Download PDFInfo
- Publication number
- CN106560802A CN106560802A CN201510637254.9A CN201510637254A CN106560802A CN 106560802 A CN106560802 A CN 106560802A CN 201510637254 A CN201510637254 A CN 201510637254A CN 106560802 A CN106560802 A CN 106560802A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping
- database
- xml document
- xml
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种关系数据库与WEB数据的映射方法通过使用XML作为数据的载体,运用XSL样式表对XML进行转换,并使用反射机制调用EJB中的业务逻辑以使得数据交换节点之间方便地通信。
Description
技术领域
一种关系数据库与WEB数据的映射方法主要涉及计算机数据库开发方面领域。
背景技术
数据交换问题的解决使得企业不同的异构系统之间可以实现最大限度的协同,并能扩展现有数据交换应用,使得孤立的应用系统各业务环节有机地结合起来,建立基于Internet的协作模式,从根本上提高了工作效率。从更深远的角度来说,对数据交换技术的研究将有助于数掘集成的发展,同时它还将促进数据库、数据仓库、虚拟数据库及其它一些相关领域的发展,加速我国的信息化建设。
在数据交换过程中,针对XML的优势,使用XML作为中间数据,用XML在源数据库和目标数据库之间进行数据传递,通过对XML进行解析和转换来完成数据交换。
发明内容
通过国家专利检索没有发现关于此系统方面的申请资料。
关系数据库与XML的基本映射方法有两种:基于模板驱动的映射和基于模型驱动的映射。
一. 基于模板驱动的映射: 基于模板驱动的映射是在一个模板中嵌入带参数的SQL命令,用数据传输如中间件等实体软件进行处理。基于模板驱动的映射是浅层次映射,以XML文档内嵌的SQL执行的数据结果集合为依据,不涉及数据库赖以存在的关系模式或对象模式,当前Microsoft
SQL2000等大多数的产品都属于模板映射,只能应用于在关系数据库和XML文档之间传递数据,不足之处在于它只适合将其它类型的数据转换为XML文档,对于反向的转换就无能为力了,也不支持面向对象数据库之间或关系数据库与对象数据库之间的信息交互。此外,基于模板的转换方法关键是要生成大量合理的模板,为此系统要为用户提供一套生产模板的工具以及相应的指令执行程序。
考虑下面的模板:
<xml version=”1.0”>
<Studentlnfo>
<Intro>The student’S
information</Intro>
<SelectStmt>
Select Sno,Sname,Ssex,Sage,Sdept from Student
</SelectStmt>
<Conclude>that iS all</Conclude>
</StudentInfo>
在文档中嵌入Select语句,当对其进行处理时,每一个Select语句都会被它的结果所代替,用XML形式表现出来:
<xml version=”1.0”>
<Studentlnfo>
<Intro>The student’S
information</Intro>
<Students>
<Row>
<Sno>9500I</Sno>
<Sname>李勇</Sname>
<Ssex>男</Ssex>
<Sage>20</Sage>
<Sdept>CS</Sdept>
</Row>
<Row>
<Sno>95002</Sno>
<Sname>RIJ晨</Sname>
<Ssex>女</Ssex>
<Sage>21</Sage>
<Sdept>MA</Sdept>
</Row>
</Students>
<Conclude>that is all</Conclude>
</Studentlnfo>
二.基于模型驱动的映射: 在基于模型驱动的映射中,当把数据从数据库传送到XML文档或者把数据从XML文档传送到数据库时,用一个具体模型来实现,而不是仅仅依赖内嵌SQL命令,关系数据库依赖关系模型,面向对象数据库依赖对象模型,而XML文档依据Schema或DTD。
基于模型驱动实现数据在数据库和XML文档间的双向传输的关键是在数据库模式和XMLSchema/DTD之间建立双向映射。具体思路是把一个XML文档表示为由数据对象构成的树,每一个元素类型和对象模式中的对象相对应,主要在面向对象数据库中使用,当然,传统的关系.对象模型也可以映射到关系模式中。基于模型驱动的映射是一种深层次的映射,是模式与模式之间的映射。
数据库和XML之问的映射机制大致有两种,分别是基于表格的映射和基于对象的映射,这两种映射都可以在XML文档和数据库之间转换数据。它们的主要区别在于基于表格映射比较简单,转换出来的XML文档格式比较单一,类似于关系表,需要利用XSLT转换语言将单一的XML格式转换成复杂丰富的格式;而基于对象的转换功能比较强大,转换比较丰富,可以根据需要转换成格式多样的XML文档。
(1)表格映射:许多中间件软件包用表格模型在.XML文档和关系数据库之间传递数据。它把XML文档表示为一个单一的表格或者是表格的集合。这样,一个XML文档的结构可以用如下的形式表示:
<database>
<table>
<row>
<columnl>⋯</columnl>
<column2>⋯</column2>
</row>
</table>
</database>
这里关键字“table’’在把数据从数据库传递到XML文档的时候,表示一个单一的结果集,把数据从XML文档传递到数据库的时候,表示一个单一的表格或视图。但是,当结果集合不只一个的时候,或者当XML文档包括多个复杂嵌套的时候,这个传递方式就不适用了。
(2)基于对象的映射方法将数据库中的数据映射为一棵对象树,根据规则将文档的层次结构映射为树状结构(通常把文档中的元素定义为树的节点)。然后把这些对象转换到XML文档中,或者相反。这种模型对于XML文档与面向对象数据库和层次数据库之间的映射非常便利。当需要与关系数据库进行映射时,可以利用传统的“对象一关系"映射技术来实现。
基于模型的映射方法由于有了数据模型的支持,可以完成关系数据库和XML数据之间的双向映射。但是模型的引入也使得XML文档的结构受到了限制,一个XML文档必须符合模型所规定的结构才能将XML文档映射成其它类型的数据,而从其它类型数据转换得到的XML文档也具有某种结构特点。所以基于模型的映射方法的关键在于设计一个灵活的映射模型,而为了更好的支持其双向映射的特点,这个映射模型又必须是易于读懂、易于操纵并能很好的表达关系数据库的各种约束。
JDOM旨是构建一个完整的、基于Java的解决方案,以便从Java代码访问、操作和输出XML数据时就像使用Java语言本身一样简单。
JDOM无缝地整合了现有的XMLAPI标准(如SAX和DOM),并为基本文档操作(使用元素、属性和文本)创建了一套新的类和接I:1。JDOM可以从现有的DOM和SAX数据源读取数据,并且可输出为DOM和SAX可以接受的数据;但它自身不包含解析器。它通常使用SAX解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入1;它还包含一些转换器,以将JDOM表示输出成SAX事件流,DOM模型或XML文档。
JDOM将DOM和SAX的优点整合到一起,成为一个设计轻量、速度快、占用内存少的API。JDOM还提供了足够的文件视图供随机访问XML数据,但它并不要求将整个文件都放迸内存;它允许轻量的实现只在需要时将信息装入内存。JDOM很好地整合了现有的XML API标准,但它并不仅仅是对这些API的一种简单抽象;它汲取了现有的一些API的优秀设计理念,创建了一套新的类和接口,形成了新的设计特色。
(1)JDOM作为Java平台专用的XMLAPI,它尽量利用了Java 2平台的类集及内建的一些支持,为Java程序员提供一个组件丰富并且和Java语言类似的编程环境,让Java程序员用起来感到得心应手。
(2)JDOM没有层次。在JDOM中,XML元素就是Element类的实例,XML属性就是Attribute类的实例,XML文档本身就是Document类的实例。它们总是作为自己的类型被应用,而不是作为一个意义不明确的“节点"。
(3)JDOM是类驱动的。因为JDOM对象就像Document,Element和Attribute这些类的实例,因此创建一个新的JDOM对象就像在Java语言中使用new操作符一样简单。JDOM采用标准的Java编码模式,尽可能使用new操作符而不用复杂的工厂化模式,其对象操作即使对初学者也很方便。
(4)JDOM与JAXP、DOM和SAX紧密地整合在一起,和XML API有很好的互操作性。用JDOM不仅能把文档输出到数据流或阅读器,还可以将文档作为SAX流或者作为DOM文档输出。这种灵活性允许JDOM能在多种环境下使用,或者被添加到已经在使用另一种方法处理XML的系统中去。
(5')JDOM还包括对程序行为的相当广泛的检查机制,以防止用户在XML中做任何没有意义的事情。
综上所述,由于JDOM是基于Java的特定文档模型。因而利用JDOMAPI操作XML文档能够充分发挥Java的平台无关性,便于应用程序在不同计算机平台上进行移植,从而很好的实现Java与XML优点的综合,是一款很优秀的操作XML文档的工具,本文选用JDOM来解析XML文档。
三. 数据库中的数据类型大致分为两大类:普通类型和大对象类型。普通类型是指数据库系统中的一些常见的数据类型,如整型、字符型、布尔型等。大对象类型是指存储大文本(超过2000个字符)、图片、音频等的类型。
LOB数据基本有两大类:CLOB(字符大对象)与BLOB(Z-迸制大对象)。CLOB主要用于存储大文本数据;BLOB用于存储二进制数据,如图像、视频、音频等。LOB数据由于容量太大,一般其存储比较特殊,它并不跟其它数据库存储在同一个数据库表中,而是可以单独存放在不同的表空间里,由一个定位符指向实际的LOB。
(1)基于JDBC的LOB数据的存取技术
一般可以通过各种数据库访问接口(如ODBC、JDBC等)实现对LOB数据的存取。与普通类型数据一样,LOB数据也可以使用各种SOL命令。本文讨论通过JDBC来实现LOB数据的存取。下面以Oracle数据库为例来说明LOB数据的存取过程。
对LOB数据读取一般采用流操作的方法:
Statement stmt=con.createStatement0;
String sql=”select zp from
js where id=l”;
ResultSet rs=stmt.executeOuery(sql);
oracle.sql.BLOB
blob=(oracle.sql.BLOB)rs.getBlob(“zp”);
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(outfile));
BufferedlnputStream in=new BufferedlnputStream(blob.getBinaryStream0);
写入LOB数据
Stmt.executeUpdate(“INSERT INTO JS(Jno,zp)VALUES(‘A0101’,EMPTY—BLOBO)”)
ResultSet rs=stmt.executeOuery(“SELECT zp FROM jS WHERE Jno=’A0101’FORUPDATE”);
oracle.sql.BLOB
blob=(oracle.sql.BLOB)rs.getBlob(“zp”);
BufferedOutputStream out=new BufferedOutputStream(blob.getBinaryOutputStream0);
BufferedlutputStream in=new BufferedlnputStream(new
FilelnputStream(infile));
向数据表中写LOB对象数据不能直接使用INSERT命令,必须先写入一个空的LOB对象,然后进行更新。当需要在异构数据库之间进行大对象数据交换时,可以先使用以上方法将LOB数据从数据库中读出,然后将其随其它数据一起转换到XML文档,最后再用以上方法写入到目标数据库中。
(2)LOB数据在XML文档中的存取当大对象数据从源数据库读取后会形成一个二进制数据文件,这些二进制数据文件不能直接存放到XML文档中,必须要经过适当的转换。因为XML文档中的数据都是文本类型的,它不能识别二进制格式的数据。因此,要将二进制数据嵌入到XML文件中,首先必须将二进制数据编码成合法的字符集才能嵌入到XML文档中。
能够实现二进制数据编码的方法最常用的是Base.64编码法。Base.64编码是一种MIME(Multipurpose Intemet Mail Extension protocol,多用途的网际邮件扩充协议)编码方法。Base.64编码使用一个64个字符的子集(包括A-Z、a.z、0.9、+和/)来表示二进制数据,并使用“="进行填充。这种编码算法每次处理3个字节序列的字符流,每3个字节序列被解析为4个6位的数据单元。每个6位数据的十进制值作为Base.64字母表的索引,以获得相应数据的编码字符,Base.64字母表。
Claims (6)
1.一种关系数据库与WEB数据的映射方法主要特征是基于模板驱动的映射和基于模型驱动的映射。
2.根据权利要求1中的基于模板驱动的映射是在一个模板中嵌入带参数的SQL命令,用数据传输如中间件等实体软件进行处理。
3.根据权利要求2中的浅层次映射,以XML文档内嵌的SQL执行的数据结果集合为依据,不涉及数据库赖以存在的关系模式或对象模式。
4.根据权利要求1中基于模型驱动的映射是数据库和XML文档间的双向传输的关键是在数据库模式和XMLSchema/DTD之间建立双向映射。
5.根据权利要求4中的数据库模式主要是基于表格的映射和基于对象的映射,这两种映射都可以在XML文档和数据库之间转换数据。
6.根据权利要求5中的基于表格的映射是指XML文档表示为一个单一的表格或者是表格的集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510637254.9A CN106560802A (zh) | 2015-10-05 | 2015-10-05 | 一种关系数据库与web数据的映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510637254.9A CN106560802A (zh) | 2015-10-05 | 2015-10-05 | 一种关系数据库与web数据的映射方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106560802A true CN106560802A (zh) | 2017-04-12 |
Family
ID=58485199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510637254.9A Pending CN106560802A (zh) | 2015-10-05 | 2015-10-05 | 一种关系数据库与web数据的映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106560802A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254983A (zh) * | 2021-07-13 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种数据处理方法及装置 |
-
2015
- 2015-10-05 CN CN201510637254.9A patent/CN106560802A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254983A (zh) * | 2021-07-13 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种数据处理方法及装置 |
CN113254983B (zh) * | 2021-07-13 | 2021-10-01 | 卓尔智联(武汉)研究院有限公司 | 一种数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pradhan et al. | Ontonotes: A unified relational semantic representation | |
CN102968306B (zh) | 一种基于数据模型驱动的代码自动生成方法和系统 | |
US7512633B2 (en) | Conversion of hierarchically-structured HL7 specifications to relational databases | |
Grau et al. | OWL 2: The next step for OWL | |
US20110023022A1 (en) | Method for application authoring employing an application template stored in a database | |
Abiteboul et al. | Tools for data translation and integration | |
US20040015834A1 (en) | Method and apparatus for generating serialization code for representing a model in different type systems | |
CN102609255A (zh) | 一种Spring IOC配置文件的生成方法 | |
CN103019689A (zh) | 通用的对象序列化的实现方法 | |
KR101166763B1 (ko) | 웹 상에서 xml 문서의 데이터를 데이터베이스에 통합하는 방법 | |
CN105550176A (zh) | 一种关系数据库与xml的基本映射方法 | |
Alalfi et al. | SQL2XMI: Reverse engineering of UML-ER diagrams from relational database schemas | |
CN106560802A (zh) | 一种关系数据库与web数据的映射方法 | |
CN103020162B (zh) | Cc2000模型转换导入d5000系统的方法 | |
Iglesias-Molina et al. | Devising Mapping Interoperability With Mapping Translation. | |
Pal et al. | XML support in Microsoft SQL Server 2005 | |
Fong et al. | XTOPO: An XML-based topology for information highway on the Internet | |
Della Penna et al. | Interoperability mapping from XML schemas to ER diagrams | |
CN103488639B (zh) | 一种xml数据的查询方法 | |
Williams et al. | VOTable: A proposed XML format for astronomical tables | |
Lee et al. | Modeling imprecise requirements with XML | |
CN103092874A (zh) | 一种基于xml的异构数据交换方法 | |
Li et al. | Research on information transformation based on XMI | |
El Alami et al. | Schema and Data Migration of a Relational Database RDB to the Extensible Markup Language XML | |
Mohan et al. | Conceptual Modeling for XML: A Myth or a Reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170412 |
|
WD01 | Invention patent application deemed withdrawn after publication |