From 9b75630a5e858d5005e5826961b685b7ebe0092b Mon Sep 17 00:00:00 2001 From: Benjamin Neumann Date: Thu, 23 Jul 2026 20:26:00 +0200 Subject: [PATCH] vault backup: 2026-07-23 20:26:00 --- .obsidian/workspace.json | 4 ++-- .../Alternative Datenmodelle und No-SQL.md | 15 ++++++++++++++- .../Anhänge/Pasted image 20260723201457.png | Bin 0 -> 18127 bytes 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723201457.png diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 51c27b1..49c2789 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -216,9 +216,10 @@ }, "active": "25f5b25d5eca7203", "lastOpenFiles": [ - "SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723200735.png", + "SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723201457.png", "SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/8-AltDM.pdf", "SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Alternative Datenmodelle und No-SQL.md", + "SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723200735.png", "SS2026/Datenbanken und Informationssysteme/RDF und Semantic Web/Resource Description Framework und Wissensgraphen.md", "SS2026/Datenbanken und Informationssysteme/RDF und Semantic Web/Anhänge/RDF-combined.pdf", "SS2026/Datenbanken und Informationssysteme/RDF und Semantic Web/Anhänge", @@ -235,7 +236,6 @@ "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge/Pasted image 20260723185054.png", "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge/Pasted image 20260723183537.png", "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge/Pasted image 20260723183402.png", - "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge/Pasted image 20260723183353.png", "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge/7-TM.pdf", "SS2026/Datenbanken und Informationssysteme/7. Transaktionsverwaltung/Anhänge", "SS2026/Datenbanken und Informationssysteme/Datenbanken und Informationssysteme.md", diff --git a/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Alternative Datenmodelle und No-SQL.md b/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Alternative Datenmodelle und No-SQL.md index 2b1e99e..b8fadc4 100644 --- a/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Alternative Datenmodelle und No-SQL.md +++ b/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Alternative Datenmodelle und No-SQL.md @@ -6,4 +6,17 @@ **Scale Up** - Stärkerer Server - CPU, RAM, Disk... - Single-Point-of-failure **Scale Out** - Last auf mehr Server Verteilen - hohe Skalierbarkeit - Betrieb schwieriger -### Sha \ No newline at end of file +### Sharding +Datenbank in kleine logische Teile aufteilen +- jede Shard eigener Server +- Sharding Key für wer wohin + ++paralleles Verarbeiten +-schlechter Key erzeugt überlast +-Koordination +-Neuverteilung bei Wachstum + +![[Pasted image 20260723201457.png]] + +**Verteilte Atomarität** - Verteilte Transaktion wird a + diff --git a/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723201457.png b/SS2026/Datenbanken und Informationssysteme/8. Alternative Datenmodelle und No-SQL/Anhänge/Pasted image 20260723201457.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc9261e9adb1cc2b3050d844c9a8af4f3e15823 GIT binary patch literal 18127 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 literal 0 HcmV?d00001