Wiki

A universe of ideas

User Tools

Site Tools


uni:8:dbs2:zusammenfassung

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
uni:8:dbs2:zusammenfassung [2015-07-19 15:40] – [Mandatory Access Control (MAC)] skrupellosuni:8:dbs2:zusammenfassung [2020-11-18 18:11] (current) – external edit 127.0.0.1
Line 140: Line 140:
  
 ==== Logische Anfrageoptimierung ==== ==== Logische Anfrageoptimierung ====
-  * $R \bowtie S = S =bowtie S$+=== Umformungsregeln === 
 +  * $R \bowtie S = S \bowtie S$
   * $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                        | Nur relevante                | 
 +| Aktuelle                      | Historische                  | 
 +| Ist eine quelle               | Hat viele quellen            | 
 +| Veränderbar                   | Nur hinzufügen               | 
 + 
 +<blockquote>//Fakten// in //hierachischen// //Dimensionen//</blockquote> 
 + 
 +=== 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/Parameter loggen] 
 +  * Physiologisches Logging [Befehle/Parameter pro Seite] 
 + 
 +=== 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) ["Daneben ablegen"] => Kein UNDO nötig 
 + 
 +=== Verdrängungsstrategien (wann frühestens Puffer -> DB) === 
 +  * No-Steal [Nach COMMIT] => Kein UNDO 
 +  * Steal [egal] => UNDO 
 + 
 +WAL-Prinzip: UNDO muss vor Änderungen an DB im Log stehen 
 + 
 +=== Ausschreibungsstrategie (wann spätestens Puffer -> DB) === 
 +  * Force [Vor COMMIT] => Kein REDO 
 +  * No-Force [egal] => REDO 
 + 
 +COMMIT-Regel: REDO muss vor COMMIT im Log stehen 
 + 
 +==== Sicherungen ==== 
 +=== Arten === 
 +  * TOC: Sicherung //einer// TA (entspricht Force) 
 +  * TCC: Alle Änderungen raus schreiben, derweil keine //TA//. 
 +  * ACC: Alle Änderungen raus schreiben, derweil keine //Operation//
 + 
 +=== Ablauf === 
 +| 1. Analyse   | Gewinner/Verlierer Bestimmen                    || 
 +| 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)