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
Download Code
Copy to Clipboard