Hello,
XML-DBMS is used to transfer data between an XML document and a
relational database. It does this according to a mapping specified in
the map document. The mapping will be different for each different XML
schema (DTD) that you use. That is, you map elements and attributes in
the XML schema to different tables / columns in the database. To
understand how this mapping works, see:
http://www.rpbourret.com/xml/DTDToDatabase.htm
The mapping language is a little more flexible than the mapping
described in this paper, but not much.
Please note that XML-DBMS implements what is known as an "XML-enabled"
database. This is software that allows you to transfer data between the
XML data model (as used in an XML document) and another data model -- in
this case, the relational model.
XML-DBMS does not implement a native XML database on top of a relational
database. A native XML database uses the XML data model directly. For a
description of how this can be done, see:
http://www.informatics.bangor.ac.uk/~rich/research/papers/uwb_rge_IDEAL2000.pdf
The important difference between these two is that a native XML database
can accept any XML document (even if it does not have a schema) and
store it directly in the database. In an XML-enabled database, you must
create a mapping between the XML schema (DTD) and the database schema at
design time. At run time, data is transferred according to the mapping.
See also my answers to your questions below.
-- Ron
meisam sarabadani wrote:
> hi,
>
> while inserting the xml into RDBMS, do we need to specify the
> name of the tables somewhere ?
Yes. In the map document.
> if yes? so what is the benefit
> of insertion?
You can transfer data between an XML document and a specific set of
tables in a relational database. This is useful when you are using XML
as a data transport. XML-DBMS is not designed to store XML documents
directly.
> for example each time we want to insert the DTD
> into RDBMS we need to create the Database and tables after
> that, then inserting the XML content into the created tables ?
XML-DBMS does not allow you to insert a DTD into the database. It allows
you to take data out of an XML document and put it in specific tables in
the database. Similarly, it allows you to construct an XML document
using data in the relational database.
Before you transfer data, you must create the tables in the database and
write a map document that specifies how to transfer data between the XML
document and the database. You only need to do this once. After you have
created the tables and the mapping, you can transfer as much data as you
want.
> it means XML-DBMS can NOT straightforward insert XML document
> into RDBMS ?
That is correct. XML-DBMS does not insert XML documents into the
database. It takes data out of XML documents and puts the data into the
database (and vice versa). It does not store the documents themselves.
For example, it could transfer data from the following XML document:
<Name>
<Given>Ronald</Given>
<Family>Bourret</Family>
</Name>
into the following row in the Names table:
Names
=====
GivenName FamilyName
--------- ----------
...
Ronald Bourret
...
> or it can ? I am confused, please guide me, I
> appreciate your kind helps.