Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Extensible Storage Engine wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Oracle Database wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Relational model wikipedia , lookup
Integrating a Heterogeneous Environment using XML Sandeepan Banerjee Director, Oracle Server Technologies The Problem Synthesized Information Multiple domain-specific applications – Manufacturing, Inventory, Supply Chain, Financial, … Information is trapped within these applications Financial Application CRM Application Excel Files on Disk E-Mail and Document Contract Management Repositories Application How does an organization get a consolidated view of its information – in real time ? Technical Challenges Domain-specific information – Replication does not make sense Independent operation of applications – Access to information has to be in real-time Different access method for each application – Each application has its own protocol and access method What architecture can best accommodate my present and future needs ? – – – Complexity: Avoid the n by m matrix Flexibility: Add new sources easily Time to market: Within days, not months What is XML-based Data Integration? XML-based Data Integration or Enterprise Information Integration (EII): Create aggregated views using XQuery Get information from diverse sources in XML Consume synthesized information XML Data Integration Example XQuery Engine Synthesized Information Order Tracking J2EETM CA EIS JDBC Parts Inventory Database HTTP Shipment Tracking Web Service Technologies Involved Why XML? – Different data formats Why XQuery ? – Declarative way to query XML documents Why J2EETM ? – Standards-based infrastructure platform Why XML Database ? – – – Native XML storage XML data management Performance optimizations XQuery Engine XML Database J2EETM Platform XML-based Data Integration Comparison with Existing Technologies Difference Application Integration Data Warehousing Traditional Report Generation Similarity More about data pumping and synchronization among systems Involves data adapters, data translation and transformation Explicit ETL steps required; large data volume; batch loading, not real-time Optional cache pre-population step similar to the “loading” step SQL & relation-based vs. XQuery & XML-based Query-based Cannot handle nonrelational sources XQuery Status • XQuery is emerging as the consensus ‘native’ query language for XML • Expected W3C Recommendation in late 2005 • Oracle 10gR2 is the first mainstream commercial database release to support XQuery • Plan to release under an event in 10gR2 XQuery Example Assume a document – emp.xml <empset> <emp empno=“21” ename=“SCOTT” salary=“120000”/> <emp empno=“22” ename=“JONES” salary=“344000”/> </empset> To get the names of employees with salary > 200000 for $i in document(‘emp.xml’)/empset let $j = 200000 where $i/@salary > $j return $i/@ename Result (attribute node) JONES Another Example Customer/Address/Zip ShipTo/Address/Zip Supplier/Location/AddressForTaxCalculation/Zip Customer/Address/Work/City/Zip Customer/Address/Home/City/Zip Shipper/DropOffLocation/US/California/SFO/Zip + any other zip nested to any unanticipated level count ( for $i in doc("contacts.xml")/Contact where $i//zip eq 94065 return $i) Example III: Auction/Bids Say we have 3 heterogeneous data sources that yield their contents as XML – Item Description comes from a Filesystem – User Information comes from LDAP/DB – Bid Information comes from an App Server -- For all bicycles, list the item number, description, highest bid (if any), ordered by item no. for $i in doc("items.xml")//item_tuple let $b := doc("bids.xml")//bid_tuple[itemno = $i/itemno] where contains($i/description, "Bicycle") order by $i/itemno return <item_tuple> { $i/itemno} { $i/description } <high_bid>{ max($b/bid) }</high_bid> </item_tuple> XQuery and SQL Existing relational applications will continue to use SQL, and Oracle will remain the industry’s best implementation of SQL New applications based on XML will use XQuery, and Oracle will be the industry’s best implementation of XQuery Oracle will support XQuery both in the database and in the mid-tier – Use the mid-tier engine when you want to query nondatabase sources Intelligent ‘query pushdown’ from mid-tier to db when possible Can mix-and-match XQuery and SQL in same query XQuery is different from SQL Navigation-oriented (using Xpath expressions) Different type system (XMLSchema based simple types) Identity-based (XML Node identities and document order) Namespace aware name-resolution (functions, variables, element creation) XML-Item based vs Row-based Results are heterogeneous sequences Does not have all SQL extensions (e.g. data warehousing etc..) XQuery Mid-tier Architecture Other Data sources XQuery XQueryX XPath XQJ API Driver XQuery Java Engine DB Drivers JDBC Driver Java XMLType SQL + XQuery or XQueryX XQuery DB Architecture XQJ API XQuery Aware SQL Engine Mid-Tier XQuery Engine User SQL Compiler XQuery XMLQuery, XMLTable Compiler XQuery Type check Normalization SQL SQLX/XPath XQuery Parser Optimizer, Execution Engine D E M O N S T R A T I O N XML Query Oracle XML Database (XML DB) Native XML storage – Available since Oracle Database Release 9.2 Inherits RDBMS features: Security, Transaction,… XML-specific features – XML indexing, XPath & XSLT support, XML schema validation, XML partial update Supports SQL/XML – Allows blending relational and XML data operations Leveraging Oracle XML DB XML DB can be an XQuery source – – Can define XML views of relational data XQuery engine can rewrite query into SQL/XML XML DB could also be used for caching – Efficient storage & indexing for large data sets Can leverage security framework of XML DB – For both source and cache Datasources Databases – Relational+ XML Views, Object-Relational, CLOB, Compact XML (future) Mid-tier sources – files, cache, JCA datasources Bind (an existing DOM) xmldatasrc – Oracle language addition Datasource API – – – – initialize describe execute Fetch iAS XDS Architecture Query XDS Client API’s Applications using XDS JSP Tags EJB Builder Web Service Tool e.g. Portals, Reports etc XML Data Synthesis J2EE Security Framework Cached XML Data Source Meta-data XDS Cache Security XQuery Result Repository XQuery Subsystem XDS XQ4J/JXQI Oracle Enterprise Manager Caching XQuery Engine Service XMLDataSource modules Stored Query Cached XML Data Source In- CCI-XML XML Data source adaptors RDBMS Web Services Files HTTP Web Cache Java Functions J2CA EAI JMS Oracle SAP Apps XML DB Mem ory JCache File system Example – XDS usage User registers webservice as datasource XDS creates an XQuery module automatically User Query for querying webservice import module namespace wss=“datasrc/stockws”; for $i in wss:getcompanies() return wss:get_stock_price($i/name) wss – namespace prefix for the loaded module JNDI lookup to get datasource implementation XDS adapters implement datasource All Your Searches! Search with any language – SQL/XQuery/XSL Search anywhere - mid tier or backend Search anything -any XML/relational content Search everything – – XML visualization of all data (backend) XML based adapters provide XML content for all data in midtier (XDS) Search any form – text based/structured Search any size - Scalable solution Search any time - Unbreakable solution More Information XML in general – http://www.oracle.com/technology/tech/xml/index.html XML Query – http://www.oracle.com/technology/tech/xml/xquery/index.html XML DB – http://www.oracle.com/technology/tech/xml/xmldb/index.html QUESTIONS ANSWERS