Skip to main content

SQL 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 — SQL ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/databases/sql-ontology.html

FLOW SQL_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Databases"
    ONTOLOGY = "SQL Ontology"
    PURPOSE = "Formalise SQL statements, clauses, expressions, relational operations, schemas, queries, data modification, transactions, constraints, query plans and execution semantics."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    SQL
    SQL_DIALECT
    SQL_STANDARD
    SQL_STATEMENT
    DDL_STATEMENT
    DML_STATEMENT
    DQL_STATEMENT
    DCL_STATEMENT
    TCL_STATEMENT
    CREATE_STATEMENT
    ALTER_STATEMENT
    DROP_STATEMENT
    SELECT_STATEMENT
    INSERT_STATEMENT
    UPDATE_STATEMENT
    DELETE_STATEMENT
    MERGE_STATEMENT
    GRANT_STATEMENT
    REVOKE_STATEMENT
    COMMIT_STATEMENT
    ROLLBACK_STATEMENT
    SAVEPOINT_STATEMENT
    QUERY
    SUBQUERY
    CORRELATED_SUBQUERY
    COMMON_TABLE_EXPRESSION
    RECURSIVE_CTE
    SELECT_CLAUSE
    FROM_CLAUSE
    WHERE_CLAUSE
    GROUP_BY_CLAUSE
    HAVING_CLAUSE
    ORDER_BY_CLAUSE
    LIMIT_CLAUSE
    OFFSET_CLAUSE
    JOIN
    INNER_JOIN
    LEFT_JOIN
    RIGHT_JOIN
    FULL_JOIN
    CROSS_JOIN
    UNION
    UNION_ALL
    INTERSECT
    EXCEPT
    DISTINCT
    AGGREGATE_FUNCTION
    WINDOW_FUNCTION
    SCALAR_FUNCTION
    EXPRESSION
    PREDICATE
    BOOLEAN_EXPRESSION
    NULL
    THREE_VALUED_LOGIC
    CASE_EXPRESSION
    ALIAS
    PARAMETER
    LITERAL
    TABLE
    ROW
    COLUMN
    SCHEMA
    DATABASE
    VIEW
    MATERIALISED_VIEW
    INDEX
    PRIMARY_KEY
    FOREIGN_KEY
    CONSTRAINT
    TRIGGER
    STORED_PROCEDURE
    FUNCTION
    TRANSACTION
    ISOLATION_LEVEL
    LOCK
    QUERY_PLAN
    LOGICAL_PLAN
    PHYSICAL_PLAN
    EXECUTION_PLAN
    QUERY_OPTIMISER
    ACCESS_PATH
    TABLE_SCAN
    INDEX_SCAN
    INDEX_SEEK
    SORT_OPERATION
    HASH_OPERATION
    JOIN_OPERATION
    CARDINALITY
    SELECTIVITY
    COST_MODEL
    STATISTICS
    RESULT_SET
    AFFECTED_ROW_COUNT
    ERROR
    SQLSTATE
    CONFIGURATION
    EXECUTION_CONTEXT
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    HAS_DIALECT
    CONFORMS_TO
    HAS_STATEMENT
    HAS_CLAUSE
    HAS_EXPRESSION
    HAS_PREDICATE
    REFERENCES
    READS
    WRITES
    CREATES
    ALTERS
    DROPS
    SELECTS
    INSERTS
    UPDATES
    DELETES
    MERGES
    GRANTS
    REVOKES
    COMMITS
    ROLLS_BACK
    QUERIES
    HAS_SUBQUERY
    CORRELATES_WITH
    HAS_CTE
    PROJECTS
    FILTERS
    GROUPS
    AGGREGATES
    ORDERS
    LIMITS
    OFFSETS
    JOINS
    UNIONS
    INTERSECTS
    EXCEPTS
    HAS_ALIAS
    HAS_PARAMETER
    HAS_LITERAL
    HAS_TABLE
    HAS_COLUMN
    HAS_SCHEMA
    HAS_VIEW
    INDEXED_BY
    HAS_PRIMARY_KEY
    HAS_FOREIGN_KEY
    CONSTRAINED_BY
    TRIGGERS
    CALLS
    HAS_TRANSACTION
    HAS_ISOLATION_LEVEL
    LOCKS
    HAS_QUERY_PLAN
    OPTIMISED_BY
    EXECUTED_AS
    HAS_ACCESS_PATH
    HAS_CARDINALITY
    HAS_SELECTIVITY
    HAS_COST
    HAS_STATISTICS
    PRODUCES
    AFFECTS
    HAS_ERROR
    HAS_CONFIGURATION
    HAS_EXECUTION_CONTEXT
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    SQL_TEXT
    SQL_DIALECT_METADATA
    SQL_STANDARD_METADATA
    DATABASE_SCHEMA
    TABLE_AND_COLUMN_METADATA
    KEY_AND_CONSTRAINT_METADATA
    VIEW_METADATA
    INDEX_METADATA
    ROUTINE_AND_TRIGGER_METADATA
    QUERY_PARAMETERS
    QUERY_PLANS
    EXECUTION_PLANS
    DATABASE_STATISTICS
    TRANSACTION_DATA
    ISOLATION_AND_LOCK_DATA
    EXECUTION_RESULTS
    ERROR_DATA
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_SQL_STATEMENT_IDENTIFIERS
    NORMALISE_SQL_DIALECT_NAMES
    NORMALISE_KEYWORDS
    NORMALISE_IDENTIFIER_QUOTING
    NORMALISE_SCHEMA_TABLE_AND_COLUMN_IDENTIFIERS
    NORMALISE_PARAMETER_IDENTIFIERS
    NORMALISE_LITERAL_TYPES
    NORMALISE_JOIN_TYPES
    NORMALISE_SET_OPERATORS
    NORMALISE_FUNCTION_NAMES
    NORMALISE_NULL_SEMANTICS
    NORMALISE_CONSTRAINT_TYPES
    NORMALISE_TRANSACTION_TERMS
    NORMALISE_QUERY_PLAN_OPERATORS
    NORMALISE_ERROR_CODES
    RESOLVE_STATEMENT_SCHEMA_OBJECT_AND_PLAN_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS SQL_REASONING_PIPELINE {
    SQL_TEXT -> DIALECT_RESOLUTION -> LEXICAL_AND_SYNTACTIC_ANALYSIS -> STATEMENT_CLASSIFICATION
    STATEMENT_CLASSIFICATION -> NAME_AND_SCHEMA_RESOLUTION -> TYPE_AND_SEMANTIC_VALIDATION
    VALID_STATEMENT -> LOGICAL_OPERATION_MAPPING
    LOGICAL_OPERATION_MAPPING -> QUERY_OPTIMISATION_IF_APPLICABLE -> EXECUTION
    EXECUTION -> RESULT_OR_STATE_CHANGE -> VALIDATION
  }

  PROCESS SELECT_REASONING {
    SELECT_STATEMENT -> FROM_INPUTS -> JOIN_PROCESSING -> WHERE_FILTERING -> GROUPING
    GROUPING -> AGGREGATION -> HAVING_FILTERING -> SELECT_PROJECTION
    SELECT_PROJECTION -> DISTINCT_IF_PRESENT -> ORDERING -> LIMIT_AND_OFFSET -> RESULT_SET
  }

  PROCESS JOIN_REASONING {
    LEFT_INPUT + RIGHT_INPUT -> JOIN_TYPE -> JOIN_CONDITION
    INNER_JOIN -> MATCHING_ROW_COMBINATIONS
    LEFT_JOIN -> MATCHES + UNMATCHED_LEFT_ROWS
    RIGHT_JOIN -> MATCHES + UNMATCHED_RIGHT_ROWS
    FULL_JOIN -> MATCHES + UNMATCHED_ROWS_FROM_BOTH_INPUTS
    CROSS_JOIN -> CARTESIAN_PRODUCT
  }

  PROCESS NULL_REASONING {
    SQL_NULL -> UNKNOWN_OR_MISSING_VALUE_SEMANTICS
    COMPARISON_WITH_NULL -> UNKNOWN_UNLESS_OPERATOR_DEFINES_OTHER_SEMANTICS
    BOOLEAN_EXPRESSION -> TRUE_FALSE_OR_UNKNOWN
    WHERE_OR_HAVING -> RETAIN_ROWS_WHERE_PREDICATE_IS_TRUE
  }

  PROCESS GROUPING_REASONING {
    INPUT_ROWS -> GROUP_BY_EXPRESSIONS -> GROUPS
    EACH_GROUP -> AGGREGATE_FUNCTIONS
    AGGREGATED_GROUPS -> HAVING_PREDICATE_IF_PRESENT -> GROUPED_RESULT
  }

  PROCESS SUBQUERY_REASONING {
    SUBQUERY -> QUERY_CONTEXT
    UNCORRELATED_SUBQUERY -> INDEPENDENT_RESULT
    CORRELATED_SUBQUERY -> OUTER_ROW_REFERENCE -> CONTEXT_DEPENDENT_EVALUATION
    SUBQUERY_RESULT -> SCALAR_SET_TABLE_OR_EXISTENCE_CONTEXT
  }

  PROCESS CTE_REASONING {
    COMMON_TABLE_EXPRESSION -> NAMED_QUERY_EXPRESSION
    NONRECURSIVE_CTE -> DERIVED_RELATION
    RECURSIVE_CTE -> ANCHOR_MEMBER -> RECURSIVE_MEMBER -> ITERATIVE_FIXPOINT_OR_DIALECT_DEFINED_TERMINATION
  }

  PROCESS DATA_MODIFICATION_REASONING {
    INSERT_STATEMENT -> TARGET_TABLE -> SOURCE_VALUES_OR_QUERY -> COLUMN_MAPPING -> CONSTRAINT_CHECK -> ROW_CREATION
    UPDATE_STATEMENT -> TARGET_TABLE -> TARGET_ROW_SELECTION -> ASSIGNMENT_EXPRESSIONS -> CONSTRAINT_CHECK -> STATE_UPDATE
    DELETE_STATEMENT -> TARGET_TABLE -> TARGET_ROW_SELECTION -> REFERENTIAL_ACTION_ANALYSIS -> ROW_REMOVAL
  }

  PROCESS DDL_REASONING {
    DDL_STATEMENT -> TARGET_SCHEMA_OBJECT
    CREATE_STATEMENT -> NEW_SCHEMA_OBJECT
    ALTER_STATEMENT -> SCHEMA_OBJECT_TRANSFORMATION
    DROP_STATEMENT -> DEPENDENCY_AND_CASCADE_ANALYSIS -> OBJECT_REMOVAL
  }

  PROCESS TRANSACTION_REASONING {
    SQL_STATEMENTS -> TRANSACTION_CONTEXT
    WRITE_STATEMENTS -> PENDING_STATE_CHANGES
    COMMIT -> DURABLE_VISIBLE_STATE_ACCORDING_TO_ISOLATION
    ROLLBACK -> DISCARD_OR_UNDO_TRANSACTION_CHANGES
    SAVEPOINT -> PARTIAL_ROLLBACK_REFERENCE
  }

  PROCESS QUERY_OPTIMISATION_REASONING {
    VALID_QUERY -> LOGICAL_PLAN -> EQUIVALENT_REWRITES -> ACCESS_PATH_AND_JOIN_ORDER_CANDIDATES
    STATISTICS + CARDINALITY + SELECTIVITY -> COST_ESTIMATES
    COST_ESTIMATES -> PHYSICAL_PLAN -> EXECUTION_PLAN
  }

  RULES {
    IF SQL_STATEMENT_IS_INTERPRETED THEN PRESERVE SQL_DIALECT_STANDARD_SCHEMA_AND_EXECUTION_CONTEXT
    IF SELECT_RESULT_IS_INFERRED THEN PRESERVE DATABASE_STATE_NULL_SEMANTICS_AND_PARAMETER_VALUES
    IF OUTER_JOIN_IS_USED THEN PRESERVE UNMATCHED_ROW_AND_NULL_EXTENSION_SEMANTICS
    IF AGGREGATION_IS_USED THEN PRESERVE GROUPING_CONTEXT_AND_AGGREGATE_NULL_SEMANTICS
    IF CORRELATED_SUBQUERY_IS_USED THEN PRESERVE OUTER_QUERY_BINDING_CONTEXT
    IF DATA_MODIFICATION_IS_ASSERTED_SUCCESSFUL THEN REQUIRE APPLICABLE_CONSTRAINT_AND_TRANSACTION_CONTEXT
    IF QUERY_PERFORMANCE_IS_ASSERTED THEN PRESERVE EXECUTION_PLAN_STATISTICS_INDEXES_CARDINALITY_AND_CONFIGURATION
    IF SEMANTIC_IDENTIFIERS_DIFFER AND SQL_REFERENT_IS_SAME THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE = WEIGHT(SQL_DIALECT_CERTAINTY, PARSE_AND_STATEMENT_CERTAINTY, SCHEMA_RESOLUTION_COMPLETENESS, TYPE_AND_NULL_SEMANTICS_CERTAINTY, PARAMETER_COMPLETENESS, QUERY_PLAN_EVIDENCE, EXECUTION_RESULT_EVIDENCE, PROVENANCE_COMPLETENESS)
    LEVELS { HIGH MODERATE LOW INSUFFICIENT }
    IF SQL_DIALECT_IS_UNKNOWN THEN REDUCE_SYNTAX_AND_SEMANTIC_CONFIDENCE
    IF SCHEMA_OR_PARAMETER_VALUES_ARE_UNKNOWN THEN REDUCE_RESULT_INFERENCE_CONFIDENCE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY = NORMALISE(ENTITY_TYPE, SQL_STATEMENT_STRUCTURE, SQL_DIALECT, REFERENCED_SCHEMA_OBJECTS, PARAMETER_BINDINGS, DATABASE_STATE_REFERENCE, EXECUTION_CONTEXT)
    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B) THEN A SEMANTICALLY_EQUIVALENT_TO B
    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    SQL != RELATIONAL_ALGEBRA
    SQL_STATEMENT != QUERY_IN_ALL_CASES
    WHERE != HAVING
    GROUP_BY != ORDER_BY
    UNION != UNION_ALL
    JOIN != SUBQUERY
    INNER_JOIN != OUTER_JOIN
    NULL != ZERO
    NULL != EMPTY_STRING
    NULL != FALSE
    UNKNOWN != FALSE_IN_THREE_VALUED_LOGIC
    PRIMARY_KEY != FOREIGN_KEY
    CONSTRAINT != INDEX
    VIEW != MATERIALISED_VIEW
    QUERY != QUERY_PLAN
    LOGICAL_PLAN != PHYSICAL_PLAN
    TRANSACTION != SQL_STATEMENT
    COMMIT != SAVEPOINT
    SQL_DIALECT_FEATURES_AND_SEMANTICS_MAY_DIFFER
    QUERY_RESULT_DEPENDS_ON_DATABASE_STATE_PARAMETERS_AND_SQL_SEMANTICS
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SQL_DIALECT
    CHECK_SQL_SYNTAX
    CHECK_STATEMENT_CLASSIFICATION
    CHECK_SCHEMA_OBJECT_REFERENCES
    CHECK_TABLE_AND_COLUMN_IDENTIFIERS
    CHECK_TYPES
    CHECK_PARAMETERS
    CHECK_NULL_SEMANTICS
    CHECK_JOIN_SEMANTICS
    CHECK_GROUPING_AND_AGGREGATION
    CHECK_SUBQUERIES_AND_CTES
    CHECK_SET_OPERATIONS
    CHECK_DATA_MODIFICATION
    CHECK_DDL_OPERATIONS
    CHECK_KEYS_AND_CONSTRAINTS
    CHECK_TRANSACTION_CONTEXT
    CHECK_QUERY_PLAN
    CHECK_EXECUTION_RESULT
    CHECK_ERRORS
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_SQL_ENTITIES
    SQL_DIALECT_RELATIONS
    STATEMENT_CLASSIFICATION_RELATIONS
    CLAUSE_AND_EXPRESSION_RELATIONS
    SCHEMA_REFERENCE_RELATIONS
    SELECT_AND_QUERY_RELATIONS
    JOIN_RELATIONS
    NULL_AND_BOOLEAN_SEMANTIC_RELATIONS
    GROUPING_AND_AGGREGATION_RELATIONS
    SUBQUERY_AND_CTE_RELATIONS
    INSERT_UPDATE_DELETE_RELATIONS
    DDL_RELATIONS
    KEY_AND_CONSTRAINT_RELATIONS
    TRANSACTION_RELATIONS
    QUERY_PLAN_RELATIONS
    EXECUTION_RELATIONS
    RESULT_SET_RELATIONS
    ERROR_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SQL_SCHEMA_DIALECT_OR_CONFIGURATION_CHANGE {
      NORMALISE
      RESOLVE_STATEMENT_SCHEMA_OBJECT_AND_PLAN_IDENTITIES
      REPARSE_AFFECTED_STATEMENTS
      RERESOLVE_SCHEMA_REFERENCES
      REVALIDATE_TYPES_AND_CONSTRAINTS
      RECOMPUTE_QUERY_PLANS_IF_REQUIRED
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }
    ON NEW_EXECUTION_OR_PLAN_EVIDENCE {
      LINK_EVIDENCE
      UPDATE_QUERY_AND_EXECUTION_PLANS
      UPDATE_RESULT_OR_AFFECTED_ROW_RELATIONS
      UPDATE_ERROR_RELATIONS
      UPDATE_RUNTIME_EVIDENCE
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }
  }

  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_SQL_STATEMENT BY_SQL_DIALECT BY_STATEMENT_TYPE BY_TABLE BY_COLUMN BY_CLAUSE BY_EXPRESSION BY_JOIN BY_SUBQUERY BY_CTE BY_TRANSACTION BY_QUERY_PLAN BY_ERROR BY_CONFIDENCE }
    REASON { APPLY_RELATIONSHIPS APPLY_RULES PARSE_SQL RESOLVE_SCHEMA_REFERENCES ANALYSE_SELECT_SEMANTICS ANALYSE_JOINS ANALYSE_NULL_AND_BOOLEAN_LOGIC ANALYSE_GROUPING_AND_AGGREGATION ANALYSE_SUBQUERIES_AND_CTES ANALYSE_DATA_MODIFICATION ANALYSE_DDL ANALYSE_CONSTRAINTS ANALYSE_TRANSACTIONS ANALYSE_QUERY_OPTIMISATION TRACE_EXECUTION CHECK_SEMANTIC_EQUIVALENCE PRESERVE_UNCERTAINTY TRACE_EVIDENCE TRACE_PROVENANCE GENERATE_EXPLANATION_PATH }
    RESPONSE_POLICY { DISTINGUISH_SQL_FROM_RELATIONAL_ALGEBRA DISTINGUISH_QUERY_STATEMENT_CLAUSE_EXPRESSION_AND_EXECUTION_PLAN PRESERVE_SQL_DIALECT_SCHEMA_DATABASE_STATE_PARAMETER_TRANSACTION_AND_CONFIGURATION_CONTEXT PRESERVE_NULL_AND_THREE_VALUED_LOGIC_SEMANTICS DISTINGUISH_LOGICAL_FROM_PHYSICAL_PLANS RETURN_CONFIDENCE_WHEN_AVAILABLE RETURN_PROVENANCE_WHEN_AVAILABLE AVOID_UNSUPPORTED_SQL_INFERENCE }
  }

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

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