Database Custom Data Type Conversion Framework

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Database Management Systems (DBMS) lack the ability to manage and convert custom data types, requiring custom code for data type converters across multiple programming languages and versions, and do not support dynamic loading of user-defined types, limiting flexibility and data sharing.

Innovation Solution

A DBMS framework that stores custom data type definitions and converters, allowing conversion between binary and programming language formats, and includes a query engine callback interface for data comparison, enabling support for multiple programming languages and dynamic type loading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If custom data types are stored as binary data types or Large Objects in the database, then the data can be stored without requiring built-in data type support, but the meaning and conversion logic must be handled at the application layer, increasing application complexity

Engineering Contradiction:
Improvecustom data type supportVSAvoidapplication layer complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces type converter classes as intermediary components that mediate between the database storage layer (binary/LOB) and the application layer. These converters handle the conversion logic and data meaning interpretation, reducing application layer complexity by centralizing conversion functionality within the database management system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The database management system provides self-service functionality by automatically managing type converters and performing data conversions without requiring application code to handle conversion logic. The system stores and retrieves type converter definitions from the database and executes conversions automatically during data access operations.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If type converters are implemented in multiple programming languages to support enterprise-wide data sharing, then language independence is achieved, but it becomes necessary to maintain multiple versions of type converter code

Engineering Contradiction:
Improvelanguage independenceVSAvoidconverter code management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal type converter framework that can serve multiple programming languages through a common architecture. Type converters are defined once in the database with language-specific bindings, allowing the same converter definition to serve multiple language environments without requiring separate implementation versions for each language.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system uses copying mechanisms to replicate type converter definitions across different programming language environments. Instead of maintaining separate original implementations, the database stores master converter definitions that can be copied and instantiated in various language runtimes, ensuring consistency and reducing maintenance burden.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If Java serialization is used to store Java Objects directly into the DBMS, then custom data types can be persisted, but the solution is not language independent and requires Java class definitions to be available in the class path of each calling application

Engineering Contradiction:
Improvecustom data type persistenceVSAvoidprogramming language support
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent extracts the language-specific serialization dependencies from the core data persistence mechanism. Instead of requiring Java class definitions to be available in the application class path, the system extracts and stores type converter definitions in the database, allowing data to be persisted without language-specific runtime dependencies in the calling application.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent inverts the traditional approach by not requiring the application to provide conversion logic (as in Java serialization), but instead having the database management system provide the conversion logic through stored type converters. The burden of knowing how to read and instantiate objects is shifted from the application layer to the database layer.

Inventive Principle:
Principle #13The other way round (Inversion)

4Reliability

If user-defined types are constructed from existing SQL Types, then the SQL standard is followed, but flexibility for completely unique data types not based on SQL Types is limited

Engineering Contradiction:
ImproveSQL standard complianceVSAvoidcustom data type flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic type definition capabilities that allow custom data types to be defined and stored in the database without being constrained to SQL standard type constructions. The system dynamically loads and executes type converter code from the database, enabling completely unique data types while maintaining SQL standard compliance for standard types.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10650019B2Managing data conversion for user-defined data types within a database management system
Publication Date: 2020.05.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10650019B2 patent drawing
  • US10650019B2 patent drawing
  • US10650019B2 patent drawing

AI summary

Managing data conversion for user-defined data types within a DBMS. A custom data type definition and one or more converters are stored within a database management system. Each converter can convert instances of the custom data type between a binary format and a programming language format. The database management system receives a request for a custom data type instance in a specified programming language format. A converter among the one or more converters converts the custom data type instance expressed in the binary format into a custom data type instance expressed in the specified programming language format, using a custom data type definition from the database management system. The request is responded to with the converted custom data type instance in the specified programming language format.