uni:8:dbs2:zusammenfassung
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| uni:8:dbs2:zusammenfassung [2015-07-19 15:40] – [Mandatory Access Control (MAC)] skrupellos | uni:8:dbs2:zusammenfassung [2020-11-18 18:11] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 140: | Line 140: | ||
| ==== Logische Anfrageoptimierung ==== | ==== Logische Anfrageoptimierung ==== | ||
| - | | + | === Umformungsregeln === |
| + | | ||
| * $R \cup S = S \cup R$ | * $R \cup S = S \cup R$ | ||
| * $R \cap S = S \cap R$ | * $R \cap S = S \cap R$ | ||
| Line 148: | Line 149: | ||
| * $(R \cap S) \cap T = R \cap (S \cap T)$ | * $(R \cap S) \cap T = R \cap (S \cap T)$ | ||
| * $(R \times S) \times T = R \times (S \times T)$ | * $(R \times S) \times T = R \times (S \times T)$ | ||
| - | * $\sigma_a(\sigma_b(R)) = \sigma_c(\sigma_a(R))$ | + | * $\sigma_A(\sigma_B(R)) = \sigma_B(\sigma_A(R))$ |
| + | * $\sigma_{A \wedge B}(R) = \sigma_A(\sigma_B(R))$ | ||
| + | * $\pi_A(\pi_B(R)) = \pi_A(R) \text{ mit } A \subseteq B$ | ||
| + | * $\pi_A(\sigma_B(R)) = \sigma_B(\pi_A(R)) \text{ mit attr}(B) \subseteq A$ | ||
| + | * $\sigma_B(R \bowtie S) = \sigma_B(R) \bowtie S \text{ mit attr}(B) \subseteq \text{ attr}(R)$ | ||
| + | * $\sigma_B(R \times S) = \sigma_B(R) \times S \text{ mit attr}(B) \subseteq \text{ attr}(R)$ | ||
| + | * $\sigma_B(R \cup S) = \sigma_B(R) \cup \sigma_B(S)$ | ||
| + | * $\sigma_B(R \cap S) = \sigma_B(R) \cap \sigma_B(S)$ | ||
| + | * $\sigma_B(R \setminus S) = \sigma_B(R) \setminus \sigma_B(S)$ | ||
| + | * $\pi_B(R \cup S) = \pi_B(R) \cup \pi_B(S)$ | ||
| + | * $\sigma_{A=B}(R \times S) = R \bowtie_{A=B} S$ | ||
| + | |||
| + | === Algo === | ||
| + | - $\sigma$ splitten | ||
| + | - $\sigma$ nach unten | ||
| + | - $\sigma$ und $\times$ => $\bowtie$ | ||
| + | - $\pi$ einfügen, um auf minimum beschränken | ||
| + | - $\pi$ nach unten | ||
| + | - $\sigma$ mergen | ||
| + | |||
| + | ===== Big Data ===== | ||
| + | * high-**volume** | ||
| + | * high-**velocity** | ||
| + | * high-**variety** | ||
| + | |||
| + | ==== Map-Reduce ==== | ||
| + | - **Map** \\ Data => KV-Pair | ||
| + | - **Shuffle** \\ Same key to same node | ||
| + | - **Reduce** \\ Marge Values per Key | ||
| + | |||
| + | ==== Zählanfrage auf unsicheren Daten ==== | ||
| + | $F = (1 - P(A) + x \cdot P(A)) \cdot \ldots$ | ||
| + | |||
| + | ==== Data Warehouse ==== | ||
| + | | OLTP | OLAP | | ||
| + | | Online Transaction Processing | Online Analytical Processing | | ||
| + | | Detail | ||
| + | | Aktuelle | ||
| + | | Ist eine quelle | ||
| + | | Veränderbar | ||
| + | |||
| + | < | ||
| + | |||
| + | === Relationales mapping === | ||
| + | Faktentabelle in der Mitte | ||
| + | == Snowflake == | ||
| + | Eine Tabelle pro Hierachieebene pro Dimension | ||
| + | |||
| + | == Star == | ||
| + | Eine Tabelle pro Dimension | ||
| + | |||
| + | |||
| + | ===== Recovery ===== | ||
| + | ==== Fehlerarten ==== | ||
| + | * Transaktionsfehler => Rücksetzen | ||
| + | * Lokales UNDO | ||
| + | * Systemfehler => Warmstart | ||
| + | * Globales UNDO | ||
| + | * Globales REDO | ||
| + | * Medienfehler => Geräte-Recovery | ||
| + | * Globales REDO | ||
| + | |||
| + | ==== Logging ==== | ||
| + | * Physisch [Bit-Blöcke] | ||
| + | * Übergangslogging [XOR] | ||
| + | * Zustandslogging [Volle ...] | ||
| + | * Seiten-Logging [... Seiten] | ||
| + | * Eintrags-Logging [... Einträge] | ||
| + | * Logisches Logging [Befehle/ | ||
| + | * Physiologisches Logging [Befehle/ | ||
| + | |||
| + | === Aufbau Log-File === | ||
| + | Ringbuffer | ||
| + | * LSN (Fortlaufende Nummer) | ||
| + | * TA-ID (Welche Transaktion) | ||
| + | * Page-ID (Welche Seite) | ||
| + | * REDO | ||
| + | * UNDO | ||
| + | * PrevLSN | ||
| + | |||
| + | Log-Granularität $<=$ Sperrgranularität | ||
| + | |||
| + | === Einbringungsstrategie (wo in DB) === | ||
| + | * Direkt (NonAtomic, Update in-place) => UNDO nötig | ||
| + | * Indirektes Einbringen (Atomic) [" | ||
| + | |||
| + | === Verdrängungsstrategien (wann frühestens Puffer -> DB) === | ||
| + | * No-Steal [Nach COMMIT] => Kein UNDO | ||
| + | * Steal [egal] => UNDO | ||
| + | |||
| + | WAL-Prinzip: | ||
| + | |||
| + | === Ausschreibungsstrategie (wann spätestens Puffer -> DB) === | ||
| + | * Force [Vor COMMIT] => Kein REDO | ||
| + | * No-Force [egal] => REDO | ||
| + | |||
| + | COMMIT-Regel: | ||
| + | |||
| + | ==== Sicherungen ==== | ||
| + | === Arten === | ||
| + | * TOC: Sicherung //einer// TA (entspricht Force) | ||
| + | * TCC: Alle Änderungen raus schreiben, derweil keine //TA//. | ||
| + | * ACC: Alle Änderungen raus schreiben, derweil keine // | ||
| + | |||
| + | === Ablauf === | ||
| + | | 1. Analyse | ||
| + | | 2. REDO | Vollständiges REDO | Gewinner REDO | | ||
| + | | 3. UNDO | UNDO (damals) laufender TAs | UNDO verlierer TA | | ||
| + | | 4. Abschluss | Sicherungspunkt erstellen | ||
| + | |||
| + | * Gewinner => COMMIT im log | ||
| + | * Verlierer => Rest | ||
uni/8/dbs2/zusammenfassung.1437313202.txt.gz · Last modified: (external edit)
