Skip to content

docs: diagram operations — fold cascade/trace/restrict derivation into the specs (WIP)#234

Draft
dimitri-yatsenko wants to merge 2 commits into
mainfrom
docs/diagram-operations-first-principles
Draft

docs: diagram operations — fold cascade/trace/restrict derivation into the specs (WIP)#234
dimitri-yatsenko wants to merge 2 commits into
mainfrom
docs/diagram-operations-first-principles

Conversation

@dimitri-yatsenko

Copy link
Copy Markdown
Member

Status: WIP / draft.

Reorganizes the diagram-operations documentation on one principle: low-level technical definitions belong in the specs (with implementation re-derived from the spec), and explanation stays conceptual.

Changes

  • reference/specs/master-part.md — sharpen the transitive-dependency definition (a foreign key to a master is, in effect, a dependency on the whole composite — master + all parts; downstream tables reference the master alone). Express the Delete Operations rules through the cascade engine (Diagram.cascade: master→part is an ordinary downstream edge; part_integrity="cascade" = upward U1–U3 walk + materialize + forward re-cascade), cross-linking cascade.md. Fix §7.1/§4.4 bold-label list rendering.
  • reference/specs/diagram.md — new Design Rationale section: the first-principles derivation that cascade/trace/restrict are one propagation engine (OR-vs-AND, part→master walk only when mutating, materialization), plus Conformance and open items (#1496 / #1501 / #1481). Moved here from the explanation doc so the design lives with the normative spec.
  • explanation/diagram-operations.md — reduced to a short conceptual pointer that redirects to the Diagram spec's Design Rationale and the cascade/trace/master-part specs.

Still to do (WIP)

  • mkdocs.yaml nav entry for the reduced explanation pointer is not in this PR yet.
  • cascade.md still describes the dependency graph as networkx.DiGraph; should read nx.MultiDiGraph (2.4 line) to match the derivation.
  • Final review of the open-item framing (#1496 / #1501 / #1481).

…Diagram.cascade; fix list formatting

- Transitive completeness: a FK to a master is a dependency on the whole
  composite (master + all parts); downstream tables reference the master alone.
- Delete Operations expressed through the cascade engine (Diagram.cascade):
  master->part is a downstream edge; part_integrity=cascade does the upward
  walk (U1-U3) + materialize + forward re-cascade. Cross-links cascade.md.
- Fix §7.1 and §4.4 bold-label lists (blank line before list for MkDocs).
…nale section

Move the first-principles derivation of cascade/trace/restrict (one engine;
OR-vs-AND; part->master walk only when mutating; materialization; conformance
+ open items #1496/#1501/#1481) from the explanation doc into the Diagram spec,
so the low-level design lives with the normative spec and implementation is
re-derived from it. Reduce explanation/diagram-operations.md to a short
conceptual pointer. Fix '-> Master' -> '-> master' in the moved text.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant