Browse Prior Art Database

Migrating databases between DMBS using XSD and function override.

IP.com Disclosure Number: IPCOM000177761D
Original Publication Date: 2008-Dec-30
Included in the Prior Art Database: 2008-Dec-30
Document File: 5 page(s) / 35K

Publishing Venue

IBM

Abstract

Disclosed is a system by which the process of migrating and manipulating databases is described by in an XSD (XML Schema Definition) document. This XSD is able to describe the rule set for an implementing program to move data from one DBMS (Database Management System) to any other. The system also gives the ability to override default behavior with a custom set to fit the implementor's needs.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 31% of the total text.

Page 1 of 5

Migrating databases between DMBS using XSD and function override .

     Disclosed is a system by which an XSD (Extensible Markup Language Schema Definition) schema is used to describe the way the user would transfer data from one DBMS (Database Management System) to another. The XSD describes the rules for creating table/object scripts, handling self referencing foreign keys, allowing overrides, processing triggers, and moving data. The XSD also describes the way by which the user can plug in different extension points to the process in order to override table handling. These functions allow the system to describe the transfer of any database's data to any other database's data. It also allows the flexibility to transfer M to N databases. For example, the system provides the flexibility to transfer a single database into many databases via data separation.

     Today, the user's option would be to use the DBMS tools for the database the user is transferring to and from in order to move the data across the platforms. Doing so would involve a painful process of exporting to flat files from the source database, doing some automated fix-up to those files to make the files compliant with a LOAD operation in the target database, and executing that load. This process could take a very long time and is subject to error because it is not dynamic enough in nature to handle each customer's situation. This existing process would require a large amount of resources.

Sample Usage Scenario

     The XSD itself describes the boundares of the process. The XSD sets the rules for use in this migration by setting what can be included. A sample XSD is provided below.


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="database" minOccurs="2"
maxOccurs="2">

<xs:attribute name="name"
type="xs:string" use="optional"/> <xs:attribute name="role"
type="xs:string" use="required"/> <xs:attribute name="driver"
type="xs:string" use="required"/> <xs:attribute name="url" type="xs:string"
use="optional"/> <xs:attribute name="userId"
type="xs:string" use="optional"/> <xs:attribute name="password"
type="xs:string" use="optional"/>

1

Page 2 of 5

<xs:attribute name="schema"
type="xs:string" use="optional"/> <xs:attribute name="dbType"
type="xs:string" use="optional"/> <xs:attribute name="fetchSize"
type="xs:string" use="optional"/> <xs:attribute name="commitFrequency"
type="xs:string" use="optional"/> <xs:attribute name="tableHandler"
type="xs:string" use="optional"/> <xs:attribute name="rowHandler"
type="xs:string" use="optional"/>

<xs:element name="table" minOccurs="0"
maxOccurs="unbounded">

<xs:attribute name="sourceName"
type="xs:string" use="optional"/> <xs:attribute name="targetName"
type="xs:string" use="optional"/> <xs:attribute name="fetchSize"
type="xs:string" use="optional"/> <xs:attribute name="commitFrequency"
type="xs:string" use="optional"/> <xs:attribute name="exclude"
type="xs:boolean" use="opt...