KAD Flashcards
ACID steht für?
A- Atomarität
C- Konsistenz
I- Isolation
D- Dauerhaftigkeit
Welche 4 v’s charakterisieren Big Data?
V- Volume (Menge der Daten)
V- Velocity (Geschwindigkeit mit der Daten ankommen)
V- Variety (Datenvielfalt)
V- Veracity (Datenqualität)
Welche arten von Datenspeicher/Gattung gibt es?
- Relational
- Spaltenorientiert
- Graphenorientiert
- Dokumentenorientert
Was besagt das CAP-Theorem?
Ein verteiltes System kann zwei Eigenschaften (Consistency, Availability, Partition Tolerance) gleichzeitig erfüllen jedoch nicht drei.
Was bedeutet Consistency?
Jede Operation ist nach außen hin atomar.
Was bedeutet Availability?
Ergebnis steht innerhalb einer
akzeptablen Antwortzeit zur Verfügung
Was bedeutet Partition Tolerance?
Ausfall eines Knotens führt nicht zum Ausfall des Gesamtsystems.
Wie kann eine höhere Verfügbarkeit bei relationalen DB erreicht werden?
Auflockern von ACID zu BASE.
Basically Available, Soft State, Eventual Consistent
Wie kann eine Datenbank fragmentiert werden?
- Horizontal
- Vertikal
Was wird unter Sharding verstanden?
Aufteilung der Daten in unabhängige Teile, die jeweils von einer
eigenen Serverinstanz verwaltet wird.
Vorteile von sharding?
- Skalierbarkeit
- Ausfallsicherheit
- Geografische Verteilung
- Rolling Upgrades
Nachteil Sharding?
- Zugriff über andere Kriterien als Aufteilungskriterien machen
Aufwand unverhältnismäßig hoch
-> Anfrage geht an alle Server
Welche Partitionsstrategie gibt es?
- Aufteilung durch Shard-Key
- Erstellen von table hierachy
- Identifikation von transaktions-intensiven Tabellen
Vorteile der Schemalosigkeit?
Unterstützung agiler Softwareentwicklung.
CI&CD
Agiles Datenbanksystem
Was sind Metadaten?
Daten über Daten
Was ist ein Schema?
Metadaten über die Struktur.
Welche Form von Schemalosen Daten kennst du?
- JSON
- XML
Abkürzung NoSQL?
Not Only SQL
NoSQL-Datenbanken besitzen mehrere Merkmale, die sie von relationalen
Datenbanksystemen unterscheiden, welche?
– Verwendung REST
– BASE statt ACID
– Horizontale Skalierung, verteilte Datenhaltung
– Schemafreiheit
In wie können NoSQL Datenbanken klassifiziert werden?
– Key-Value-Stores
– Dokumentenorientierte Datenbanken
– Graphdatenbanken
– Spaltenorientiert / Column Stores
Was beschreibt das Design Pattern Polyglott?
Verwendung verschiedener Datenmodell (relational, spaltenorientiert,
dokumentenorientiert, etc)
Wie kann in einer MongoDB Aggregationen durchgeführt werden?
- Aggregation Framework
- Map-Reduce
- Singel Purpose Aggregation Operations
Aus welchen 3 Phasen besteht ein Map Reduce?
- Map
- Shuffle - Gruppierung der Keys
- Reduce
Was sind die Ziele eines Replica Sets?
- Redundanz
- Verfügbarkeit
- Erhöhung Lese-Kapazität
Wleche CAP-Eigenschaften hat eine Relationale Datenbanksysteme DNS Bank/Finanz NoSQL Cloud?
Relationale Datenbanksysteme -> CA DNS -> AP Bank/Finanz -> CP NoSQL -> AP Cloud -> AP
Welche drei arten von Referenzierungen gibt es in einer MongoDB?
- komplettes Dokument wird gespeichert.
- manuelle Referenz. Referenzierung durch _id-Feld
- DBRef. Referenzierung durch Collectionname und _id-Feld
Welche Read Preference Modes gibt es bei Replica Sets?
- Primary
- PrimaryPreferred
- Secondary
- SecondaryPreferred
- Nearest
Was ist der Primary Mode?
– Lesen beim Primary Node
– Falls dieser nicht verfügbar: Fehler oder Exception
Was ist der PrimaryPreferred Mode?
– Lesen beim Primary Node
– Falls dieser nicht verfügbar: Lesen bei Secondary Node
– Verzögerung beim Lesen > maxStalenessSeconds => Client wird nicht mehr verwendet
Was ist Secondary Mode?
– Lesen beim Secondary Node
– Falls keiner verfügbar: Fehler
– Ebenfalls Verwendung: maxStalenessSeconds
Was ist SecondaryPreferred Mode?
– Lesen beim Secondary Node
– Falls keiner verfügbar: Lesen beim Primary Node
Was ist der Nearest Mode?
– Lesen beim Knoten mit Node geringer Latenzzeit
– Primary und Secondary Nodes werden gleich verwendet
Nenne alle Sharding verfahren bei der MongoDB?
- Ascending Shard Keys
- Hash Based Sharding
- Range Based Sharding
- Location Shard Key
- Manuel Sharding
Was sind Ascending Shard Keys und ihre Eigenschaften?
– Verwendung von ObjectId, o.ä.
– Entspricht ungefähr Datum
Eigenschaften
– Neue Dokumente werden im gleichen Chunk
gespeichert
– D.h. alle Schreibzugriffe werden in gleichen
Shard durchgeführt
– Nur ein Shard wächst
Was sind HashShard Keys?
– Bildung von Chunks durch Verwendung einer Hashfunktion
– „Zufällige“ Verteilung
– Gute Verteilung der Daten und Anfragen
Was ist Range Based Sharding?
- Bildung von Chunks durch numerische Bereiche
Was sind Location Shard Keys?
– Verwendung IP, Adresse o.ä.
Wie nennt sich die Anfragesprache bei Noe4J?
Cypher.
Was versteht man unter der Bacon Numer?
Länge der kürzesten Kette von Schauspielern, die gemeinsam in
einem Film mitspielen.
Was sind Eigenschaften der Time Series Database?
- Daten erscheinen Chronologisch
- Append-Only
- eine Zeile = eine Messung
Anforderungen an eine Time Series Datenbank?
- Skalierbarkeit (Big Data)
- Hohe Schreibleistung
- Analyse / Aggregierung der Daten
Was ist Complex Event Processing?
- Auswertung von Ereignisströmen zur Erkennung von voneinander
abhängigen Ereignissen - Analyse von Echtzeitdaten.
Was ist OLTP (Online Transaction Processing)?
- Speicherung der Transaktion eines Geschäfts
- Operative Tätigkeit eines Unternehmens
- Zeilenorientierte Speicherung sinnvoll
Was ist OLAP (Online Analytical Prosessing)?
- Durchführung komplexer Analysevorhaben
- Entscheidungsunterstützendes Analyseergebnis
- Data Warehouse
- spaltenorientierte Speicherung sinnvoll
Row vs. Colum
Hinzufügen eines Attributs
- RS: Verschieben jedes Tupels
- CS: Hinzufügen einer Datei
Row vs. Colum
Hinzufügen eines Tupels
- RS: Anhängen am Ende der Tabelle
- CS: Öffnen und Schreiben in jeder Datei
Row vs. Colum
Update eines Tupels
- RS: Ändern des Wertes
- CS: Öffnen, Suchen und Schreiben einer Datei
Row vs. Colum
Auslesen eines Tupels
- RS: Lesen des betreffenden Blocks
- CS: Lesen aller Dateien
Row vs. Colum
Auslesen vieler Datensätze
- RS: Lesen der gesamten Tabelle
- CS: Nur Lesen der Dateien für die relevanten Spalten
Welche Datenkompressionsverfahren gibt es?
- Dictionary Encoding
- Sparse Encoding
- Lauflängenkodierung
- Delta Encoding
- Bit-Vector Encoding
- Präfix Encoding
Was ist Dictionary Encoding?
- Ersetzung häufig erscheinender Werte durch kürzere Symbole (index)
Bundesland mappen auf 1 bis 17
Was ist Spares Encoding?
- Basierend auf Dictionary Encoding
- Weglassen des am häufigsten auftretenden Identifikator
Was ist Lauflängenkodierung?
- Bei Wiederholung eines Wertes wird Wertepaar (Wert und
Wertanzahl) gespeichert - aaaa wird auf a[4] komprimiert
Was ist Delta Encoding?
- Unterschiede (deltas) zum vorherigen Attribut werden gespeichert
- Speicherung der Position und auftreten
Was ist die Bit-Vector Encoding?
- Speicherung häufig auftretender Attribute durch Bit-Vektor
Was ist das Präfix Encoding?
- Häufig auftretende Präfixe werden nur einmal gespeichert
Wieso finden in spaltenorientierten Datenbanksystemen häufiger Kompressionsverfahren Anwendung?
- Jede Spalte kann anders komprimiert werden
Was bedeutet Materialisierung?
_ Zusammensetzung der selektierten Attribute zu Tupel
Was bedeutet Early Materialization?
- Bei Column Stores ist Dekomprimierung notwendig
-
Was bedeutet Late Materialization?
– Vermeidung der Tupelrekonstruktion so lange wie möglich
– Bit-Vektoren als Zwischenergebnisse in Column Stores
Was sind Eigeschaften der Hauptspeicherdatenbanken?
- Spezielle Indexstrukturen im Hauptspeicher
- Mehrbenutzersynchronisation (Für Zugriffe weniger Zeit benötigen)
- Verarbeitung einer ganzen Gruppe von Transaktionen: „group
commit“ - Kompaktifizierung der Datenbank
- Working Set (Bruchteil der Daten sind aktiv)
Was sind Memtables und SStables?
MemTables: Schreibzugriffe werden Hauptspeicher durchgeführt
Sorted Data Files
- Speicherung des Memtables (flush)
- Daten werden in Sorted Files gespeichert
- Immutable, nur zum lesen
Was versteht man unter Compaction?
- Datenbereinigung
- Löschen veralteter und gelöschter Daten
- wird im Hintergrund durchgeführt
Was macht der Bloom Filter?
- Probabilistische Methode
- Prüft ob der Artikel im DataSet enthalten ist oder nicht.
- Ziel nicht alle Sets durchlaufen müssen.
Wie funktioniert ein Bloom Filter?
– m-stelliger Bitvektor, anfangs mit 0 gefüllt
– k Hash-Funktionen, Hashwerte entsprechen Position in Bitvektor
– Ermittlung der k Hashwerte, wenn mind. eine 0 enthalten ist, ist Wert
nicht im Filter enthalten
Was ist ein LSM-Tree (Log Structured Merge Tree)?
- Updates werden an neue Stelle (höhere Ebene) gespeichert
- mergen der Daten in die Unteren ebenen durchführen
- Merge läuft in O(n)
Wie funktioniert Cosistent Hasing für die Skalierung in NoSQL?
- Server erhalten Hashwert und werden zu Ring angeordnet
- Datenobjekte erhalten ebenfalls Hashwerte
- ## Zuordnung zu Server, dessen Hashwert im Uhrzeigersinn am nächsten liegt.
Datenmodell für die Speicherstruktur von Neo4J
Labeled Property Graph Model.
- Knoten haben ein oder mehrere Labels zur Beschreibung der
Rolle eines Knotens
- Knoten und Kanten haben Properties (key-value Paare)
Neo4j Graph Storage ?
- Joins werden quasi vorberechnet und in der Datenbank gespeichert
- Objekte müssen nicht über Index gesucht werden
- Eine Liste über die man Iterieren kann
Nenne die 5 Schichten des 5-Schichtenmodell eines DBMS?
- Datei- und Externspeicherverwaltung
- Pufferverwaltung
- Record- und Indexmanager
- Cursor Verwaltung
- Query-Übersetzung und -Optimierung
Welche Schnittstellen gibt es zwischen den Schichten?
- Geräteschnittstelle (Spuren, Zylinder)
- Dateischnittstelle (Blöcke, Dateien)
- Systempufferschnittstelle (Seiten, Segmente)
- interne Satzschnittstelle (Sätze, B*-Bäume)
- satzorientierte Schnittstelle (Sätze, Sets)
- mengenorientierte Schnittstelle (Relationen, Sichten)
Was ist die Aufgabe der Externenspeicherverwaltung?
– Verwaltung externer Speichermedien
– Verbergen von Geräteeigenschaften
– Abbildung von physischen Blöcken auf externe Speicher, wie Magnetplatten
- Blöcke sind Transfereinheit
Was ist der Mean Time To Failure (MTTF)?
Erwartungswert für die Zeit bis zum Ausfall einer Platte
Was ist der Mean Time to Repair (MTTR)?
Erwartungswert für die Zeit zur Ersetzung der Platte und der Rekonstruktion der Daten
Was ist der Mean Time to Data Loss (MTTDL)?
Erwartungswert für die Zeit bis zu einem nicht maskierbaren Fehler
Was versteht man unter PCTFREE?
Mindest-Angabe in Prozent, wie viel Platz in einem Block frei bleiben für Updates
Was versteht man unter PCTUSED?
Mindest-Angabe in Prozent, ab wann in einem Block wieder neue Tupel gespeichert werden
Welche Blockzuordnungsverfahren existieren?
- Statische Dateizuordnung
- Dynamische Blockzuordnung
- Dynamische Extent-Zuordnung
Wie funktioniert die statische Dateizuordnung?
– Fortlaufende Speicherung von Blöcken in zusammenhängenden Speicherbereich (benachbarte Zylinder einer Magnetplatte)
Wie funktioniert die dynamische Blockzuordnung?
– Beim Erzeugen von Blöcken wird Speicherplatz zugeordnet
– Adressierung eines Blocks in einer Blocktabelle
Wie funktioniert die dynamische Extent-Zuordnung?
– Verwendung einer Extent-Tabelle zum Ablegen der Startadresse und Anzahl der Blöcke pro Extent
– Zuordnung von Extents zu Dateien durch DB-Administrator
Welches verfahren nutzt die direkte Seitenadressierung?
– Implizite Zuordnung zwischen Seiten eines Segments und Blöcken einer Datei
– Verwendung in vielen DBMS
Welches verfahren nutzt die indirekte Seitenadressierung?
– Seitentabelle, die für jede Seite eines Segments einen Block zuweist
– Bit-liste, die aktuelle Belegung beschreibt
- hohe Flexibilität
Was ist die Aufgabe der Pufferverwaltung?
Ist zuständig alle Seiten die benötigt werden im Hauptspeicher zur Verfügung zu stellen.
Wie funktioniert das Auffinden einer Seite?
Suchverfahren
- direkte Suche im Pufferrahmen
- Indirekte Suche über Hilfsstrukturen (verkettete Liste, Hash-Tables)
Welche Seitenersetzungsverfahren gibt es?
- Demand-Fetching
- Prefetching
- FIFO
- LFU (least Frequently Used)
- LRU (Least Recently Used)
Was beschreibt das Zick-Zack Verfahren?
- Man erspart sich das erneute Laden der Seiten in den HS.
- Erst von links nach rechts dann rechts nach links
Was ist der Merger-Join?
- Vorrausetzung: Sortierte Eingaben
- Lineare Aufwand
- Kleinerer Index läuft weiter bis Werte gleich sind.
Wie funktioniert der Index-Join?
- Eine Seite ist als Indexstruktur (sortiert) organisiert.
- Suche über Indexbaum nach gleichen paaren.
Was ist die Selektivität?
Selektivität hilft bei der Abschätzung der Größe von Zwischenresultaten.
Ergebnis ist in %
Was sind Materialized Views?
- Datenkopien
- Schnellerer Zugriff auf lokale Kopien von Remote-Tabellen
- Einmalige Berechnung von Aggregationen und mehrfache Wiederverwendung
Wie funktioniert ein Semijoin?
- Ergebnis enthält die Tupel einer Relation, die einen potenziellen Joinpartner haben
Was ist die pessimistische Synchronisation?
- Synchronisation mithilfe von Sperren
Was ist die optische Synchronisation?
- ohne Sperren