-
Notifications
You must be signed in to change notification settings - Fork 1
Training Doc 03 datenmodellierung guide
github-actions[bot] edited this page Sep 5, 2026
·
8 revisions
Navigation: Home > Training
Ein praxisorientierter Leitfaden zum Entwerfen von Datenmodellen fΓΌr ThemisDB β vom einfachen Dokumentenmodell bis hin zu komplexen Multi-Model-Architekturen.
- Modellwahl-Framework
- Dokumentenmodell
- Relationales Modell
- Graphmodell
- Vektormodell
- Zeitreihen
- Multi-Model-Design
- Normalisierung vs. Denormalisierung
- Index-Strategie
- Migrations-Muster
Frage 1: Sind Ihre Daten stark strukturiert mit festen Beziehungen?
JA β Relationales Modell (Tabellen, Joins, ACID)
NEIN β Weiter zu Frage 2
Frage 2: Haben Ihre Daten variable/verschachtelte Struktur?
JA β Dokumentenmodell (JSON Collections)
NEIN β Weiter zu Frage 3
Frage 3: Stehen Beziehungen zwischen EntitΓ€ten im Mittelpunkt?
JA β Graphmodell (Vertex/Edge Collections)
NEIN β Weiter zu Frage 4
Frage 4: Suchen Sie nach semantischer Γhnlichkeit?
JA β Vektormodell (Embeddings + HNSW)
NEIN β Weiter zu Frage 5
Frage 5: Sind Ihre Daten zeitgestempelt und fortlaufend?
JA β Zeitreihen-Collection
In der Praxis: Fast jede komplexe Anwendung nutzt mehrere Modelle gleichzeitig.
- Flexible oder variable Dokumentstrukturen
- Hierarchische Daten (verschachtelte Objekte/Arrays)
- Content-Management, Produktkataloge, Konfigurationen
{
"_key": "prod_001",
"sku": "DB-GUIDE-2025",
"name": "ThemisDB Handbuch",
"price": 49.99,
"categories": ["BΓΌcher", "Datenbanken"],
"attributes": {
"pages": 420,
"language": "de",
"format": "PDF"
},
"variants": [
{ "format": "PDF", "price": 29.99 },
{ "format": "Hardcover", "price": 49.99 }
],
"tags": ["themisdb", "database", "aql"],
"created": "2025-01-15T10:00:00Z"
}- Dokument-GrΓΆΓe unter 64 KB halten
- Arrays fΓΌr 1:N-Beziehungen innerhalb eines Dokuments
- Referenzen (SchlΓΌssel anderer Collections) fΓΌr externe Beziehungen
- Verschachtelung maximal 3β4 Ebenen tief
- Klare, stabile Schema-Anforderungen
- Komplexe Joins und Aggregationen
- Finanzielle Transaktionen, Bestellsysteme, ERP
// Strikte Schema-Definition
CREATE COLLECTION orders (
order_id STRING NOT NULL,
user_id STRING NOT NULL,
status STRING NOT NULL DEFAULT "pending",
total_amount FLOAT NOT NULL,
currency STRING NOT NULL DEFAULT "EUR",
created_at STRING NOT NULL,
updated_at STRING
)
CREATE COLLECTION order_items (
item_id STRING NOT NULL,
order_id STRING NOT NULL,
product_id STRING NOT NULL,
quantity INT NOT NULL,
unit_price FLOAT NOT NULL,
subtotal FLOAT NOT NULL
)
1NF: Atomare Werte β kein verschachtelter JSON in relationalen Feldern
2NF: Keine partiellen AbhΓ€ngigkeiten vom zusammengesetzten SchlΓΌssel
3NF: Keine transitiven AbhΓ€ngigkeiten (z. B. Adresse in separate Collection)
- Netzwerke und Beziehungsgeflechte
- Traversierungen, kΓΌrzeste Pfade
- Empfehlungssysteme, Organigramme, Wissensgraphen
// Vertex-Collections (EntitΓ€ten)
CREATE COLLECTION users TYPE VERTEX
CREATE COLLECTION hashtags TYPE VERTEX
CREATE COLLECTION posts TYPE VERTEX
// Edge-Collections (Beziehungen)
CREATE COLLECTION follows TYPE EDGE FROM users TO users
CREATE COLLECTION likes TYPE EDGE FROM users TO posts
CREATE COLLECTION uses_tag TYPE EDGE FROM posts TO hashtags
CREATE COLLECTION authored TYPE EDGE FROM users TO posts
// Graph-Definition
CREATE GRAPH social_graph
EDGE DEFINITION follows FROM users TO users
EDGE DEFINITION likes FROM users TO posts
EDGE DEFINITION uses_tag FROM posts TO hashtags
EDGE DEFINITION authored FROM users TO posts
- Eine Edge-Collection pro Beziehungstyp (nicht alles in eine Edge-Collection)
- Kanten-Properties fΓΌr Beziehungsgewichte, Zeitstempel
- Vertex-Properties fΓΌr Knotenattribute
-
Richtung bewusst wΓ€hlen:
OUTBOUNDvon Quelle zu Ziel
- Semantische Γhnlichkeitssuche
- KI/ML-Integration (Embeddings)
- Dokumenten-Retrieval, Bild-/Audiosuche
// Text-Embedding speichern (384-dimensional)
CREATE COLLECTION articles (
_key STRING,
title STRING,
content STRING,
embedding VECTOR(384), -- Vektordimension
published STRING
)
// Vektorindex
CREATE INDEX idx_articles_embedding
ON articles(embedding)
TYPE VECTOR
OPTIONS {
metric: "cosine",
dimension: 384,
m: 16,
efConstruction: 200
}
// Beim EinfΓΌgen Embedding erzeugen
INSERT {
title: "ThemisDB Guide",
content: @content,
embedding: LLM EMBED @content
USING MODEL "sentence-transformers/all-MiniLM-L6-v2",
published: DATE_NOW()
} INTO articles
- IoT-Sensordaten, Metriken, Logs
- Finanzmarktkurse
- Nutzungsstatistiken
// Zeitreihen-Collection
CREATE COLLECTION sensor_readings
TYPE TIMESERIES
TIMESTAMP_FIELD "ts"
OPTIONS {
retention: "90d", -- Automatisches LΓΆschen nach 90 Tagen
compression: "gorilla", -- Gorilla-Kompression fΓΌr Floats
granularity: "1s" -- MinumalauflΓΆsung
}
// Kontinuierliche Aggregation (Materialisierte View)
CREATE CONTINUOUS AGGREGATE hourly_avg_temp
ON sensor_readings
EVERY "1h"
AS (
FOR r IN sensor_readings
COLLECT hour = DATE_TRUNC(r.ts, "hour"),
sensor = r.sensor_id
AGGREGATE avg = AVG(r.temperature),
max = MAX(r.temperature),
min = MIN(r.temperature)
RETURN { hour, sensor, avg, max, min }
)
Collections:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DOKUMENT β
β products β Produktkatalog (flexibles Schema) β
β reviews β Kundenbewertungen β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β RELATIONAL β
β orders β Bestellungen (ACID-Transaktionen) β
β order_items β Bestellpositionen β
β invoices β Rechnungen β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β GRAPH (Vertex) β
β customers β Kundengraph β
β categories β Kategoriehierarchie β
β Graph-Edges: purchased, belongs_to, recommended_for β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β VEKTOR β
β product_embeddings β FΓΌr semantische Suche β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ZEITREIHEN β
β page_views β Klickdaten β
β inventory_log β Lagerbestandsverlauf β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Daten werden hΓ€ufig aktualisiert
β
Konsistenz ist kritisch
β
Speicherplatz soll minimiert werden
β
Viele verschiedene Zugriffsprofile
β
Read-Heavy-Workload (>>100:1 Reads:Writes)
β
Performance ist kritisch (keine Joins)
β
Daten Γ€ndern sich selten
β
Snapshot-Daten (historische Werte)
// Denormalisiert: HΓ€ufig gelesene Felder im Order-Dokument einbetten
{
"order_id": "ord_123",
"user_name": "Anna Schmidt", // denormalisiert (read-optimized)
"user_email": "anna@example.com", // denormalisiert
"user_id": "users/anna", // Referenz fΓΌr Updates
"items": [...]
}Frage: Welche Felder werden in FILTER-Klauseln verwendet?
β Diese Felder brauchen Indizes
Frage: Sind die Werte eindeutig (wie E-Mail, Bestellnummer)?
β UNIQUE Hash-Index
Frage: Werden Bereichsabfragen gemacht (Datum, Preis)?
β Skiplist-Index
Frage: Wird Volltextsuche benΓΆtigt?
β Fulltext-Index
Frage: Werden Geo-Abfragen gemacht?
β Geo-Index (R-Tree)
Frage: Wird VektorΓ€hnlichkeitssuche benΓΆtigt?
β HNSW-Vektorindex
Jeder Index verlangsamt INSERT/UPDATE/DELETE.
Faustregel: Maximal 5-7 Indizes pro Collection.
Ungenutzte Indizes regelmΓ€Γig entfernen.
// Schritt 1: Neues optionales Feld hinzufΓΌgen (kein Breaking Change)
FOR doc IN users
FILTER doc.preferences == null
UPDATE doc WITH { preferences: { theme: "light" } } IN users
// Schritt 2: Altes Feld umbenennen (zweistufig)
// Phase 1: Neues Feld befΓΌllen
FOR doc IN users
UPDATE doc WITH { full_name: doc.name } IN users
// Phase 2: Altes Feld entfernen (nach Validierung)
FOR doc IN users
UPDATE doc WITH { name: null } IN users
// Schritt 3: Feldtyp Γ€ndern (String β Number)
FOR doc IN products
FILTER IS_STRING(doc.price)
UPDATE doc WITH { price: TO_NUMBER(doc.price) } IN products
- Welche Datenmodelle werden benΓΆtigt?
- DokumentengrΓΆΓen geschΓ€tzt (< 64 KB?)
- Indizes fΓΌr alle FILTER-Felder geplant
- Transaktionsgrenzen definiert
- Backup-Strategie festgelegt
- Migration von Bestandsdaten geplant
- Performance-Tests entworfen
- RBAC-Berechtigungen fΓΌr neue Collections
ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues
ThemisDB 1.9.0-beta Β· Home Β· Wiki-Index Β· Module-Index Β· FAQ Β· Quick-Reference Β· GitHub Β· Issues Β· Discussions Β· License
- Batch Operations
- Best Practices
- CRUD Tutorial
- Custom Document Ingestion
- Getting Started Tutorial
- Interactive Examples
- Schema Design
- Video Tutorials
- AQL Reference
- AQL Examples
- AQL Overview
- AQL Feature Roadmap
- AQL Geospatial Guide
- AQL LLM Migration Guide
- AQL API
- AQL Grammar (EBNF)
- AQL Root Overview
- AQL Examples (root)
- API Reference
- API Module README
- OpenAPI Overview
- Client SDK Overview
- SDK Overview
- Operations
- Operations Overview
- Operations Runbook
- Operations Handbook
- ThemisCtl Admin Guide
- Pipeline E2E SOPs
- Deploy Overview
- Docker Overview
- Docker Hub README
- Helm Overview
- Packaging Overview
- Operator Overview
- Security Policy
- Production Hardening Checklist
- Security Hardening Guide
- Encryption Key Management
- Access Control Framework
- Zero Trust Policy
- API Authentication & Authorization
- HSM Production Setup
- PKCS11 Integration
- DSGVO / SOC2 Checklist
- Access Model Runbooks
- Access Model Dashboard
- Maturity Automation Runbook
- Access Review Automation
- Access Model Dashboard
- Access Model Runbooks
- Rights Revocation
- Dr Checklists
- Dr Testing
- Incident Response Playbook
- Incident Response Testing
- GPU Oom Recovery
- Grammar Debugging
- Metrics Scrape Troubleshooting
- Model Swap Procedure
- Quota Tuning
- Subagent Deployment
- Logging Configuration
- Content Model
- Crypto & Keys
- Feature Flags Reference
- Modular Architecture Roadmap
- Modularization Guide
- Module Architecture Index
- PostgreSQL Wire Protocol
- Query Scheduling
- Raft Consensus Design
- Resource Pooling
- Source Directory Guide
- Unified Access Model
- E1 001 Layered Retrieval Design
- E1 002 Ann Abstraction Strategy
- E1 003 Tensor Summary Types
- E1 004 Lora Package Distinction
- E1 005 Model Switch Compatibility
- E1 006 Federated Tensor Summaries
- E2 001 Evaluation Framework Design
- E2 002 Hardware Profile Strategy
- E2 003 Query Planner Routing Model
- E2 004 Approximation Governance Rules
- E2 005 Cross Layer Fallback Confidence Policy
- E3 001 Distributed Tensor Design
- E3 002 Manifest Coordination Strategy
- E3 003 Recovery And Erasure Choice
- E3 004 Tensor Fabric Infrastructure
- Contributing
- Contributing (root)
- Code of Conduct
- Support
- Maintainers
- CTest Guide
- Build Quick Reference
- Developer Wiki Index
- Build / Test / CI
- Module Index
- Branching Strategy
- Disabled Stub Policy
- Docs PR Policy
- GA Promotion Sign Off
- Github Milestones Setup
- Maturity Claim Verification Checklist
- Maturity Evidence Registry
- Merge Gate Bot Config
- Merge Gate Status Live
- Phase 1 Closure Report
- Phase Closure Policy
- Phase Dependency Graph
- Phase3 Enforcement Runbook
- Plugin Submodule Rollback
- PR Version Targeting
- PR Version Targeting Backfill
- Production Ready 2026 Delivery Plan
- Query Module Status
- Readme
- Release Promotion Gate Policy
- Release Validation Checklist
- Security Module 5671 Evidence Summary
- Sharding P6 Residual Risk Acceptance
- Sourcecode Compliance Governance
- Updates Development Status Sign Off
- Wave C Implementation Complete
- Blob Storage
- Cuda
- Ethics Ai
- Exporters
- Huggingface
- Image Analysis
- Importers
- RPC
- Scraper
- Themisdb Ai Watermark Detector
- User Storage Encrypted
- Chimera Architecture
- Chimera Future
- Chimera Readme
- Chimera Roadmap
- Covina Fastapi Ingestion Architecture
- Covina Fastapi Ingestion Future
- Covina Fastapi Ingestion Roadmap
- Vcc Base Architecture
- Vcc Base Future
- Vcc Base Roadmap
- Vcc Clara Ingestion Architecture
- Vcc Clara Ingestion Future
- Vcc Clara Ingestion Roadmap
- Vcc Veritas Architecture
- Vcc Veritas Future
- Vcc Veritas Roadmap
- 01 Hello World
- 02 Todo App
- 03 Contact Manager
- 04 Inventory System
- 05 Time Series Monitor
- 06 Graph Social Network
- 07 Vector Search Documents
- 08 Dms Erp System
- 09 Iot Sensor Network
- 10 Drone Image Analysis
- 11 Blog Wiki
- 12 Expense Tracker
- 13 Recipe Manager
- 14 Ecommerce Catalog
- 15 Event Management
- 16 Kanban Board
- 17 Crm
- 18 Realtime Chat
- 19 Recommendation Engine
- 20 Smart Home
- 21 Coding Platform
- 22 AQL Diagram Tool
- 23 Traveling Salesman
- 24 Moral Philosophy Debates
- API Versioning
- Distributed Sharding
- Feedback Plugins
- Geo
- Gnn
- Image Analysis
- Legal Lora Training
- LLM
- Lora Sync
- Migration
- Nlp
- Performance
- Railway
- Replication
- Rope Visualization
- Sample Product Config
- Security
- Client SDK Overview
- Quickstart
- Sdk Enhancements
- Sdk Implementation Summary
- Test Suite Readme
- Go
- Java
- Javascript
- Php
- Python
- Ruby
- Rust
- Typescript
- 01 Grundlegende Operationen
- 02 AQL Queries
- 03 Graph Daten
- 04 Multimodell Anwendung
- 01 Quickstart Guide
- 02 AQL Referenz Kurzuebersicht
- 03 Datenmodellierung Guide
- 04 Uebungsaufgaben
- 05 Best Practices Guide
- Training Documents
- Training Overview
- 01 Einfuehrung Und Uebersicht
- 02 Datenmodelle Und Architektur
- 03 AQL Abfragesprache
- 04 Installation Und Setup
- 05 Anwendungsbeispiele
- Training Presentations
- Dependencies Readme
- Processmonitor Readme
- Themis.admintools.shared Readme
- Themis.aqlquerybuilder Readme
- Themis.aqlquerybuilder Roadmap
- Themis.auditlogviewer Readme
- Themis.auditlogviewer Roadmap
- Themis.classificationdashboard Readme
- Themis.classificationdashboard Roadmap
- Themis.compliancereports Readme
- Themis.compliancereports Roadmap
- Themis.gisviewer.controlpanel Readme
- Themis.gisviewer.controlpanel Roadmap
- Themis.impactanalysisviewer Readme
- Themis.impactanalysisviewer Roadmap
- Themis.ingestiontool Readme
- Themis.ingestiontool Roadmap
- Themis.keyrotationdashboard Readme
- Themis.keyrotationdashboard Roadmap
- Themis.piimanager Readme
- Themis.piimanager Roadmap
- Themis.retentionmanager Readme
- Themis.retentionmanager Roadmap
- Themis.sagaverifier Readme
- Themis.sagaverifier Roadmap
- Themis.usbadmintool Readme
- Themis.usbadmintool Roadmap
- CI Readme
- CI Roadmap
- Compiler Diagnostics Readme
- Compiler Diagnostics Roadmap
- Completion Readme
- Copilot Ollama Router Readme
- Copilot Ollama Router Roadmap
- Gnn Readme
- Gnn Roadmap
- Rope Visualizer Readme
- Rope Visualizer Roadmap
- Tco Calculator Readme
- Tco Calculator Roadmap
- Tests Readme
- Tests Roadmap
- Themis Config Wx Readme
- Themis Docs Builder Readme
- Wikipedia Ingestion Readme