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 13:20] – [Verfahren] 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 ~ |
- | ^ ^ | + | * Multiplititäten Constraints |
- | ^ X | (-) | + | * Allgemeine Constraints |
+ | |||
+ | ===== Datenschutz ===== | ||
+ | ==== Discretionary Access Controll | ||
+ | Explizite Autorisierung: | ||
+ | < | ||
+ | | ||
+ | |||
+ | ==== 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$ 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) [" | ||
- | === RX === | + | === Verdrängungsstrategien (wann frühestens Puffer -> DB) === |
- | ^ ^ | + | |
- | ^ R | (+) | (-) | | + | |
- | ^ X | (-) | (-) | | + | |
- | === RUX === | + | WAL-Prinzip: UNDO muss vor Änderungen an DB im Log stehen |
- | ^ ^ | + | |
- | ^ R | (+) | (-) | (-) | | + | |
- | ^ U | (+) | (-) | (-) | | + | |
- | ^ X | (-) | (-) | (-) | | + | |
- | === RAX === | + | === Ausschreibungsstrategie (wann spätestens Puffer -> DB) === |
- | ^ ^ | + | |
- | ^ R | (+) | (+) | (-) | | + | |
- | ^ A | (+) | (-) | (-) | | + | |
- | ^ X | (-) | (-) | (-) | | + | |
- | === RIX === | + | COMMIT-Regel: REDO muss vor COMMIT im Log stehen |
- | ^ ^ | + | |
- | ^ R | (+) | (-) | (+) | (-) | (-) | | + | |
- | ^ X | (-) | (-) | (-) | (-) | (-) | | + | |
- | ^ IR | (+) | (-) | (+) ^ (+) ^ (+) | | + | |
- | ^ IX | (-) | (-) ^ (+) ^ (+) | (-) | | + | |
- | ^ RIX | (-) | (-) ^ (+) | (-) | (-) | | + | |
- | ^ Überprüfung auf unterer Ebene nötig | + | ==== Sicherungen ==== |
+ | === Arten === | ||
+ | * TOC: Sicherung //einer// TA (entspricht Force) | ||
+ | * TCC: Alle Änderungen raus schreiben, derweil keine //TA//. | ||
+ | * ACC: Alle Änderungen raus schreiben, derweil keine // | ||
- | === RAC === | + | === Ablauf |
- | ^ ^ | + | | 1. Analyse |
- | ^ R | | + | | 2. REDO |
- | ^ A | | + | | 3. UNDO |
- | ^ C | | + | | 4. Abschluss |
- | ==== Eigenschaften ==== | + | * Gewinner |
- | ^ Verfahren ^ Verhungern ^ Deadlock ^ Bemerkung ^ | + | * Verlierer |
- | | | + |
uni/8/dbs2/zusammenfassung.1437132046.txt.gz · Last modified: (external edit)