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-17 12:26] – [Eigenschaften von Schedules] skrupellos | uni:8:dbs2:zusammenfassung [2020-11-18 18:11] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Zusammenfassung ====== | ====== Zusammenfassung ====== | ||
| + | Die Mega-Übersicht | ||
| + | < | ||
| + | Synchronisation | ||
| + | Pessimistische Synchronisation mit Sperren | ||
| + | Sperrprotokolle | ||
| + | 2PL [deadlocks] | ||
| + | Konservatives 2PL | ||
| + | Striktes 2PL [deadlocks] | ||
| + | Konservatives + Striktes 2PL | ||
| + | Sperrverfahren | ||
| + | RX | ||
| + | RUX | ||
| + | RAX | ||
| + | RIX | ||
| + | RAC | ||
| + | Deadlocks | ||
| + | Vermeiden [konservatives 2PL/ | ||
| + | Erkennen | ||
| + | Wartegraph | ||
| + | Time-Out | ||
| + | wound-wait | ||
| + | wait-die | ||
| + | Pessimistische Synchronisation mit Zeitstempeln | ||
| + | Optimistische Synchronisation mit Zeitstempeln | ||
| + | BOCC | ||
| + | BOCC+ | ||
| + | FOCC | ||
| + | </ | ||
| + | |||
| + | * [[Synchronisation]] | ||
| + | |||
| ===== Grundbegriffe ===== | ===== Grundbegriffe ===== | ||
| ==== Anforderungen (Codd) ==== | ==== Anforderungen (Codd) ==== | ||
| Line 25: | Line 56: | ||
| * Durability (Abgeschlossene Transaktionen sind von dauer) | * Durability (Abgeschlossene Transaktionen sind von dauer) | ||
| - | ===== Synchronisation ===== | + | |
| ==== Serialisierungs-Graph ==== | ==== Serialisierungs-Graph ==== | ||
| ^ x ^ y ^ z | <- Attribute | | ^ x ^ y ^ z | <- Attribute | | ||
| Line 66: | Line 97: | ||
| | konfliktäquivalent | Gleiche Abhängigkeitsmengen | | | konfliktäquivalent | Gleiche Abhängigkeitsmengen | | ||
| - | ===== Locking | + | ===== Integrität |
| - | ==== Verfahren | + | * Schlüssel-~ |
| - | === (Voll) === | + | * Referenzielle ~ |
| - | ^ ^ X ^ | + | * Multiplititäten Constraints |
| - | ^ X | (-) | | + | * Allgemeine Constraints |
| + | |||
| + | ===== Datenschutz ===== | ||
| + | ==== Discretionary Access Controll | ||
| + | Explizite Autorisierung: | ||
| + | < | ||
| + | grant ... on ... to ... | ||
| + | |||
| + | ==== Verfeinertes DAC ==== | ||
| + | Implizite Autorisierung: | ||
| + | * //starke// Autorisierung überschreibt // | ||
| + | * Es gibt // | ||
| + | * Subjekte, Objekte und Operationen haben eine Hierarchie | ||
| + | |||
| + | |||
| + | * Implizite Weitergabe positiver Autorisierung in die eine Richtung | ||
| + | * Implizite Weitergabe negativer Autorisierung in die andere Richtung | ||
| + | |||
| + | ==== Mandatory Access Control (MAC) ==== | ||
| + | * Sicherheitsklassen für // | ||
| + | * Objekte hochstufen (V) | ||
| + | * Objekte runter stufen (X) | ||
| + | * Zugriff wenn '' | ||
| + | * Angelegte Objekte '' | ||
| + | |||
| + | ===== HW ===== | ||
| + | B+ | ||
| + | * Directory/ | ||
| + | * Datenseiten | ||
| + | |||
| + | * **Sequenziell** \\ $t_\text{scan} = t_\text{seek} + f \cdot t_\text{transfer} + \lceil \frac{f}{c_\text{puffer}} \rceil \cdot t_\text{lat}$ | ||
| + | * **Wahlfrei** \\ $t_\text{random} = (t_\text{seek} + c_\text{index} \cdot t_\text{transfer} + t_\text{lat}) \cdot a$ | ||
| + | |||
| + | ===== Anfrageoptimierung ===== | ||
| + | ==== Arten ==== | ||
| + | * **Logische Anfrageoptimierung** \\ Auswertungsplan umbauen | ||
| + | * **Physische Anfrageoptimierung** \\ Algorithmen auswählen | ||
| + | |||
| + | ==== Logische Anfrageoptimierung ==== | ||
| + | === Umformungsregeln === | ||
| + | * $R \bowtie S = S \bowtie S$ | ||
| + | * $R \cup S = S \cup R$ | ||
| + | * $R \cap S = S \cap R$ | ||
| + | * $R \times S = S \times R$ | ||
| + | * $(R \bowtie S) \bowtie T = R \bowtie (S \bowtie T)$ | ||
| + | * $(R \cup S) \cup T = R \cup (S \cup T)$ | ||
| + | * $(R \cap S) \cap T = R \cap (S \cap T)$ | ||
| + | * $(R \times S) \times T = R \times (S \times T)$ | ||
| + | * $\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$ 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 | ||
| - | === RX === | + | COMMIT-Regel: REDO muss vor COMMIT im Log stehen |
| - | ^ ^ R ^ X ^ | + | |
| - | ^ R | (+) | (-) | | + | |
| - | ^ X | (-) | (-) | | + | |
| - | === RUX === | + | ==== Sicherungen ==== |
| - | ^ ^ R ^ U ^ X ^ | + | === Arten === |
| - | ^ R | (+) | (-) | (-) | | + | * TOC: Sicherung //einer// TA (entspricht Force) |
| - | ^ U | (+) | (-) | (-) | | + | * TCC: Alle Änderungen raus schreiben, derweil keine //TA//. |
| - | ^ X | (-) | (-) | (-) | | + | * ACC: Alle Änderungen raus schreiben, derweil keine // |
| - | === RAX === | + | === Ablauf |
| - | ^ ^ R ^ A ^ X ^ | + | | 1. Analyse |
| - | ^ R | (+) | (+) | (-) | | + | | 2. REDO |
| - | ^ A | (+) | (-) | (-) | | + | | 3. UNDO |
| - | ^ X | (-) | (-) | (-) | | + | | 4. Abschluss |
| + | * Gewinner => COMMIT im log | ||
| + | * Verlierer => Rest | ||
uni/8/dbs2/zusammenfassung.1437128783.txt.gz · Last modified: (external edit)
