SQL Lineage Detection via Relational Algebra Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems (DBMS) and third-party software applications are inadequate in determining data lineage for complex SQL files, particularly for advanced SQL concepts like 'select all' statements, orphaned columns, and multiple dependent queries, leading to inaccurate data lineage detection.

Innovation Solution

A lineage detection system and method that parses SQL code to identify data lineage by translating 'select all' statements, resolving orphaned columns, and resolving references between multiple queries, using a processor and memory device to generate accurate metadata for Important Data Elements, enabling universal processing of SQL code across various DBMS products.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If third-party applications are used to parse SQL code and determine data lineage, then data lineage information can be obtained, but the applications are inadequate for complex SQL files and cannot determine lineage for advanced SQL concepts

Engineering Contradiction:
Improvedata lineage detection accuracyVSAvoidcapability to handle complex SQL concepts
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system segments the SQL parsing process into multiple specialized modules: a parser module that breaks down SQL statements into components, a translator module that converts SQL to relational algebra, and a lineage detection module that traces data dependencies. This segmentation allows each module to specialize in handling specific SQL constructs, including complex ones like CTEs and subqueries, thereby improving both accuracy and versatility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces relational algebra as an intermediary representation between SQL code and lineage detection. The SQL translator converts SQL statements into relational algebra expressions, which provide a standardized intermediate form that makes it easier to trace data dependencies across complex queries. This intermediary layer enables accurate lineage detection for advanced SQL concepts that are difficult to parse directly.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If DBMS are used to perform calculations, then business operations can be conducted, but the DBMS themselves are unable to provide data lineage information

Engineering Contradiction:
Improvebusiness operation efficiencyVSAvoiddata lineage information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system enables self-service by allowing the lineage detection tool to automatically parse SQL files, translate them to relational algebra, and generate lineage information without requiring manual intervention or modification of the DBMS. The tool independently extracts data dependency information from the SQL code, providing lineage data that complements the DBMS calculations without interfering with business operations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system acts as an intermediary between the SQL code and the lineage information requirement. By introducing a translation layer that converts SQL to relational algebra and a separate analysis layer that extracts lineage, the system provides lineage information without modifying the DBMS itself, thus preserving business operation efficiency while eliminating information loss.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If accurate data lineage detection is implemented, then data quality improves and data defects can be quickly identified, but the parsing of complex SQL files with advanced concepts is currently inadequate

Engineering Contradiction:
Improvedata lineage accuracyVSAvoidparsing capability for advanced SQL concepts
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The parsing system is divided into specialized components: a lexical analyzer that tokenizes SQL code, a syntax parser that builds parse trees, a translator that converts to relational algebra, and a lineage extractor that identifies data dependencies. Each component handles specific aspects of SQL complexity, enabling accurate lineage detection for advanced concepts like CTEs, subqueries, and joins without overwhelming system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system replaces traditional mechanical SQL parsing approaches with a symbolic transformation approach using relational algebra. Instead of attempting to directly analyze complex SQL syntax, the system translates SQL statements into relational algebra expressions, which have well-defined semantic meanings and make data dependency tracing more systematic and accurate, thereby improving measurement precision without proportionally increasing device complexity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10223086B2Systems and methods for code parsing and lineage detection
Publication Date: 2019.03.05 CAPITAL ONE SERVICES LLC
  • US10223086B2 patent drawing
  • US10223086B2 patent drawing
  • US10223086B2 patent drawing

AI summary

Disclosed embodiments provide systems, methods, and techniques for code parsing and lineage detection. According to disclosed embodiments, a code parser acquires one or more parameters, which at least include a first parameter that identifies source code. The code parser also acquires the source code from the first parameter. After acquiring the source code, the code parser parses the source code and generates an output of the parsed source code. The code parser may then generate and display an output of the parsed source code.