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** \\ tscan=tseek+f⋅ttransfer+⌈fcpuffer⌉⋅tlat | ||
+ | * **Wahlfrei** \\ trandom=(tseek+cindex⋅ttransfer+tlat)⋅a | ||
+ | |||
+ | ===== Anfrageoptimierung ===== | ||
+ | ==== Arten ==== | ||
+ | * **Logische Anfrageoptimierung** \\ Auswertungsplan umbauen | ||
+ | * **Physische Anfrageoptimierung** \\ Algorithmen auswählen | ||
+ | |||
+ | ==== Logische Anfrageoptimierung ==== | ||
+ | === Umformungsregeln === | ||
+ | * R⋈S=S⋈S | ||
+ | * R∪S=S∪R | ||
+ | * R∩S=S∩R | ||
+ | * R×S=S×R | ||
+ | * (R⋈S)⋈T=R⋈(S⋈T) | ||
+ | * (R∪S)∪T=R∪(S∪T) | ||
+ | * (R∩S)∩T=R∩(S∩T) | ||
+ | * (R×S)×T=R×(S×T) | ||
+ | * σA(σB(R))=σB(σA(R)) | ||
+ | * σA∧B(R)=σA(σB(R)) | ||
+ | * πA(πB(R))=πA(R) mit A⊆B | ||
+ | * πA(σB(R))=σB(πA(R)) mit attr(B)⊆A | ||
+ | * σB(R⋈S)=σB(R)⋈S mit attr(B)⊆ attr(R) | ||
+ | * σB(R×S)=σB(R)×S mit attr(B)⊆ attr(R) | ||
+ | * σB(R∪S)=σB(R)∪σB(S) | ||
+ | * σB(R∩S)=σB(R)∩σB(S) | ||
+ | * σB(R∖S)=σB(R)∖σB(S) | ||
+ | * πB(R∪S)=πB(R)∪πB(S) | ||
+ | * σA=B(R×S)=R⋈A=BS | ||
+ | |||
+ | === Algo === | ||
+ | - σ splitten | ||
+ | - σ nach unten | ||
+ | - σ und × => ⋈ | ||
+ | - π einfügen, um auf minimum beschränken | ||
+ | - π nach unten | ||
+ | - σ 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⋅P(A))⋅… | ||
+ | |||
+ | ==== 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: 2020-11-18 18:10 (external edit)