Skip to main content

Query Optimisation Ontology

Databases
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — QUERY OPTIMISATION ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/databases/query-optimisation-ontology.html

FLOW QUERY_OPTIMISATION_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Databases"
    ONTOLOGY = "Query Optimisation Ontology"
    PURPOSE = "Formalise database query optimisation, logical and physical plans, rewrites, access paths, join ordering, statistics, cardinality estimation, cost models and plan selection."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    QUERY_OPTIMISATION
    QUERY_OPTIMISER
    QUERY
    LOGICAL_QUERY_PLAN
    PHYSICAL_QUERY_PLAN
    EXECUTION_PLAN
    PLAN_NODE
    LOGICAL_OPERATOR
    PHYSICAL_OPERATOR
    SELECTION
    PROJECTION
    JOIN
    AGGREGATION
    SORT
    SUBQUERY
    PREDICATE
    EQUIVALENCE_RULE
    REWRITE_RULE
    PREDICATE_PUSHDOWN
    PROJECTION_PUSHDOWN
    SUBQUERY_UNNESTING
    JOIN_REORDERING
    ACCESS_PATH
    TABLE_SCAN
    INDEX_SCAN
    INDEX_SEEK
    INDEX
    JOIN_ALGORITHM
    NESTED_LOOP_JOIN
    HASH_JOIN
    MERGE_JOIN
    JOIN_ORDER
    SEARCH_SPACE
    CANDIDATE_PLAN
    PLAN_ENUMERATION
    DYNAMIC_PROGRAMMING
    GREEDY_SEARCH
    HEURISTIC_SEARCH
    COST_BASED_OPTIMISATION
    RULE_BASED_OPTIMISATION
    COST_MODEL
    ESTIMATED_COST
    CPU_COST
    IO_COST
    MEMORY_COST
    NETWORK_COST
    DATABASE_STATISTICS
    TABLE_STATISTICS
    COLUMN_STATISTICS
    INDEX_STATISTICS
    CARDINALITY
    CARDINALITY_ESTIMATE
    SELECTIVITY
    SELECTIVITY_ESTIMATE
    HISTOGRAM
    DISTINCT_VALUE_COUNT
    DATA_DISTRIBUTION
    CORRELATION
    PARTITION
    PARTITION_PRUNING
    MATERIALISED_VIEW
    VIEW_REWRITE
    PARALLEL_EXECUTION
    DISTRIBUTED_QUERY
    DATA_LOCALITY
    RUNTIME_STATISTICS
    ADAPTIVE_QUERY_PROCESSING
    PLAN_CACHE
    PARAMETER
    OPTIMISATION_GOAL
    EXECUTION_TRACE
    BENCHMARK
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    OPTIMISES
    HAS_QUERY
    HAS_LOGICAL_PLAN
    HAS_PHYSICAL_PLAN
    HAS_PLAN_NODE
    HAS_OPERATOR
    TRANSFORMS_TO
    EQUIVALENT_TO
    REWRITES
    PUSHES_DOWN
    REORDERS
    UNNESTS
    HAS_ACCESS_PATH
    USES_INDEX
    SCANS
    SEEKS
    HAS_JOIN_ALGORITHM
    HAS_JOIN_ORDER
    ENUMERATES
    SEARCHES
    HAS_CANDIDATE_PLAN
    HAS_COST_MODEL
    HAS_ESTIMATED_COST
    HAS_CPU_COST
    HAS_IO_COST
    HAS_MEMORY_COST
    HAS_NETWORK_COST
    HAS_STATISTICS
    HAS_CARDINALITY
    ESTIMATES_CARDINALITY
    HAS_SELECTIVITY
    ESTIMATES_SELECTIVITY
    HAS_HISTOGRAM
    HAS_DISTRIBUTION
    HAS_CORRELATION
    PRUNES_PARTITION
    USES_MATERIALISED_VIEW
    PARALLELISES
    DISTRIBUTES
    HAS_DATA_LOCALITY
    HAS_RUNTIME_STATISTICS
    ADAPTS
    HAS_PARAMETER
    HAS_OPTIMISATION_GOAL
    SELECTS_PLAN
    EXECUTED_AS
    BENCHMARKED_BY
    HAS_CONFIGURATION
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    QUERY_TEXT
    PARSED_QUERY
    DATABASE_SCHEMA
    LOGICAL_PLANS
    PHYSICAL_OPERATORS
    INDEX_METADATA
    TABLE_STATISTICS
    COLUMN_STATISTICS
    INDEX_STATISTICS
    HISTOGRAM_DATA
    DATA_DISTRIBUTIONS
    PARTITION_METADATA
    MATERIALISED_VIEW_METADATA
    COST_MODEL_PARAMETERS
    HARDWARE_AND_RUNTIME_CONTEXT
    QUERY_PARAMETERS
    PLAN_CACHE_DATA
    EXECUTION_PLANS
    RUNTIME_STATISTICS
    EXECUTION_TRACES
    BENCHMARK_DATA
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_QUERY_IDENTIFIERS
    NORMALISE_LOGICAL_OPERATOR_NAMES
    NORMALISE_PHYSICAL_OPERATOR_NAMES
    NORMALISE_PLAN_NODE_IDENTIFIERS
    NORMALISE_INDEX_IDENTIFIERS
    NORMALISE_JOIN_ALGORITHM_NAMES
    NORMALISE_JOIN_ORDER_REPRESENTATIONS
    NORMALISE_STATISTICS_UNITS
    NORMALISE_CARDINALITY_AND_SELECTIVITY_VALUES
    NORMALISE_COST_UNITS
    NORMALISE_PARTITION_IDENTIFIERS
    NORMALISE_PARAMETER_CONTEXT
    NORMALISE_OPTIMISATION_GOALS
    RESOLVE_QUERY_PLAN_OPERATOR_AND_STATISTIC_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS QUERY_OPTIMISATION_PIPELINE {
    QUERY
      -> PARSE_AND_VALIDATE
      -> INITIAL_LOGICAL_PLAN
      -> LOGICAL_REWRITES
      -> CANDIDATE_LOGICAL_PLANS
      -> PHYSICAL_OPERATOR_MAPPING
      -> PLAN_ENUMERATION
      -> CARDINALITY_AND_COST_ESTIMATION
      -> PLAN_COMPARISON
      -> SELECTED_EXECUTION_PLAN
      -> EXECUTION_AND_FEEDBACK
  }

  PROCESS LOGICAL_REWRITE_REASONING {
    LOGICAL_PLAN
      -> EQUIVALENCE_RULES

    PREDICATE_FILTER
      -> PREDICATE_PUSHDOWN

    UNUSED_ATTRIBUTES
      -> PROJECTION_PUSHDOWN

    SUBQUERY
      -> SUBQUERY_UNNESTING_IF_SEMANTICALLY_VALID

    JOIN_SET
      -> JOIN_REORDERING_CANDIDATES

    REWRITTEN_PLAN
      -> SEMANTIC_EQUIVALENCE_CHECK
  }

  PROCESS ACCESS_PATH_REASONING {
    TABLE_REFERENCE + PREDICATES
      -> ACCESS_PATH_CANDIDATES

    ACCESS_PATH_CANDIDATES
      -> TABLE_SCAN_INDEX_SCAN_OR_INDEX_SEEK

    INDEX_METADATA + SELECTIVITY
      -> INDEX_USEFULNESS_ESTIMATE

    ACCESS_PATH
      -> ESTIMATED_IO_CPU_AND_MEMORY_COST
  }

  PROCESS CARDINALITY_REASONING {
    BASE_RELATION
      -> TABLE_STATISTICS
      -> BASE_CARDINALITY

    PREDICATE
      -> COLUMN_STATISTICS + HISTOGRAM + DISTRIBUTION
      -> SELECTIVITY_ESTIMATE

    INPUT_CARDINALITY * SELECTIVITY_ESTIMATE
      -> OUTPUT_CARDINALITY_ESTIMATE

    JOIN
      -> JOIN_KEY_STATISTICS_AND_CORRELATION_ASSUMPTIONS
      -> JOIN_CARDINALITY_ESTIMATE
  }

  PROCESS JOIN_ORDER_REASONING {
    JOIN_GRAPH
      -> POSSIBLE_JOIN_ORDERS

    SEARCH_STRATEGY
      -> ENUMERATED_CANDIDATES

    EACH_CANDIDATE
      -> INTERMEDIATE_CARDINALITIES + JOIN_COSTS

    COST_COMPARISON
      -> PREFERRED_JOIN_ORDER
  }

  PROCESS PHYSICAL_OPERATOR_REASONING {
    LOGICAL_OPERATOR
      -> PHYSICAL_IMPLEMENTATION_CANDIDATES

    JOIN
      -> NESTED_LOOP_HASH_OR_MERGE_JOIN

    PHYSICAL_CANDIDATE
      -> RESOURCE_AND_ORDERING_PROPERTIES

    PROPERTIES + COST
      -> OPERATOR_SELECTION
  }

  PROCESS COST_REASONING {
    CANDIDATE_PLAN
      -> PLAN_OPERATORS

    EACH_OPERATOR
      -> CPU_IO_MEMORY_NETWORK_COST

    OPERATOR_COSTS + INTERMEDIATE_RESULT_COSTS
      -> TOTAL_ESTIMATED_COST

    OPTIMISATION_GOAL
      -> COST_COMPARISON_POLICY
  }

  PROCESS PARTITION_REASONING {
    QUERY_PREDICATES + PARTITION_METADATA
      -> RELEVANT_PARTITIONS

    EXCLUDED_PARTITIONS
      -> PARTITION_PRUNING

    RELEVANT_PARTITIONS
      -> REDUCED_SCAN_AND_NETWORK_COST
  }

  PROCESS DISTRIBUTED_REASONING {
    DISTRIBUTED_QUERY
      -> DATA_LOCATIONS
      -> LOCAL_AND_REMOTE_OPERATORS

    REMOTE_OPERATORS
      -> NETWORK_TRANSFER_COST

    DATA_LOCALITY
      -> PLAN_COST_ADJUSTMENT
  }

  PROCESS ADAPTIVE_REASONING {
    EXECUTION_PLAN
      -> RUNTIME_STATISTICS

    RUNTIME_STATISTICS
      -> COMPARE_ESTIMATED_AND_ACTUAL_CARDINALITIES

    SIGNIFICANT_DEVIATION
      -> ADAPTIVE_REOPTIMISATION_CANDIDATE
  }

  RULES {
    IF QUERY_PLAN_IS_COMPARED
    THEN PRESERVE QUERY_SCHEMA_STATISTICS_PARAMETERS_AND_CONFIGURATION_CONTEXT

    IF LOGICAL_REWRITE_IS_APPLIED
    THEN REQUIRE SEMANTIC_EQUIVALENCE_UNDER_DATABASE_SEMANTICS

    IF CARDINALITY_IS_ESTIMATED
    THEN PRESERVE STATISTICS_SOURCE_AGE_DISTRIBUTION_AND_CORRELATION_ASSUMPTIONS

    IF INDEX_ACCESS_IS_SELECTED
    THEN PRESERVE PREDICATE_SELECTIVITY_INDEX_STRUCTURE_AND_COVERAGE_CONTEXT

    IF JOIN_ORDER_IS_SELECTED
    THEN PRESERVE INTERMEDIATE_CARDINALITY_AND_COST_ESTIMATES

    IF DISTRIBUTED_PLAN_IS_ANALYSED
    THEN INCLUDE NETWORK_DATA_LOCALITY_AND_PARTITION_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND QUERY_OPTIMISATION_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        QUERY_IDENTITY_CERTAINTY,
        SCHEMA_CERTAINTY,
        STATISTICS_FRESHNESS,
        CARDINALITY_ESTIMATE_QUALITY,
        COST_MODEL_QUALITY,
        PLAN_ENUMERATION_COMPLETENESS,
        RUNTIME_EVIDENCE_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF STATISTICS_ARE_STALE_OR_MISSING
    THEN REDUCE_CARDINALITY_AND_PLAN_CONFIDENCE

    IF CORRELATED_COLUMNS_ARE_MODELLED_AS_INDEPENDENT_WITHOUT_EVIDENCE
    THEN REDUCE_SELECTIVITY_CONFIDENCE

    IF ESTIMATES_AND_REPEATED_RUNTIME_EVIDENCE_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        QUERY_IDENTIFIER,
        LOGICAL_SEMANTICS,
        SCHEMA_VERSION,
        PARAMETER_CONTEXT,
        OPTIMISATION_GOAL,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B
    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    QUERY_OPTIMISATION != QUERY_EXECUTION
    LOGICAL_PLAN != PHYSICAL_PLAN
    ESTIMATED_COST != ACTUAL_RUNTIME
    CARDINALITY_ESTIMATE != ACTUAL_CARDINALITY
    SELECTIVITY != CARDINALITY
    RULE_BASED_OPTIMISATION != COST_BASED_OPTIMISATION
    INDEX_SCAN != INDEX_SEEK
    JOIN_ORDER != JOIN_ALGORITHM
    PREDICATE_PUSHDOWN != PROJECTION_PUSHDOWN
    TABLE_STATISTICS != COLUMN_STATISTICS
    PLAN_CACHE_REUSE != GUARANTEED_OPTIMAL_PLAN
    LOWER_ESTIMATED_COST != GUARANTEED_LOWER_WALL_CLOCK_TIME
    OPTIMAL_PLAN_DEPENDS_ON_SEARCH_SPACE_COST_MODEL_STATISTICS_AND_CONFIGURATION
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_QUERY_IDENTIFIER
    CHECK_SCHEMA_VERSION
    CHECK_LOGICAL_PLAN
    CHECK_REWRITE_EQUIVALENCE
    CHECK_PHYSICAL_OPERATOR_CANDIDATES
    CHECK_INDEX_METADATA
    CHECK_STATISTICS
    CHECK_CARDINALITY_ESTIMATES
    CHECK_SELECTIVITY_ESTIMATES
    CHECK_JOIN_ORDERS
    CHECK_JOIN_ALGORITHMS
    CHECK_COST_MODEL
    CHECK_PARTITION_PRUNING
    CHECK_DISTRIBUTED_COSTS_IF_APPLICABLE
    CHECK_PLAN_CACHE_CONTEXT
    CHECK_RUNTIME_FEEDBACK
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_QUERY_OPTIMISATION_ENTITIES
    LOGICAL_PLAN_RELATIONS
    REWRITE_RELATIONS
    ACCESS_PATH_RELATIONS
    INDEX_SELECTION_RELATIONS
    CARDINALITY_AND_SELECTIVITY_RELATIONS
    JOIN_ORDER_RELATIONS
    PHYSICAL_OPERATOR_RELATIONS
    COST_MODEL_RELATIONS
    CANDIDATE_PLAN_RELATIONS
    SELECTED_PLAN_RELATIONS
    PARTITION_PRUNING_RELATIONS
    DISTRIBUTED_PLAN_RELATIONS
    ADAPTIVE_OPTIMISATION_RELATIONS
    PLAN_CACHE_RELATIONS
    RUNTIME_COMPARISON_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON QUERY_SCHEMA_STATISTICS_OR_CONFIGURATION_CHANGE {
      NORMALISE
      RESOLVE_QUERY_PLAN_OPERATOR_AND_STATISTIC_IDENTITIES
      UPDATE_LOGICAL_PLAN
      UPDATE_STATISTICS_AND_CARDINALITIES
      REENUMERATE_AFFECTED_PLANS
      RECOMPUTE_COSTS
      RESELECT_EXECUTION_PLAN
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_RUNTIME_EVIDENCE {
      LINK_EVIDENCE
      UPDATE_ACTUAL_CARDINALITIES_AND_RESOURCE_USAGE
      COMPARE_ESTIMATES_WITH_ACTUALS
      UPDATE_ADAPTIVE_OPTIMISATION_CONTEXT
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_QUERY
      BY_LOGICAL_PLAN
      BY_PHYSICAL_PLAN
      BY_OPERATOR
      BY_INDEX
      BY_JOIN_ORDER
      BY_STATISTIC
      BY_CARDINALITY
      BY_SELECTIVITY
      BY_COST
      BY_CANDIDATE_PLAN
      BY_SELECTED_PLAN
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_LOGICAL_REWRITES
      ANALYSE_ACCESS_PATHS
      ESTIMATE_CARDINALITIES
      ESTIMATE_SELECTIVITIES
      ENUMERATE_JOIN_ORDERS
      SELECT_PHYSICAL_OPERATORS
      COMPUTE_PLAN_COSTS
      ANALYSE_PARTITION_PRUNING
      ANALYSE_DISTRIBUTED_PLANS
      ANALYSE_ADAPTIVE_OPTIMISATION
      ANALYSE_PLAN_CACHE
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_QUERY_OPTIMISATION_FROM_QUERY_EXECUTION
      DISTINGUISH_LOGICAL_FROM_PHYSICAL_PLANS
      PRESERVE_QUERY_SCHEMA_STATISTICS_PARAMETER_COST_MODEL_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_ESTIMATED_FROM_ACTUAL_CARDINALITY_AND_COST
      PRESERVE_PLAN_ENUMERATION_AND_RUNTIME_EVIDENCE
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_OPTIMISATION_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              QUERY_OPTIMISATION_KNOWLEDGE
            )
          )
        )
      )
  }
}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ