Calculation Engine for Dynamic Data Model Dependency Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in formulating and executing recursive search queries in relational databases, particularly with dynamic data models, where dependencies between field values complicate calculations and lead to errors due to schema mismatches.
Innovation Solution
A calculation engine is developed for a self-describing data system that receives requests to modify field values, calculates dependencies based on predefined rules, and updates values accordingly, handling events and dependencies across items in a domain to ensure accurate and dynamic data model updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If recursive search queries are formulated and executed in relational databases with dynamic data models, then search functionality is provided, but the queries require iterative and repetitive reformulation and may fail due to schema mismatches
Solution Approach 1:
The system performs preliminary actions by obtaining the domain and calculating all dependencies before executing the search query. The calculation engine pre-computes the dependency graph and determines the execution plan in advance, eliminating the need for iterative query reformulation during search execution.
Solution Approach 2:
The calculation engine acts as an intermediary between the search query and the relational database. It translates high-level search requests into optimized SQL queries by calculating dependencies and generating appropriate execution plans, shielding the user from schema complexity and mismatch issues.
2Productivity
If field values are modified in a self-describing data system with dependencies, then the first value is updated, but calculating and updating all dependent values becomes technically challenging
Solution Approach 1:
The system segments the dependency calculation into distinct phases: obtaining the domain, calculating dependencies, determining the execution plan, and updating values. This segmentation allows each phase to be optimized independently and makes the overall complex process more manageable and efficient.
Solution Approach 2:
The calculation engine implements feedback by continuously monitoring dependency relationships and automatically recalculating affected values when the first value is modified. The system uses the calculated dependency graph to identify all affected fields and propagates changes through the dependency chain, ensuring data consistency without manual intervention.
3Adaptability or versatility
If the data model is made dynamic to accommodate changing requirements, then adaptability is improved, but schema mismatches and calculation errors increase
Solution Approach 1:
The system embraces dynamics by allowing the data model to change while maintaining reliability. The calculation engine dynamically obtains the current domain, recalculates dependencies based on the updated schema, and generates new execution plans. This dynamic approach allows the system to adapt to schema changes without sacrificing calculation accuracy.
Solution Approach 2:
The system provides beforehand cushioning by implementing comprehensive error handling and validation in the dependency calculation process. The calculation engine anticipates potential schema mismatches and calculation errors by validating the domain structure before execution and handling exceptions gracefully, preventing failures even when the data model changes.
Data Source
AI summary
A method includes receiving a request to modify a first value of a first field of a first item in a self-describing data system, and obtaining a domain comprising items in the self-describing data system. The first item and a second item are included in items, and the second item comprises a second field having a second value. The method includes calculating, based on a rule of the second field, a dependency of the second value on the first value. The rule specifies how the second value is to be calculated using the first value. The method includes modifying, based on the request, the first value. The method includes receiving an event triggered by the modification to the first value. The method includes, responsive to the event, calculating the second value based on the rule, and storing the second value in the second field.


