aboutsummaryrefslogtreecommitdiffstats
path: root/docs/constraint-classification.puml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/constraint-classification.puml82
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