• No results found

The database The database

N/A
N/A
Protected

Academic year: 2023

Share "The database The database"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

XML and Databases XML and Databases

Siddhesh Bhobe

Persistent eBusiness Solutions

(2)

Outline of the talk Outline of the talk

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(3)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(4)

The database The database

We can model the database with a document node and its associated element node:

<?xml version=“1.0” ?>

<myDatabase>

table1 table2 ...

tablen

</myDatabase>

Order of tables is immaterial

(5)

The table The table

Each table of the database is represented by an element node with the records as its children:

<customer>

record1 record2 ...

recordm

</customer>

Again, order of the records is immaterial, since the relational data model defines no ordering on them.

(6)

The record The record

A record is also represented by an element node, with its fields as children:

<custRec>

field1 field2 ...

fieldm

</custRec>

The name is arbitrary, since the relational data model doesn't define a name for a record type

(7)

The field The field

A field is represented as an element node with a data node as its only child:

<custName type="t">

d

</custName>

If d is omitted, it means the value of the fields is the empty string.

The value of t indicates the type of the value

(8)

Example Example

<?xml version=“1.0” ?>

<myDatabase>

<customers>

<custRec>

<custName type=“String”>Robert Roberts</custName>

<custAge type=“Integer”>25</custAge>

</custRec>

<custRec>

<custName type=“String”>John Doe</custName>

<custAge type=“Integer”>32</custAge>

</custRec>

</customers>

</myDatabase>

(9)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(10)

Generating XML from relational data Generating XML from relational data

Step 1 : Set up the database connection

// Create an instance of the JDBC driver so that it has // a chance to register itself

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newInstance();

// Create a new database connection.

Connection con =

DriverManager.getConnection(jdbc:odbc:myData, “”, “”);

// Create a statement object that we can execute queries with Statement stmt = con.createStatement();

(11)

Generating XML (cont.) Generating XML (cont.)

Step 2 : Execute the JDBC query

String query = “Select Name, Age from Customers”;

ResultSet rs = stmt.executeQuery(query);

(12)

Generating XML (cont.) Generating XML (cont.)

Step 3 : Create the XML!

StringBuffer xml = “<?xml version=‘1.0’?

><myDatabase><customers>”;

while (rs.next()) {

xml.append(“<custRec><custName>”);

xml.append(rs.getString(“Name”));

xml.append(“</custName><custAge>”);

xml.append(rs.getInt(“Age”));

xml.append(“</custAge></custRec>”);

}

xml.append(“</customers></myDatabase>”);

(13)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(14)

Storing XML in relational tables Storing XML in relational tables

Step 1 : Set up the parser

StringReader stringReader = new StringReader(xmlString);

InputSource inputSource = new InputSource(stringReader);

DOMParser domParser = new DOMParser();

domParser.parse(inputSource);

Document document = domParser.getDocument();

(15)

Storing XML (cont.) Storing XML (cont.)

Step 2 : Read values from parsed XML document

NodeList nameList =

doc.getElementsByTagName(“custName”);

NodeList ageList =

doc.getElementsByTagName(“custAge”);

(16)

Storing XML (cont.) Storing XML (cont.)

Step 3 : Set up database connection

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newIn stance();

Connection con =

DriverManager.getConnection(jdbc:odbc:myDataBas e, “”, “”);

Statement stmt = con.createStatement();

(17)

Storing XML (cont.) Storing XML (cont.)

Step 4 : Insert data using appropriate JDBC update query

String sql = “INSERT INTO Customers (Name, Age) VALUES (?,?)”;

PreparedStatement pstmt = conn.prepareStatement(sql);

int size = nameList.getLength();

for (int i = 0; i < size; i++) { pstmt. setString(1,

nameList.item(i).getFirstChild().getNodeValue());

pstmt.setInt(2,

ageList.item(i).getFirstChild().getNodeValue());

pstmt.executeUpdate(sql);

}

(18)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(19)

XML on the Web (Servlets) XML on the Web (Servlets)

public void doGet(HttpServletRequest req, HttpServletResponse resp)

{

resp.setContentType("text/xml");

PrintWriter out = new

PrintWriter(resp.getOutputStream());

… generate XML here, as before…

out.println(xmlGenerated);

out.flush();

out.close();

}

Appropriate XSL can be inserted for display

(20)

XML in IE 5.0

XML in IE 5.0

(21)

Let’s insert the XSL…

Let’s insert the XSL…

<?xml version=“1.0” ?>

<?xml-stylesheet type="text/xsl"

href="http://myServer/Customer.xsl"?>

<myDatabase>

<customers>

<custRec>

<custName type=“String”>Robert Roberts</custName>

<custAge type=“Integer”>25</custAge>

</custRec>

… other records here …

</customers>

</myDatabase>

(22)

XML with XSL in IE 5.0

XML with XSL in IE 5.0

(23)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(24)

XML support in Oracle XML support in Oracle

Oracle8i and interMedia

XML Parsers and XSL Processors (Java, C, C++, and PL/SQL)

XML Class Generators (Java and C++)

XML SQL Utility for Java

XSQL Servlet

(25)

Oracle8

Oracle8 i i and and inter inter Media Media

run Oracle XML components and

applications inside the database using JServer - Oracle8i's built-in JVM

interMedia Text allows queries such as find

"Oracle WITHIN title" where "title" is a section of the XML document

(26)

XML Parsers in Oracle

XML Parsers in Oracle

(27)

XML Class Generator for Java

XML Class Generator for Java

(28)

XML SQL Utility for Java XML SQL Utility for Java

(Generating XML) (Generating XML)

(29)

XML SQL Utility for Java XML SQL Utility for Java

(Inserting XML) (Inserting XML)

(30)

XSQL Servlet

XSQL Servlet

(31)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(32)

XML API for databases XML API for databases

Ramnivas Laddad, JavaWorld, Feb 2000 Ramnivas Laddad, JavaWorld, Feb 2000

blend the power of a database with the features of XML

most XML tools work with the SAX or DOM API

implement the same APIs directly over a database, enabling XML tools to treat databases as if they were XML documents. That way, we can obviate the need of converting a database.

(33)

XML API with database

XML API with database

(34)

Mapping XML into relational data

Generating XML using Java and JDBC

Storing XML

XML on the Web

XML support in Oracle

XML API for databases

Conclusion

(35)

Conclusion Conclusion

XML to relational data is easy (?)

Lots of tools, support for XML in databases emerging… research, as well as

commercial!

However, there are still a lot of unresolved issues… we’ll look at them in XML and Challenges.

References

Related documents

Edara Pavan, Ahmed Shareef, Vaibhav Selot Database based Email System... Background LDAP Authentication Data Design

Since August 2013, book coverage has expanded. Along with the existing book series, book content now includes monographs, edited volumes, major reference works and graduate

However, a different interpretation can be used, where the associated time refers to the time when the information was actually stored in the database; that is, it is the value of

 To control the granting and revoking of relation privileges, each relation R in a database is assigned and owner account, which is typically the account that was used when

In object-relational databases, the approach is essentially that of relational databases: the data resides in the database and is manipulated collectively

Step 0  Create a database with images and their details; Step 1  Start from the first image of database and proceed step 2 until last image is arrived; Step 2  Find

Using the installed search engine for modelling disulphide-rich polypeptides, it is also possible to search the non-redundant databases using particular disulphide bond

Figure 16: selecting data from database using LabVIEW Figure 17: writing a new data to the database using LabVIEW Figure 18: updating data to the database using LabVIEW Figure