diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-05 23:42:15 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-05 23:42:15 -0300 |
| commit | 8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5 (patch) | |
| tree | 84f9ddd9e41236fb7a6f540aab07e65db9bc93cb /docs/constraint-classification.puml | |
| parent | 295c6a5a1f2b0db9d756ffe7bf413553a0c02737 (diff) | |
| download | Sakura-8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5.tar.gz Sakura-8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5.zip | |
ocaml re-migration
Diffstat (limited to 'docs/constraint-classification.puml')
| -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 |
