Skip to main content

Database Schema 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 — DATABASE SCHEMA ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/databases/database-schema-ontology.html

FLOW DATABASE_SCHEMA_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Databases"
    ONTOLOGY = "Database Schema Ontology"
    PURPOSE = "Formalise database schemas, structural definitions, entities, tables, collections, attributes, keys, constraints, relationships, dependencies, versions, migrations and validation."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    DATABASE_SCHEMA
    SCHEMA
    LOGICAL_SCHEMA
    PHYSICAL_SCHEMA
    CONCEPTUAL_SCHEMA
    EXTERNAL_SCHEMA
    SCHEMA_VERSION
    SCHEMA_DEFINITION
    DATABASE
    DATA_MODEL
    RELATIONAL_MODEL
    DOCUMENT_MODEL
    GRAPH_MODEL
    KEY_VALUE_MODEL
    ENTITY
    ENTITY_TYPE
    TABLE
    RELATION
    COLLECTION
    DOCUMENT_TYPE
    NODE_TYPE
    EDGE_TYPE
    ATTRIBUTE
    COLUMN
    FIELD
    PROPERTY
    DOMAIN
    DATA_TYPE
    NULLABILITY
    DEFAULT_VALUE
    KEY
    SUPERKEY
    CANDIDATE_KEY
    PRIMARY_KEY
    FOREIGN_KEY
    COMPOSITE_KEY
    UNIQUE_KEY
    PARTITION_KEY
    CONSTRAINT
    DOMAIN_CONSTRAINT
    KEY_CONSTRAINT
    NOT_NULL_CONSTRAINT
    UNIQUE_CONSTRAINT
    CHECK_CONSTRAINT
    REFERENTIAL_INTEGRITY
    RELATIONSHIP
    ASSOCIATION
    CARDINALITY
    ONE_TO_ONE
    ONE_TO_MANY
    MANY_TO_MANY
    FUNCTIONAL_DEPENDENCY
    MULTIVALUED_DEPENDENCY
    JOIN_DEPENDENCY
    INDEX
    VIEW
    MATERIALISED_VIEW
    STORED_PROCEDURE
    TRIGGER
    SEQUENCE
    NAMESPACE
    CATALOG
    SCHEMA_OBJECT
    NORMAL_FORM
    NORMALISATION
    DENORMALISATION
    DECOMPOSITION
    MIGRATION
    SCHEMA_MIGRATION
    MIGRATION_STEP
    VERSION_CONTROL
    CHANGE_SET
    ADD_OBJECT
    ALTER_OBJECT
    DROP_OBJECT
    RENAME_OBJECT
    DATA_MIGRATION
    BACKWARD_COMPATIBILITY
    FORWARD_COMPATIBILITY
    VALIDATION_RULE
    SCHEMA_VALIDATION
    INVARIANT
    DATABASE_STATE
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    DEFINES
    DESCRIBES
    BELONGS_TO
    HAS_SCHEMA
    HAS_VERSION
    HAS_DATA_MODEL
    CONTAINS
    HAS_OBJECT
    HAS_ENTITY
    HAS_TABLE
    HAS_RELATION
    HAS_COLLECTION
    HAS_NODE_TYPE
    HAS_EDGE_TYPE
    HAS_ATTRIBUTE
    HAS_COLUMN
    HAS_FIELD
    HAS_PROPERTY
    HAS_DOMAIN
    HAS_DATA_TYPE
    HAS_NULLABILITY
    HAS_DEFAULT_VALUE
    HAS_KEY
    HAS_PRIMARY_KEY
    HAS_FOREIGN_KEY
    HAS_CANDIDATE_KEY
    REFERENCES
    CONSTRAINED_BY
    HAS_RELATIONSHIP
    HAS_CARDINALITY
    FUNCTIONALLY_DETERMINES
    HAS_DEPENDENCY
    INDEXED_BY
    HAS_VIEW
    HAS_TRIGGER
    HAS_PROCEDURE
    HAS_SEQUENCE
    HAS_NAMESPACE
    NORMALISED_TO
    DENORMALISED_TO
    DECOMPOSES_INTO
    MIGRATES_TO
    HAS_MIGRATION_STEP
    PRECEDES
    FOLLOWS
    ADDS
    ALTERS
    DROPS
    RENAMES
    COMPATIBLE_WITH
    VALIDATED_BY
    HAS_INVARIANT
    HAS_CONFIGURATION
    HAS_STATE
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    DATABASE_METADATA
    SCHEMA_DEFINITIONS
    DATA_MODEL_DEFINITIONS
    SCHEMA_VERSION_DATA
    TABLE_AND_RELATION_DEFINITIONS
    COLLECTION_AND_DOCUMENT_DEFINITIONS
    GRAPH_SCHEMA_DEFINITIONS
    ATTRIBUTE_COLUMN_FIELD_AND_PROPERTY_DATA
    DATA_TYPE_AND_DOMAIN_DEFINITIONS
    KEY_METADATA
    CONSTRAINT_METADATA
    RELATIONSHIP_METADATA
    CARDINALITY_DATA
    DEPENDENCY_DATA
    INDEX_METADATA
    VIEW_TRIGGER_AND_PROCEDURE_METADATA
    NORMALISATION_DATA
    MIGRATION_FILES
    CHANGE_SETS
    VALIDATION_RULES
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_SCHEMA_IDENTIFIERS
    NORMALISE_SCHEMA_TYPES
    NORMALISE_SCHEMA_VERSIONS
    NORMALISE_DATA_MODEL_NAMES
    NORMALISE_SCHEMA_OBJECT_IDENTIFIERS
    NORMALISE_ENTITY_TABLE_RELATION_AND_COLLECTION_NAMES
    NORMALISE_ATTRIBUTE_COLUMN_FIELD_AND_PROPERTY_NAMES
    NORMALISE_DATA_TYPES_AND_DOMAINS
    NORMALISE_KEY_IDENTIFIERS
    NORMALISE_CONSTRAINT_TYPES
    NORMALISE_RELATIONSHIP_TYPES
    NORMALISE_CARDINALITY
    NORMALISE_DEPENDENCY_EXPRESSIONS
    NORMALISE_INDEX_AND_VIEW_IDENTIFIERS
    NORMALISE_MIGRATION_IDENTIFIERS
    NORMALISE_VALIDATION_RULES
    RESOLVE_SCHEMA_OBJECT_AND_VERSION_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS DATABASE_SCHEMA_PIPELINE {
    SCHEMA_REFERENCE
      -> SCHEMA_IDENTIFICATION
      -> SCHEMA_TYPE_AND_VERSION_RESOLUTION
      -> DATA_MODEL_RESOLUTION
      -> SCHEMA_OBJECT_MAPPING
      -> KEY_CONSTRAINT_AND_RELATIONSHIP_MAPPING
      -> DEPENDENCY_AND_NORMALISATION_ANALYSIS
      -> MIGRATION_AND_COMPATIBILITY_ANALYSIS
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS STRUCTURE_REASONING {
    DATABASE_SCHEMA
      -> SCHEMA_OBJECT_SET

    SCHEMA_OBJECT
      -> ENTITY_TABLE_COLLECTION_NODE_OR_EDGE_TYPE

    STRUCTURAL_OBJECT
      -> ATTRIBUTES_COLUMNS_FIELDS_OR_PROPERTIES

    ATTRIBUTE_OR_FIELD
      -> DATA_TYPE + DOMAIN + NULLABILITY + DEFAULT_VALUE
  }

  PROCESS KEY_REASONING {
    STRUCTURAL_ENTITY
      -> KEY_SET

    SUPERKEY
      -> UNIQUENESS_PROPERTY

    MINIMAL_SUPERKEY
      -> CANDIDATE_KEY

    SELECTED_CANDIDATE_KEY
      -> PRIMARY_KEY

    FOREIGN_KEY
      -> REFERENCED_ENTITY_AND_KEY
  }

  PROCESS CONSTRAINT_REASONING {
    SCHEMA_OBJECT
      -> CONSTRAINT_SET

    CONSTRAINT
      -> VALIDATION_PREDICATE

    VALIDATION_PREDICATE
      -> ALLOWED_DATABASE_STATES

    FOREIGN_KEY_CONSTRAINT
      -> REFERENTIAL_INTEGRITY
  }

  PROCESS RELATIONSHIP_REASONING {
    ENTITY_A + ENTITY_B
      -> RELATIONSHIP

    RELATIONSHIP
      -> CARDINALITY

    CARDINALITY
      -> ONE_TO_ONE_OR_ONE_TO_MANY_OR_MANY_TO_MANY

    IMPLEMENTATION_MODEL
      -> FOREIGN_KEY_JOIN_TABLE_EDGE_OR_REFERENCE
  }

  PROCESS DEPENDENCY_REASONING {
    ATTRIBUTE_SET_X
      -> ATTRIBUTE_SET_Y

    DEPENDENCY_EVIDENCE
      -> FUNCTIONAL_MULTIVALUED_OR_JOIN_DEPENDENCY

    DEPENDENCY_SET
      -> KEY_AND_NORMAL_FORM_ANALYSIS
  }

  PROCESS NORMALISATION_REASONING {
    RELATIONAL_SCHEMA
      -> DEPENDENCY_SET

    DEPENDENCY_SET
      -> NORMAL_FORM_TESTS

    NORMAL_FORM_VIOLATION
      -> DECOMPOSITION_CANDIDATE

    DECOMPOSITION
      -> LOSSLESSNESS_AND_DEPENDENCY_PRESERVATION_ANALYSIS
  }

  PROCESS VERSION_REASONING {
    SCHEMA_VERSION(V1)
      -> CHANGE_SET

    CHANGE_SET
      -> ADD_ALTER_DROP_OR_RENAME_OPERATIONS

    OPERATIONS
      -> SCHEMA_VERSION(V2)

    V1 + V2
      -> VERSION_RELATIONSHIP
  }

  PROCESS MIGRATION_REASONING {
    SOURCE_SCHEMA_VERSION
      -> MIGRATION_PLAN

    MIGRATION_PLAN
      -> ORDERED_MIGRATION_STEPS

    EACH_STEP
      -> PRECONDITION_CHECK
      -> SCHEMA_CHANGE
      -> POSTCONDITION_CHECK

    COMPLETED_STEPS
      -> TARGET_SCHEMA_VERSION
  }

  PROCESS COMPATIBILITY_REASONING {
    OLD_SCHEMA + NEW_SCHEMA
      -> STRUCTURAL_DIFFERENCE_ANALYSIS

    DIFFERENCES
      -> READER_AND_WRITER_COMPATIBILITY_ANALYSIS

    COMPATIBILITY_RULES
      -> BACKWARD_FORWARD_OR_BREAKING_CHANGE_CLASSIFICATION
  }

  PROCESS VALIDATION_REASONING {
    SCHEMA
      -> VALIDATION_RULE_SET

    EACH_SCHEMA_OBJECT
      -> IDENTIFIER_TYPE_KEY_CONSTRAINT_AND_REFERENCE_CHECK

    ALL_CHECKS_PASS
      -> VALID_SCHEMA

    FAILURE
      -> VALIDATION_ERROR
  }

  RULES {
    IF SCHEMA_IS_IDENTIFIED
    THEN PRESERVE DATABASE_DATA_MODEL_SCHEMA_TYPE_AND_VERSION_CONTEXT

    IF PRIMARY_KEY_IS_ASSERTED
    THEN REQUIRE APPLICABLE_UNIQUENESS_AND_NULLABILITY_SEMANTICS

    IF FOREIGN_KEY_IS_ASSERTED
    THEN REQUIRE REFERENCED_SCHEMA_OBJECT_AND_KEY

    IF RELATIONSHIP_CARDINALITY_IS_ASSERTED
    THEN PRESERVE SOURCE_TARGET_AND_IMPLEMENTATION_CONTEXT

    IF NORMAL_FORM_IS_ASSERTED
    THEN PRESERVE DEPENDENCY_SET_USED_FOR_CLASSIFICATION

    IF MIGRATION_IS_ASSERTED_SUCCESSFUL
    THEN REQUIRE TARGET_SCHEMA_VERSION_AND_POSTCONDITION_EVIDENCE

    IF OBJECT_IS_DROPPED_OR_RENAMED
    THEN REASSESS_DEPENDENT_OBJECTS_AND_COMPATIBILITY

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND SCHEMA_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        SCHEMA_IDENTITY_CERTAINTY,
        SCHEMA_VERSION_CERTAINTY,
        DATA_MODEL_CERTAINTY,
        OBJECT_DEFINITION_COMPLETENESS,
        KEY_AND_CONSTRAINT_CERTAINTY,
        RELATIONSHIP_AND_DEPENDENCY_EVIDENCE,
        MIGRATION_AND_COMPATIBILITY_EVIDENCE,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF SCHEMA_VERSION_IS_UNKNOWN
    THEN REDUCE_SCHEMA_MAPPING_CONFIDENCE

    IF KEY_CONSTRAINT_OR_DEPENDENCY_DATA_IS_PARTIAL
    THEN REDUCE_INTEGRITY_AND_NORMALISATION_CONFIDENCE

    IF DEFINITION_MIGRATION_AND_RUNTIME_METADATA_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        DATABASE_IDENTIFIER,
        SCHEMA_IDENTIFIER,
        SCHEMA_TYPE,
        SCHEMA_VERSION,
        SCHEMA_OBJECT_IDENTIFIER,
        CANONICAL_KEY_OR_PATH
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    DATABASE_SCHEMA != DATABASE
    DATABASE_SCHEMA != DATABASE_STATE
    CONCEPTUAL_SCHEMA != LOGICAL_SCHEMA
    LOGICAL_SCHEMA != PHYSICAL_SCHEMA
    TABLE != COLUMN
    ENTITY != ATTRIBUTE
    DATA_TYPE != DOMAIN
    PRIMARY_KEY != FOREIGN_KEY
    KEY != INDEX
    CONSTRAINT != INDEX
    RELATIONSHIP != FOREIGN_KEY_AS_IDENTICAL_CONCEPT
    CARDINALITY != ROW_COUNT
    FUNCTIONAL_DEPENDENCY != REFERENTIAL_INTEGRITY
    NORMALISATION != MIGRATION
    SCHEMA_VERSION != DATABASE_VERSION_AS_IDENTICAL_CONCEPT
    SCHEMA_MIGRATION != DATA_MIGRATION
    RENAME_OBJECT != DROP_AND_RECREATE_AS_IDENTICAL_OPERATION
    BACKWARD_COMPATIBILITY != FORWARD_COMPATIBILITY
    SCHEMALESS_MODEL != ABSENCE_OF_STRUCTURE_OR_VALIDATION
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SCHEMA_IDENTIFIER
    CHECK_SCHEMA_TYPE
    CHECK_SCHEMA_VERSION
    CHECK_DATA_MODEL
    CHECK_SCHEMA_OBJECTS
    CHECK_ATTRIBUTE_COLUMN_FIELD_AND_PROPERTY_TYPES
    CHECK_DOMAINS_AND_NULLABILITY
    CHECK_KEYS
    CHECK_FOREIGN_KEYS
    CHECK_CONSTRAINTS
    CHECK_RELATIONSHIPS
    CHECK_CARDINALITIES
    CHECK_DEPENDENCIES
    CHECK_NORMAL_FORMS_IF_APPLICABLE
    CHECK_INDEXES_VIEWS_TRIGGERS_AND_PROCEDURES
    CHECK_MIGRATION_SEQUENCE
    CHECK_COMPATIBILITY
    CHECK_VALIDATION_RULES
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_SCHEMA_ENTITIES
    SCHEMA_TYPE_AND_VERSION_RELATIONS
    DATA_MODEL_RELATIONS
    SCHEMA_OBJECT_RELATIONS
    ENTITY_TABLE_COLLECTION_AND_GRAPH_TYPE_RELATIONS
    ATTRIBUTE_COLUMN_FIELD_AND_PROPERTY_RELATIONS
    DATA_TYPE_AND_DOMAIN_RELATIONS
    KEY_RELATIONS
    FOREIGN_KEY_RELATIONS
    CONSTRAINT_RELATIONS
    RELATIONSHIP_AND_CARDINALITY_RELATIONS
    DEPENDENCY_RELATIONS
    NORMAL_FORM_RELATIONS
    INDEX_VIEW_TRIGGER_AND_PROCEDURE_RELATIONS
    MIGRATION_RELATIONS
    COMPATIBILITY_RELATIONS
    VALIDATION_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SCHEMA_DEFINITION_OR_VERSION_CHANGE {
      NORMALISE
      RESOLVE_SCHEMA_OBJECT_AND_VERSION_IDENTITIES
      UPDATE_SCHEMA_OBJECTS
      UPDATE_KEYS_CONSTRAINTS_AND_RELATIONSHIPS
      UPDATE_DEPENDENCIES
      REASSESS_NORMAL_FORMS
      REASSESS_COMPATIBILITY
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON MIGRATION_EXECUTION {
      LINK_EVIDENCE
      APPLY_ORDERED_MIGRATION_STEPS
      VALIDATE_TARGET_SCHEMA
      UPDATE_SCHEMA_VERSION
      UPDATE_DEPENDENT_OBJECT_RELATIONS
      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_DATABASE_SCHEMA
      BY_SCHEMA_TYPE
      BY_SCHEMA_VERSION
      BY_DATA_MODEL
      BY_SCHEMA_OBJECT
      BY_ENTITY_OR_TABLE
      BY_ATTRIBUTE_OR_COLUMN
      BY_KEY
      BY_CONSTRAINT
      BY_RELATIONSHIP
      BY_DEPENDENCY
      BY_MIGRATION
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_SCHEMA_STRUCTURE
      ANALYSE_KEYS
      ANALYSE_CONSTRAINTS
      ANALYSE_RELATIONSHIPS_AND_CARDINALITY
      ANALYSE_DEPENDENCIES
      ANALYSE_NORMALISATION
      TRACE_SCHEMA_VERSIONS
      TRACE_MIGRATIONS
      ANALYSE_COMPATIBILITY
      VALIDATE_SCHEMA
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_DATABASE_SCHEMA_FROM_DATABASE_AND_DATABASE_STATE
      DISTINGUISH_CONCEPTUAL_LOGICAL_PHYSICAL_AND_EXTERNAL_SCHEMAS
      PRESERVE_DATABASE_DATA_MODEL_SCHEMA_TYPE_VERSION_KEY_CONSTRAINT_AND_MIGRATION_CONTEXT
      DISTINGUISH_KEYS_INDEXES_CONSTRAINTS_AND_RELATIONSHIPS
      PRESERVE_DEPENDENCY_NORMALISATION_AND_COMPATIBILITY_CONTEXT
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_SCHEMA_INFERENCE
    }
  }

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

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