diff options
Diffstat (limited to '')
| -rw-r--r-- | docs/constraint-classification.puml | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/docs/constraint-classification.puml b/docs/constraint-classification.puml deleted file mode 100644 index 09094f1..0000000 --- a/docs/constraint-classification.puml +++ /dev/null @@ -1,82 +0,0 @@ -@startuml constraint-classification -!theme plain -title Constraint Classification (McGoveran Framework) - -package "Database Constraints" { - class RelationConstraints { - Which relations must/can exist - Example: referential integrity - } - - class CardinalityConstraints { - Relation size limits - Examples: - - exactly N tuples - - at most M tuples - } -} - -package "Relation Constraints" { - package "Tuple Constraints" { - class AttributeConstraints { - Domain constraints per attribute - Examples: - - age >= 18 - - salary > 0 - - name ≠ "" - } - - class TupleLevelConstraints { - Cross-attribute rules - Example: - if salary > 200k then age >= 30 - } - } - - package "Relation-Level Constraints" { - class KeyConstraints { - Uniqueness + not null - - Primary keys - - Candidate keys - - Composite keys - } - - class FunctionalDependencies { - A → B - Example: ZIP → {city, state} - } - - class ForeignKeys { - Inclusion dependencies - Example: employee.dept_id ⊆ department.id - } - } -} - -package "Transition Constraints" { - class StateTransitionRules { - Before → After constraints - Examples: - - salary (monotonic increasing) - - created_at (immutable) - } - - class TemporalConstraints { - Time-based rules - Example: end_date >= start_date - } -} - -package "Multi-Relation Constraints" { - class AggregateConstraints { - Cross-relation aggregates - Example: sum(dept_salaries) <= dept_budget - } - - class MutualExclusion { - Disjoint sets - Example: managers ∩ ICs = ∅ - } -} - -@enduml |
