R Language Database Interfacing via Transparency Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy approaches for interfacing R language clients with database engines require in-memory data storage, are not scalable, and necessitate knowledge of SQL, leading to inefficiencies and data governance issues, particularly when handling large datasets and sensitive data.

Innovation Solution

A transparency layer that interprets R language code, transforms constructs into database language queries, and executes them on a database engine, allowing for parallel processing and secure, transparent data manipulation without requiring users to rewrite code or know SQL, and enables deferred evaluation to optimize memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is loaded into R client memory for analysis, then analysis can be performed using R language constructs, but the system cannot handle large datasets due to limited client memory

Engineering Contradiction:
Improvedataset sizeVSAvoidmemory requirement
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent introduces a database engine as an intermediary between the R client and the data storage system. The database engine provides virtual tables that allow R language constructs to operate on large datasets without loading them entirely into client memory. The database engine mediates data access, allowing R code to process large datasets through database queries and operations while maintaining the familiar R programming interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If legacy R client environments are used, then R language code can be executed, but the entire dataset must be resident in-memory which is not scalable

Engineering Contradiction:
Improvedata processing capabilityVSAvoidmemory architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent transitions from a traditional client-server memory architecture to a database-backed virtual memory architecture. By introducing database virtual tables, the system moves data management to a different dimension - from client-side in-memory storage to database-side persistent storage with virtual access. This allows R code to operate on datasets that exceed client memory capacity by leveraging the database engine's storage and processing capabilities.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If data is extracted from database for each R analysis task, then data can be processed in R, but data governance issues arise and the process is inefficient

Engineering Contradiction:
Improveanalysis efficiencyVSAvoiddata governance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The database engine serves as a trusted intermediary that maintains data governance policies while enabling R analysis. Instead of extracting data to external files or requiring manual data preparation, the database engine provides controlled access to data through virtual tables. This intermediary layer enforces data governance rules, manages security permissions, and optimizes data access patterns while allowing R code to operate on the data as if it were locally available.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of operation

If R users write SQL scripts to access database data, then database data can be queried, but R users must know SQL which is not a skill extensively possessed by the R user community

Engineering Contradiction:
Improvedata access capabilityVSAvoidskill requirement
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent makes R language constructs universally applicable to database operations. By overloading R functions to work with database virtual tables, the system eliminates the need for users to learn multiple languages (R and SQL). The same R language constructs that operate on in-memory data structures now also operate on database-backed virtual tables, providing universal data access capability without increasing skill requirements.

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

5Productivity

If data is transformed from database format to R engine format, then data can be processed by R, but additional transformation steps are required

Engineering Contradiction:
Improvedata processing flowVSAvoiddata transformation process
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The database virtual table acts as an intermediary format that preserves database data structure while making it accessible to R operations. Instead of transforming data from database format to R data frames, the virtual table format allows R code to operate directly on database data with minimal transformation. The database engine handles format conversion transparently, maintaining data integrity while enabling R processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9418082B2Overloading R language constructs with database engine constructs
Publication Date: 2016.08.16 ORACLE INT CORP
  • US9418082B2 patent drawing
  • US9418082B2 patent drawing
  • US9418082B2 patent drawing

AI summary

A method, system, and computer program product for interfacing an R language client with a separate database engine environment. The method commences by interpreting an R language code fragment to identify and select R language constructs and transforming the R language constructs into queries or other database language constructs to execute within the database engine environment. The method further implements techniques for transmitting marshalled results (resulting from the execution of the database language constructs) back to the R client environment. In some situations, the marshalled results include an XML schema or DTD or another metadata description of the structure of the results. User conveniences in the form of transparent database query construction, and transparent exploitation of parallelism is achieved by determining the computation resource requirements of executable language constructs, and mapping the execution to one (or more) of, a local R client, a database engine, or a remote execution engine.