Add sql/schema.sql
This commit is contained in:
parent
f699cf8225
commit
a8157899b8
1 changed files with 79 additions and 0 deletions
79
sql/schema.sql
Normal file
79
sql/schema.sql
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
-- ============================================================================
|
||||||
|
-- W A R N U N G – K I – G E N E R I E R T E S D A T E N B A N K – S C H E M A
|
||||||
|
--
|
||||||
|
-- Dieses SQL-Schema / diese Daten wurden vollständig von einer KI generiert.
|
||||||
|
-- Experiment-Key: run_17_gates_default
|
||||||
|
--
|
||||||
|
-- WICHTIG:
|
||||||
|
-- • Rein experimentell – KEINE Qualitätssicherung, KEINE Tests
|
||||||
|
-- • KEIN PRODUKTIVEINSATZ – auch nicht in Test- oder Staging-Umgebungen!
|
||||||
|
-- • Kann Datenverlust, Inkonsistenzen, Sicherheitslücken oder Abstürze verursachen
|
||||||
|
-- • Nur für Forschung, Demonstration und Lernzwecke gedacht
|
||||||
|
--
|
||||||
|
-- Verwenden auf eigene Gefahr!
|
||||||
|
-- ============================================================================
|
||||||
|
-- Datenbank-Dialekt: PostgreSQL 16+
|
||||||
|
-- Kompatibilität: PostgreSQL >= 15 empfohlen
|
||||||
|
|
||||||
|
CREATE TABLE runs (
|
||||||
|
run_id BIGSERIAL NOT NULL,
|
||||||
|
run_label TEXT NOT NULL,
|
||||||
|
experiment_key TEXT NOT NULL,
|
||||||
|
setup_fingerprint TEXT NOT NULL,
|
||||||
|
policy_hash TEXT NOT NULL,
|
||||||
|
gate_version TEXT NOT NULL,
|
||||||
|
mode TEXT NOT NULL DEFAULT 'warn',
|
||||||
|
started_at TIMESTAMPTZ NOT NULL,
|
||||||
|
completed_at TIMESTAMPTZ,
|
||||||
|
decision_card_url TEXT,
|
||||||
|
notes TEXT,
|
||||||
|
CONSTRAINT runs_pkey PRIMARY KEY (run_id),
|
||||||
|
CONSTRAINT runs_run_label_key UNIQUE (run_label),
|
||||||
|
CONSTRAINT runs_mode_chk CHECK (mode IN ('warn', 'observe', 'enforce')),
|
||||||
|
CONSTRAINT runs_timeline_chk CHECK (completed_at IS NULL OR completed_at >= started_at)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE runs IS 'Metadaten zu Gate-V1-Experimentläufen (z. B. Run #14–#17).';
|
||||||
|
|
||||||
|
CREATE TABLE strata (
|
||||||
|
stratum_code TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
is_pinned BOOLEAN NOT NULL,
|
||||||
|
near_expiry BOOLEAN NOT NULL,
|
||||||
|
CONSTRAINT strata_pkey PRIMARY KEY (stratum_code)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE strata IS 'Referenztabelle für Strata (pinned, unpinned, near-expiry, ...).';
|
||||||
|
|
||||||
|
CREATE TABLE log_entries (
|
||||||
|
log_id BIGSERIAL NOT NULL,
|
||||||
|
run_id BIGINT NOT NULL,
|
||||||
|
stratum_code TEXT NOT NULL,
|
||||||
|
recorded_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
retry_taken BOOLEAN NOT NULL,
|
||||||
|
retry_total_overhead_ms INTEGER NOT NULL,
|
||||||
|
expires_at_dist_hours NUMERIC(8,3) NOT NULL,
|
||||||
|
delta_t NUMERIC(9,3) NOT NULL,
|
||||||
|
CONSTRAINT log_entries_pkey PRIMARY KEY (log_id),
|
||||||
|
CONSTRAINT log_entries_run_fk FOREIGN KEY (run_id)
|
||||||
|
REFERENCES runs (run_id) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||||||
|
CONSTRAINT log_entries_stratum_fk FOREIGN KEY (stratum_code)
|
||||||
|
REFERENCES strata (stratum_code) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT log_entries_retry_overhead_chk CHECK (retry_total_overhead_ms BETWEEN 0 AND 1000),
|
||||||
|
CONSTRAINT log_entries_expires_dist_chk CHECK (expires_at_dist_hours BETWEEN -720 AND 720),
|
||||||
|
CONSTRAINT log_entries_delta_t_chk CHECK (delta_t BETWEEN -500 AND 500)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE log_entries IS 'Zentrale Log-Tabelle für Gate-V1-Entscheidungsdaten (Δt, Retry-Overhead etc.).';
|
||||||
|
COMMENT ON COLUMN log_entries.delta_t IS 'Gemessene Δt-Abweichung in Millisekunden (negativ bedeutet zu früh).';
|
||||||
|
COMMENT ON COLUMN log_entries.expires_at_dist_hours IS 'Zeitabstand bis zum Expiry (Stunden, kann negativ sein).';
|
||||||
|
|
||||||
|
CREATE INDEX log_entries_run_stratum_idx
|
||||||
|
ON log_entries (run_id, stratum_code);
|
||||||
|
|
||||||
|
CREATE INDEX log_entries_stratum_delta_t_idx
|
||||||
|
ON log_entries (stratum_code, delta_t);
|
||||||
|
|
||||||
|
CREATE INDEX log_entries_retry_taken_idx
|
||||||
|
ON log_entries (stratum_code, retry_taken)
|
||||||
|
WHERE retry_taken = TRUE;
|
||||||
Loading…
Reference in a new issue